Skip to content
On this site

Team

The team a key or token belongs to: its plan and limits, the sender identity broadcasts print, whether AI assist is on, and the people on it.

Who can call it

A key and a token each belong to exactly one team, so there is no team ID to pass — the route is singular.

What each credential can reach on the team routes
CredentialGET /teamPATCH /teamGET /team/members
full_access200200200
sending_access401 restricted_api_key401 restricted_api_key401 restricted_api_key
OAuth token with team:read200403 invalid_permission403 invalid_permission
OAuth token with team:write403 invalid_permission200403 invalid_permission
OAuth token with every scope200200403 invalid_permission

Scopes are listed on the authentication page. Membership is in the class no scope reaches: a connected app never learns who is on your team.

What the team object carries

  • sso is a summary — status, issuer, client_id, enforced and domains — or null before a connection exists. It never carries the client secret and never lists members.
  • PATCH /team writes the sender identity and ai_assist_enabled. It never takes name: a body naming it is 422 validation_error.
  • Single sign-on is configured in the dashboard only, because it decides who may sign in.

Endpoints

GET /team

The team this credential belongs to: plan, limits, sender identity, AI and SSO.

curl -X GET "https://api.rasket.com/team" \
  -H "Authorization: Bearer $RASKET_API_KEY" \
  -H "User-Agent: acme-billing/1.0"

Response 200

{
  "object": "team",
  "id": "0199c4a2-7b1e-7d30-8f2a-4c6e9b1d3a50",
  "name": "Acme",
  "slug": "acme",
  "created_at": "2026-09-01T09:00:00.000Z",
  "risk_state": "normal",
  "plan": {
    "code": "pro",
    "name": "Pro",
    "limits": {
      "included_emails": 50000,
      "daily_cap": null,
      "domain_limit": 10,
      "webhook_endpoint_limit": 5,
      "retention_days": 30
    }
  },
  "sender_identity": {
    "sender_name": "Acme",
    "postal_address": {
      "line1": "1 Example Street",
      "city": "Springfield",
      "postal_code": "12345",
      "country": "US"
    }
  },
  "ai_assist_enabled": false,
  "sso": null
}
  • sso is null until the team has a single sign-on connection. When it has one, it is a summary — status, issuer, client_id, enforced and domains — and never the client secret.
  • The member list is not here: it is GET /team/members.
  • Reachable with a full_access key, or an OAuth token holding team:read.

PATCH /team

Change the sender identity broadcasts print, or switch AI assist on or off.

Body

Body
FieldTypeDescription
sender_namestringThe name broadcast footers print. One line, at most 200 characters.
postal_addressobject{ line1, line2, city, state, postal_code, country }, with country an upper-case ISO 3166-1 alpha-2 code. Every broadcast footer prints it.
ai_assist_enabledbooleanTurn AI assist on or off. Turning it on sends the content you ask about to the model provider; recipient addresses are never included.
curl -X PATCH "https://api.rasket.com/team" \
  -H "Authorization: Bearer $RASKET_API_KEY" \
  -H "User-Agent: acme-billing/1.0" \
  -H "Content-Type: application/json" \
  -d '{
  "ai_assist_enabled": true
}'

Response 200

{
  "object": "team",
  "id": "0199c4a2-7b1e-7d30-8f2a-4c6e9b1d3a50",
  "name": "Acme",
  "slug": "acme",
  "created_at": "2026-09-01T09:00:00.000Z",
  "risk_state": "normal",
  "plan": {
    "code": "pro",
    "name": "Pro",
    "limits": {
      "included_emails": 50000,
      "daily_cap": null,
      "domain_limit": 10,
      "webhook_endpoint_limit": 5,
      "retention_days": 30
    }
  },
  "sender_identity": {
    "sender_name": "Acme",
    "postal_address": {
      "line1": "1 Example Street",
      "city": "Springfield",
      "postal_code": "12345",
      "country": "US"
    }
  },
  "ai_assist_enabled": true,
  "sso": null
}
  • Every field is optional and at least one is required. A team with no postal address yet must send one before sender_name alone is accepted.
  • name is not writable here: a body naming it is 422 validation_error.
  • Reachable with a full_access key, or an OAuth token holding team:write.

GET /team/members

The people on the team, with their role and whether they use MFA.

curl -X GET "https://api.rasket.com/team/members" \
  -H "Authorization: Bearer $RASKET_API_KEY" \
  -H "User-Agent: acme-billing/1.0"

Response 200

{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "team_member",
      "id": "0199c4a2-7b1e-7d30-8f2a-4c6e9b1d3a51",
      "user_id": "0199c4a2-7b1e-7d30-8f2a-4c6e9b1d3a52",
      "email": "ronald.williams@example.com",
      "name": "Ronald Williams",
      "role": "admin",
      "mfa_enabled": true,
      "sso_exempt": false,
      "created_at": "2026-09-01T09:00:00.000Z"
    }
  ]
}
  • A full_access key only. No OAuth scope reaches this route: who is on a team is never shared with a connected app.