Two Minute Reports Logo
Teams

Get team

Retrieve a team's details, plan, and usage.
GET /teams/{teamId}

Returns full details for a single team, including its plan limits and current usage. Requires at least the viewer role on the team.

Authentication: Bearer token · Role: viewer · Permission:teams:read · Team permission:team_settings.read · Rate limit: default (120 / 60s)

Path parameters

teamId
string · uuid v7 required
The ID of the team to retrieve, from list teams.

Request

curl https://api.twominutereports.com/v1/teams/0190f8b0-1a2b-7c3d-8e4f-5a6b7c8d9e0f \
  -H "Authorization: Bearer tmrc_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

Response

Returns the full team object.

{
  "success": true,
  "data": {
    "id": "0190f8b0-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
    "name": "Acme Marketing",
    "logoUrl": "https://cdn.twominutereports.com/tmr/team_logo/0190f8b0-1a2b-7c3d-8e4f-5a6b7c8d9e0f-9f2c4b7e1a3d5c8f.png",
    "brandColor": "#2563eb",
    "timezone": "Asia/Kolkata",
    "createdAt": "2026-01-12T08:15:00.000Z",
    "updatedAt": "2026-05-20T11:42:00.000Z",
    "plan": {
      "name": "Growth",
      "status": "active",
      "endsOn": null,
      "currencyCode": "USD",
      "frequency": "month",
      "destinations": {
        "core": "gs",
        "additional": ["gds"]
      },
      "limits": {
        "seats": { "base": 5, "addons": 3, "total": 8 },
        "accountsPerConnector": { "base": 10, "addons": 5, "total": 15 },
        "schedules": {
          "total": 100,
          "allowedFrequencies": ["Daily", "Weekly", "Monthly"]
        }
      }
    },
    "usage": {
      "members": { "count": 6 },
      "seats": { "used": 4, "entitled": 8, "available": 4, "unlimited": false, "status": "ok" },
      "accountsPerConnector": {
        "gadw": { "count": 4, "status": "ok" },
        "fb": { "count": 15, "status": "reached" }
      },
      "schedules": {
        "count": 42,
        "byFrequency": { "Hourly": 0, "Daily": 30, "Weekly": 10, "Monthly": 2 },
        "status": "ok",
        "hasRestrictedFrequency": false
      }
    }
  }
}

Fields

id
string · uuid v7
Team identifier.
name
string | null
Display name, or null if unnamed.
logoUrl
string | null
The team's own logo, or null when it has none — render the team's initials in that case. Set it with Upload team logo. This is not the client-facing logo shown on a client's dashboard; that one belongs to the client.
brandColor
string | null
The team's brand colour as #rrggbb, shown behind its initials when it has no logo, or null when unset. Internal identity only: a client's own brand colour is set per client and is what appears on client-facing output.
timezone
string | null
The IANA zone the team works in, or null when unset — read null as UTC. It times the team's daily schedule-failure summary, formats its query log sheet, and is what a query default set to follow the team inherits. Set it with Update team timezone. It does not affect when a schedule runs.
createdAt
string
When the team was created.
updatedAt
string | null
When the team was last updated, or null.
plan
object | null
The team's subscription plan, or null if the team has no plan. Contains name, status (active, in_trial, non_renewing, cancelled), endsOn, currencyCode (USD, INR, EUR), frequency (month, year), destinations, and limits.
plan.limits
object
Effective limits. seats and accountsPerConnector each break down into base, addons, and total. schedules has a total cap (nullable) and allowedFrequencies (nullable array).Responses still carry a legacy users field mirroring seats. It is deprecated, it is not part of this contract, and it will be removed — read seats.
usage
object
Current usage against the plan.seats is the capped one: used, entitled, available, an unlimited flag, and a status. On a plan with unlimited seats, entitled and available are null rather than a large number — branch on unlimited, and never render "used of entitled" without checking it.members carries a count and no status, deliberately. Members are unlimited on every current plan, so there is no limit to be near; a status here would report a team as "at limit" for having colleagues.accountsPerConnector is keyed by connector ID, and schedules includes a byFrequency breakdown and hasRestrictedFrequency. Both carry a status of ok, reached, or exceeded.
Copyright © 2026