Zum Hauptinhalt springen
DokumentationIdentität und Zugriff · console.eu.ccsio.ai

Team members

A team's roster: add, read, change the role of and remove members, and the people who could be added.

Menü der Dokumentation

Die Beschreibungen der Operationen und Felder stammen aus dem Vertrag und sind auf Englisch.

GET/identity/v1/organizations/{org}/teams/{team}/members

List the team roster

Anmeldedaten
API-Key
Berechtigung
Eine vonteam-members.readsupport-access.read

Lists the team's role bindings deterministic by member ref, each with the role the member really holds (the built-in team_admin and user, or a custom role id) and the binding's status; no stored role is left out. status selects active (the default), disabled or removed bindings.

curl
curl "https://console.eu.ccsio.ai/identity/v1/organizations/{org}/teams/{team}/members" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parameter

NameInBeschreibung
X-Request-ID
optional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

org
Pflicht
pathstring

The organization id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

team
Pflicht
pathstring

The team id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

status
optional
querystring

The membership status filter: active (default), disabled or removed. Any other value is refused with 400 invalid-request.

Antworten

  • 200

    The team roster (role bindings).

    Schema
    ListRoleBindingsResponse
    • membersarray of RoleBindingPflicht
      • emailstringoptional

        Provider profile email when known; never an authorization identifier.

      • display_namestringoptional

        Readable human or service account name when known.

      • kindstringoptional

        Erlaubte Werte: "human""service_account"

      • organization_idstringPflicht

        pattern ^[a-z][a-z0-9._-]{0,63}$

      • team_idstring or nullPflicht

        null for an organization-level binding.

        pattern ^[a-z][a-z0-9._-]{0,63}$

      • user_refstringPflicht

        pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

      • rolestringPflicht

        The binding's role: a built-in role id or the id of one of the organization's custom roles.

        pattern ^(ccsio_admin|root|organization_admin|team_admin|user|role_[a-z0-9_]{1,59})$

      • statusstringPflicht

        Erlaubte Werte: "active""disabled""removed"

      • created_atstring (date-time)Pflicht

        RFC 3339, second precision, UTC.

      • updated_atstring (date-time)Pflicht

        RFC 3339, second precision, UTC.

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Weiterlesen

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Weiterlesen

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Weiterlesen

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

  • 503

    A dependency the operation needs is not configured on this plane or could not be reached, and nothing was changed. `error.code` names it; an operation lists the ones it can answer besides the boundary's. Retry later. Codes: support-audit-unavailable (the request boundary: an operator's read under an open support session could not be recorded, so nothing was served)

POST/identity/v1/organizations/{org}/teams/{team}/members

Add (or re-add) a member to the team

Anmeldedaten
API-Key
Berechtigung
team-members.manage
Request-Body
Body bis 1 MiB

member_ref and role are both required; confirm_extra_seat is optional (default false). role is the team-assignable vocabulary: the built-in team_admin and user, or the id of one of the organization's custom roles (role_<id>); the legacy values admin and member are still accepted here and mean team_admin and user.

Weiterlesen

Upsert: adding an active member returns the stored role binding with its stored role (the upsert never rewrites a stored role); adding a removed or disabled member re-activates the row, again keeping the stored role. Escalation: the acting principal (the verified caller, never a request field) must be able to manage team members over this team (an organization root or organization_admin for any team of the organization, this team's own team_admin, a platform ccsio_admin, or a holder of a custom role carrying team-members.manage) and able to grant the role being written and, on a re-add, the role the row already holds; otherwise 403 membership-forbidden. An archived team takes no new members (409 team-archived). Seats: adding a human who has no access to the organization yet takes one seat. When the seats the plan includes are all used, a self-service organization with a running subscription must confirm the extra seat with confirm_extra_seat true (409 seat-confirmation-required otherwise, nothing changes); any other organization is refused (409 seat-limit-reached). Adding someone who already has access asks nothing; a service account takes a service account slot instead of a seat (409 service-account-limit-reached when none is left).

curl
curl -X POST "https://console.eu.ccsio.ai/identity/v1/organizations/{org}/teams/{team}/members" \
  -H "Authorization: Bearer $CCSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "member_ref": "user/onboard/01K7YN2C4D6F8H1K3M5P7R9T0V",
  "role": "user"
}'

Parameter

NameInBeschreibung
X-Request-ID
optional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

org
Pflicht
pathstring

The organization id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

team
Pflicht
pathstring

The team id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

Request-Body application/json

AddTeamRoleBindingRequest
  • member_refstringPflicht

    The member's C0 ref.

    pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

  • rolestringPflicht

    A built-in role id or a custom role id (role_<id>); only the team-level subset (team_admin, user and custom roles) is ever legal on THIS operation. The legacy values admin and member are still accepted here, and mean team_admin and user (the role change takes neither).

    pattern ^(admin|member|ccsio_admin|root|organization_admin|team_admin|user|role_[a-z0-9_]{1,59})$

  • confirm_extra_seatbooleanoptional

    Optional (default false): confirms the extra charge when adding this member needs one more seat than the plan includes (409 seat-confirmation-required without it).

Antworten

  • 200

    The team role binding (status active; the stored role is authoritative on a re-add).

    Schema
    RoleBinding
    • emailstringoptional

      Provider profile email when known; never an authorization identifier.

    • display_namestringoptional

      Readable human or service account name when known.

    • kindstringoptional

      Erlaubte Werte: "human""service_account"

    • organization_idstringPflicht

      pattern ^[a-z][a-z0-9._-]{0,63}$

    • team_idstring or nullPflicht

      null for an organization-level binding.

      pattern ^[a-z][a-z0-9._-]{0,63}$

    • user_refstringPflicht

      pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

    • rolestringPflicht

      The binding's role: a built-in role id or the id of one of the organization's custom roles.

      pattern ^(ccsio_admin|root|organization_admin|team_admin|user|role_[a-z0-9_]{1,59})$

    • statusstringPflicht

      Erlaubte Werte: "active""disabled""removed"

    • created_atstring (date-time)Pflicht

      RFC 3339, second precision, UTC.

    • updated_atstring (date-time)Pflicht

      RFC 3339, second precision, UTC.

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Weiterlesen

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Weiterlesen

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Weiterlesen

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 409

    The request conflicts with the current state of the resource or with an invariant it protects (a taken name, a role still in use, an organization that must not be deleted, an archived team, the last active root, a seat or service account limit).

  • 500

    Platform failure, rendered without internal cause details.

Beispielantwort
{
  "organization_id": "acme",
  "team_id": "platform",
  "user_ref": "user/onboard/01K7YN2C4D6F8H1K3M5P7R9T0V",
  "role": "user",
  "status": "active",
  "created_at": "2026-10-14T09:40:00Z",
  "updated_at": "2026-10-14T09:40:00Z",
  "email": "[email protected]",
  "display_name": "Ben Okafor",
  "kind": "human"
}
PATCH/identity/v1/organizations/{org}/teams/{team}/members

Change a team member's role

Anmeldedaten
API-Key
Berechtigung
team-members.manage
Request-Body
Body bis 1 MiB

member_ref and role are required. role is the team-assignable vocabulary: the built-in team_admin and user, or the id of one of the organization's custom roles (role_<id>).

Weiterlesen

Unlike the add on this same path it takes neither the legacy aliases admin and member (400 role-invalid) nor confirm_extra_seat (changing a role never needs a seat). Escalation: the acting principal (the verified caller, never a request field) must be able to manage team members over this team (an organization root or organization_admin for any team of the organization, this team's own team_admin, a platform ccsio_admin, or a holder of a custom role carrying team-members.manage) and able to grant both the new role and the member's current role: a built-in administrator outranks or equals a built-in role, and any role's permissions must be a subset of the actor's own at this scope; a custom-role holder can never grant root, organization_admin or team_admin. The request is otherwise 403 membership-forbidden.

curl
curl -X PATCH "https://console.eu.ccsio.ai/identity/v1/organizations/{org}/teams/{team}/members" \
  -H "Authorization: Bearer $CCSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "member_ref": "string",
  "role": "string"
}'
Aus den Pflichtfeldern des Schemas erzeugt: ersetze die Werte.

Parameter

NameInBeschreibung
X-Request-ID
optional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

org
Pflicht
pathstring

The organization id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

team
Pflicht
pathstring

The team id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

Request-Body application/json

TeamRoleBindingRequest
  • member_refstringPflicht

    pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

  • rolestringPflicht

    A built-in role id or a custom role id (role_<id>); only the team-level subset (team_admin, user and custom roles) is ever legal on THIS operation. The legacy values admin and member that the add accepts are refused here (400 role-invalid).

    pattern ^(ccsio_admin|root|organization_admin|team_admin|user|role_[a-z0-9_]{1,59})$

Antworten

  • 200

    The updated team role binding.

    Schema
    RoleBinding
    • emailstringoptional

      Provider profile email when known; never an authorization identifier.

    • display_namestringoptional

      Readable human or service account name when known.

    • kindstringoptional

      Erlaubte Werte: "human""service_account"

    • organization_idstringPflicht

      pattern ^[a-z][a-z0-9._-]{0,63}$

    • team_idstring or nullPflicht

      null for an organization-level binding.

      pattern ^[a-z][a-z0-9._-]{0,63}$

    • user_refstringPflicht

      pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

    • rolestringPflicht

      The binding's role: a built-in role id or the id of one of the organization's custom roles.

      pattern ^(ccsio_admin|root|organization_admin|team_admin|user|role_[a-z0-9_]{1,59})$

    • statusstringPflicht

      Erlaubte Werte: "active""disabled""removed"

    • created_atstring (date-time)Pflicht

      RFC 3339, second precision, UTC.

    • updated_atstring (date-time)Pflicht

      RFC 3339, second precision, UTC.

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Weiterlesen

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Weiterlesen

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Weiterlesen

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

DELETE/identity/v1/organizations/{org}/teams/{team}/members

Remove the member named by the query parameter

Anmeldedaten
API-Key
Berechtigung
team-members.manage

The member is named by the required member_ref query parameter, query-carried because a C0 ref may contain '/' and ':', which path segments mangle. Returns the tombstoned role binding (status removed); re-removing returns the stored tombstone (idempotent).

Weiterlesen

Escalation: the same administrative-scope and rank rule as the add and the role change: the acting principal must be able to manage team members over this team and to grant the role the member holds, otherwise 403 membership-forbidden. A removal takes effect at once: the member's next request no longer authorizes through this team.

curl
curl -X DELETE "https://console.eu.ccsio.ai/identity/v1/organizations/{org}/teams/{team}/members?member_ref=<member_ref>" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parameter

NameInBeschreibung
X-Request-ID
optional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

org
Pflicht
pathstring

The organization id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

team
Pflicht
pathstring

The team id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

member_ref
Pflicht
querystring

The member's C0 ref, query-carried because a C0 ref may contain '/' and ':' (path segments would mangle them into several tokens).

Antworten

  • 200

    The role binding, status removed (the tombstone).

    Schema
    RoleBinding
    • emailstringoptional

      Provider profile email when known; never an authorization identifier.

    • display_namestringoptional

      Readable human or service account name when known.

    • kindstringoptional

      Erlaubte Werte: "human""service_account"

    • organization_idstringPflicht

      pattern ^[a-z][a-z0-9._-]{0,63}$

    • team_idstring or nullPflicht

      null for an organization-level binding.

      pattern ^[a-z][a-z0-9._-]{0,63}$

    • user_refstringPflicht

      pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

    • rolestringPflicht

      The binding's role: a built-in role id or the id of one of the organization's custom roles.

      pattern ^(ccsio_admin|root|organization_admin|team_admin|user|role_[a-z0-9_]{1,59})$

    • statusstringPflicht

      Erlaubte Werte: "active""disabled""removed"

    • created_atstring (date-time)Pflicht

      RFC 3339, second precision, UTC.

    • updated_atstring (date-time)Pflicht

      RFC 3339, second precision, UTC.

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Weiterlesen

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Weiterlesen

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Weiterlesen

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 500

    Platform failure, rendered without internal cause details.

GET/identity/v1/organizations/{org}/teams/{team}/member-candidates

List eligible members for one team's member picker

Anmeldedaten
API-Key
Berechtigung
team-members.manage

Requires team-members.manage for the named team. Returns only user_ref, display_name, email and kind of the active organization-level members with an active user account, excluding the active members of this team, ordered by user_ref. Human and service_account identities are supported. Organization roles and other team affiliations are never exposed. This permission does not grant organization-wide roster access.

curl
curl "https://console.eu.ccsio.ai/identity/v1/organizations/{org}/teams/{team}/member-candidates" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parameter

NameInBeschreibung
X-Request-ID
optional
headerstring

Optional request ULID. A valid ULID (upper or lowercase) is honored; when the header is absent or invalid, the runtime mints the id. The response X-Request-ID header carries the canonical uppercase form.

org
Pflicht
pathstring

The organization id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

team
Pflicht
pathstring

The team id (C7 identifier). A value outside the pattern is refused with 400 name-invalid.

Antworten

  • 200

    Eligible member profiles; candidates is empty when none remain.

    Schema
    TeamMemberCandidates
    • candidatesarray of TeamMemberCandidatePflicht
      • user_refstringPflicht

        pattern ^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$

      • display_namestringPflicht
      • emailstringPflicht
      • kindstringPflicht

        Erlaubte Werte: "human""service_account"

  • 400

    Client refusal unrelated to authentication, including malformed input, a denied or failed request.

  • 401

    The request carries no credential, more than one, or one the platform does not accept, and is refused before the operation runs; `error.code` says why. Supply exactly one credential. Codes: invalid-request (no credential, or both Authorization:

    Weiterlesen

    Bearer and x-api-key), api-key-invalid (a value that is not a platform API key, or a key of a kind the platform does not accept), api-key-unknown, api-key-revoked, api-key-expired, bootstrap-disabled (the one-shot installation credential, once a key exists), token-malformed (a bearer token that is not a JWT), token-algorithm-unsupported, token-signature-invalid, token-claim-invalid, token-issuer-mismatch, token-audience-mismatch, token-expired, token-not-yet-valid, issuer-untrusted, issuer-residency-mismatch (the issuer belongs to another plane), issuer-resolution-unknown, jwks-unavailable, jwks-key-not-found, staff-token-inactive (a platform operator's token), staff-not-operator, staff-directory-unavailable, identity-not-provisioned (a verified identity with no account on this plane), organization-not-found (a verified identity or key whose organization this plane does not know), internal-error (a fault while the credential is checked is refused too, fail closed), context-cancelled

  • 402

    The organization has to pay first: its standing is payment_required.

    Weiterlesen

    The request boundary applies this payment gate to every route except an organization's billing routes, the caller's own context, organization list, onboarding, session report and personal keys, the public routes, and the routes of platform operators, who administer an organization that has to pay. The operations the gate covers declare this response. On /v1 the refusal is rendered in the OpenAI error format. Code: payment-required

  • 403

    The credential is valid but may not do this here; the request is refused by the request boundary before the handler runs, and `error.code` says which refusal. An operation may add codes of its own.

    Weiterlesen

    Codes: policy-denied (no role of the caller holds the permission the operation needs, or the credential class may not call it: a personal API key outside inference and MCP, a route that needs a signed-in person, the one-shot installation credential outside its three steps), tenant-mismatch (the organization a path, query, body or X-Tenant header names is not the caller's own), organization-provisioning, organization-suspended, organization-disabled, organization-deleted (the state of the caller's organization), user-disabled, residency-mismatch (the organization lives on another plane), organization-selection-required (a caller with more than one organization, or a platform operator, must name one in X-Organization-Id), organization-not-selectable, no-active-organization-membership, team-not-selectable (the X-Organization-Id or X-Team-Id the caller sent does not name an organization or team it may act in), identity-managed-by-provider (a person who is not a platform operator changes an organization's status, which belongs to the identity provider), support-session-required (a platform operator reads an organization's data without an open support session)

  • 404

    The requested resource or path was not found.

  • 405

    The path is claimed but the request method is not allowed. Go ServeMux returns its standard plain-text response and lists permitted methods in Allow.

  • 409

    The request conflicts with the current state of the resource or with an invariant it protects (a taken name, a role still in use, an organization that must not be deleted, an archived team, the last active root, a seat or service account limit).

  • 500

    Platform failure, rendered without internal cause details.

Erzeugt aus den Plattformverträgen beim Commit 5f833620.

Plattform entdecken

Deinen ersten API-Key holen

Die Registrierung ist offen. Vier Schritte bis zum ersten Aufruf: Konto erstellen, Organisation anlegen, API-Key erzeugen, loslegen.

  1. 01Konto erstellen
  2. 02Organisation anlegen
  3. 03API-Key erzeugen
  4. 04Loslegen