External Authorization

Poll owner consent and exchange an approval for a clone-scoped grant token.

Poll no faster than poll_interval. pending, slow_down, and denied are successful protocol states without a token. After approval, repeated calls with the same unexpired device code return the same grant token, which makes a lost response safe to retry. On success the response includes clone_ids and clone_nicknames (id → display name) so partners can label linked clones immediately without a prior invoke.

post/v1/exchange_external_authorization

Request

  • Base URL: https://partner.mindupload.app
  • URL: https://partner.mindupload.app/v1/exchange_external_authorization
  • Auth: API key in header X-Partner-Key

Request body

preferred_languagestring nullable

BCP-47-ish language code (e.g. 'en', 'zh-cn') for localized messages.

device_codestring required

Short-lived high-entropy secret used only to poll and exchange this request.

Example request

{
  "device_code": "device-code-from-create-response"
}

Response

Result envelope — check the success field.

successboolean required

Whether the call succeeded.

error_messagestring nullable required

Human-readable reason when success is false.

error_codestring
status'pending' | 'slow_down' | 'denied' | 'expired' | 'revoked' | 'exchanged' nullable required

Current authorization or invocation lifecycle state.

access_tokenstring nullable required

Opaque grant token accepted only by grant inspection and external clone invocation; store it as a secret and never expose it to users.

refresh_tokenstring nullable required

Opaque grant-lifetime token used only with refresh_external_authorization; store it as a secret.

token_type'Bearer' nullable required

Authorization token type.

grant_idstring nullable required

Stable grant identifier used by the owner-facing revocation surface.

scopesstring[] nullable required

Capabilities approved by the owner.

clone_idsstring[] nullable required

AI consciousness resources selected by the owner.

clone_nicknamesobject nullable required

Map of granted clone id to plaintext display nickname so partners can label linked clones immediately after approval.

access_token_expires_atinteger nullable required

UNIX timestamp after which the short-lived access token must be refreshed.

expires_atinteger nullable required

UNIX timestamp when this resource or capability expires.

poll_intervalinteger nullable required

Minimum seconds to wait between exchange polls.

Changes

No recorded changes to this operation across all 2 revisions of this API.