Two Minute Reports Logo

Teams

Manage teams — details, plan and usage, members, roles, and invites.

Endpoints under /teams are team-scoped — they act on a specific team identified by the teamId path parameter. Access is governed by your membership of that team: every team member has a role, and most endpoints require a minimum role to call them.

Roles

Each member holds one of three roles, ordered from least to most privileged:

RoleCan
viewerRead team details, members, and data
editorEverything a viewer can, plus create and modify resources
ownerEverything an editor can, plus manage the team, members, roles, and invites

A role requirement is a minimum — an owner satisfies a viewer requirement. If you are not a member of the team, or your role is below the requirement, the call fails with 403 FORBIDDEN. Each endpoint notes its required role.

Endpoints

MethodEndpointDescription
GET/teamsList teams you belong to
GET/teams/{teamId}Get a team's details, plan, and usage
PUT/teams/{teamId}/nameRename a team
GET/teams/{teamId}/membersList a team's members
PUT/teams/{teamId}/members/{userId}/roleChange a member's role
DELETE/teams/{teamId}/members/{userId}Remove a member
GET/teams/{teamId}/invitesList pending invites
POST/teams/{teamId}/members/inviteInvite a member by email

The team object

{
  "id": "0190f8b0-1a2b-7c3d-8e4f-5a6b7c8d9e0f",
  "name": "Acme Marketing",
  "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": "google_sheets",
      "additional": ["looker_studio"]
    },
    "limits": {
      "users": { "base": 5, "addons": 3, "total": 8 },
      "accountsPerConnector": { "base": 10, "addons": 5, "total": 15 },
      "schedules": {
        "total": 100,
        "allowedFrequencies": ["Daily", "Weekly", "Monthly"]
      }
    }
  },
  "usage": {
    "members": { "count": 6, "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
    }
  }
}
plan is null for teams without a subscription. The name field is null for unnamed teams. See Get team for a field-by-field breakdown.
Copyright © 2026