Saltar al contenido principal
DocumentaciónIdentidad y acceso · console.latam.ccsio.ai

Users

The users of an organization, and the integration identities a platform service provisions.

Menú de la documentación

Las descripciones de las operaciones y los campos son las del contrato, en inglés.

GET/identity/v1/users

List the users holding a membership of an organization

Credencial
API key
Permiso
users.read

org is a required query parameter and the tenant-scoping boundary: only users that hold at least one active membership (at any level) of that organization are ever returned, never a platform-wide listing. status filters the user's own account status: active (the default) or all. Needs users.read in that organization. Failures: 400 invalid-request (org missing, or status outside active and all); 400 name-invalid (org outside the C7 pattern); 500 server faults.

curl
curl "https://console.latam.ccsio.ai/identity/v1/users?org=<org>" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
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
obligatorio
querystring

The organization (C7 identifier) whose member users are listed. Only users holding at least one active membership of it are ever returned. A value outside the pattern is refused with 400 name-invalid; a missing one with 400 invalid-request.

status
opcional
querystring

The user account status filter: active (the default) or all (disabled accounts too). Any other value is refused with 400 invalid-request.

Respuestas

  • 200

    The users holding a membership of the organization.

    Esquema
    ListUsersResponse
    • usersarray of Userobligatorio
      • user_idstringobligatorio

        The platform-minted id (a ULID in practice).

        1 to 128 characters

      • issuerstringobligatorio

        The identity issuer; for a service account minted here, a platform-internal reference.

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

      • subjectstringobligatorio

        The subject at that issuer.

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

      • user_refstringobligatorio

        The reference every membership, key and event names this user by.

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

      • emailstringobligatorio

        The email address; empty when the identity has none (a service account never has one). At most 254 bytes.

        at most 254 characters

      • display_namestringobligatorio

        The display name; at most 128 bytes.

        at most 128 characters

      • kindstringobligatorio

        Valores permitidos: "human""service_account"

      • statusstringobligatorio

        Valores permitidos: "active""disabled"

      • created_atstring (date-time)obligatorio

        RFC 3339, second precision, UTC.

      • updated_atstring (date-time)obligatorio

        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:

    Leer más

    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.

    Leer más

    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.

    Leer más

    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.

POST/identity/v1/users

Create a service-account identity with server-generated identifiers

Credencial
API key
Permiso
users.manage
Cuerpo de la solicitud
Cuerpo de hasta 1 MiB

Provisions a service-account identity. Only kind service_account and display_name are accepted: issuer, subject, user_ref and email cannot be chosen, and naming one is an unknown member (400 invalid-request).

Leer más

The platform generates the identifiers: the subject is a new ULID, the user_ref is svc/ followed by it, and the issuer is a platform-internal reference. Each successful call creates a new service identity: this is not an idempotent provisioning API. Human accounts belong to the identity provider and are created when the person signs in: a request of kind human is refused with 403 identity-managed-by-provider, whoever sends it. Needs users.manage, which only the platform ccsio_admin role holds, and a platform service credential: any other caller is 403 membership-forbidden. Failures: 400 invalid-request (kind or display_name missing, or an unknown member); 400 user-invalid (display_name over 128 bytes); 401; 403 identity-managed-by-provider or membership-forbidden; 500 server faults.

curl
curl -X POST "https://console.latam.ccsio.ai/identity/v1/users" \
  -H "Authorization: Bearer $CCSIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "kind": "service_account",
  "display_name": "string"
}'
Construido con los campos obligatorios del esquema: reemplaza los valores.

Parámetros

NombreEnDescripción
X-Request-ID
opcional
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.

Cuerpo de la solicitud application/json

ProvisionUserRequest
  • kindstringobligatorio

    Only service_account is accepted: a request that names kind human is answered 403 identity-managed-by-provider.

    Valores permitidos: "service_account"

  • display_namestringobligatorio

    The identity's display name, 1 to 128 bytes of UTF-8 (a multi-byte character counts for each of its bytes).

    1 to 128 characters

Respuestas

  • 200

    The new service account, with its generated issuer, subject and user_ref.

    Esquema
    User
    • user_idstringobligatorio

      The platform-minted id (a ULID in practice).

      1 to 128 characters

    • issuerstringobligatorio

      The identity issuer; for a service account minted here, a platform-internal reference.

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

    • subjectstringobligatorio

      The subject at that issuer.

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

    • user_refstringobligatorio

      The reference every membership, key and event names this user by.

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

    • emailstringobligatorio

      The email address; empty when the identity has none (a service account never has one). At most 254 bytes.

      at most 254 characters

    • display_namestringobligatorio

      The display name; at most 128 bytes.

      at most 128 characters

    • kindstringobligatorio

      Valores permitidos: "human""service_account"

    • statusstringobligatorio

      Valores permitidos: "active""disabled"

    • created_atstring (date-time)obligatorio

      RFC 3339, second precision, UTC.

    • updated_atstring (date-time)obligatorio

      RFC 3339, second precision, UTC.

  • 400

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

  • 401

    A verified credential is required.

  • 402

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

    Leer más

    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 caller is not a platform service credential (membership-forbidden), or asked for a human account (identity-managed-by-provider).

  • 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/users/{id}

Read one user

Credencial
API key
Permiso
users.read

Scoped to the organization the request resolved to: that organization must hold a membership (of any status) for the user, otherwise the read is a plain 404 user-not-found, so a user's existence is never leaked across organizations. Needs users.read. Failures: 404 user-not-found; 500 server faults.

curl
curl "https://console.latam.ccsio.ai/identity/v1/users/{id}" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
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.

id
obligatorio
pathstring

The platform-minted user id (a ULID in practice, at most 128 characters).

Respuestas

  • 200

    The user.

    Esquema
    User
    • user_idstringobligatorio

      The platform-minted id (a ULID in practice).

      1 to 128 characters

    • issuerstringobligatorio

      The identity issuer; for a service account minted here, a platform-internal reference.

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

    • subjectstringobligatorio

      The subject at that issuer.

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

    • user_refstringobligatorio

      The reference every membership, key and event names this user by.

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

    • emailstringobligatorio

      The email address; empty when the identity has none (a service account never has one). At most 254 bytes.

      at most 254 characters

    • display_namestringobligatorio

      The display name; at most 128 bytes.

      at most 128 characters

    • kindstringobligatorio

      Valores permitidos: "human""service_account"

    • statusstringobligatorio

      Valores permitidos: "active""disabled"

    • created_atstring (date-time)obligatorio

      RFC 3339, second precision, UTC.

    • updated_atstring (date-time)obligatorio

      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:

    Leer más

    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.

    Leer más

    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.

    Leer más

    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.

POST/identity/v1/users/{id}/disable

Disable a user (always refused)

Credencial
API key
Permiso
users.manage

Global account lifecycle belongs to the identity provider. This retained endpoint always refuses: 403 identity-managed-by-provider, whoever calls it. Organization and team access is changed through the membership routes. There is no successful transition on this route.

curl
curl -X POST "https://console.latam.ccsio.ai/identity/v1/users/{id}/disable" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
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.

id
obligatorio
pathstring

The platform-minted user id (a ULID in practice, at most 128 characters).

Respuestas

  • 401

    A verified credential is required.

  • 402

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

    Leer más

    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

    identity-managed-by-provider: manage the global account at the identity provider.

  • 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.

POST/identity/v1/users/{id}/enable

Enable a user (always refused)

Credencial
API key
Permiso
users.manage

Global account lifecycle belongs to the identity provider. This retained endpoint always refuses: 403 identity-managed-by-provider, whoever calls it. Organization and team access is changed through the membership routes. There is no successful transition on this route.

curl
curl -X POST "https://console.latam.ccsio.ai/identity/v1/users/{id}/enable" \
  -H "Authorization: Bearer $CCSIO_API_KEY"

Parámetros

NombreEnDescripción
X-Request-ID
opcional
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.

id
obligatorio
pathstring

The platform-minted user id (a ULID in practice, at most 128 characters).

Respuestas

  • 401

    A verified credential is required.

  • 402

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

    Leer más

    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

    identity-managed-by-provider: manage the global account at the identity provider.

  • 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.

Generado a partir de los contratos de la plataforma en el commit 5f833620.

Explora la plataforma

Obtén tu primera key API

El registro está abierto. Cuatro pasos hasta tu primera llamada: crea tu cuenta, crea tu organización, crea tu API key y empieza a usarla.

  1. 01Crea tu cuenta
  2. 02Crea tu organización
  3. 03Crea tu API key
  4. 04Empieza a usarla