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.

The key holder's role must include View team settings. Every standard role includes it.

Authentication: Bearer token · 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" },
        "fads": { "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. In that case, show the team's initials. 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 color as #rrggbb, shown behind its initials when it has no logo, or null when unset. Internal identity only: a client's own brand color 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.destinations
object
The destinations the team can use. core is the destination chosen at sign-up (gs for Google Sheets, gds for Google Data Studio), or null. additional lists every other destination the plan allows.The current plans include both destinations, so on them additional holds the destination that is not core. On a plan bought before July 2026, additional lists a second destination only when the plan has one, for example through the destination add-on. To check whether a team can use a destination, look for it in core or additional.
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 show "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