Identity, prompt apps and runtime contracts
These endpoints are present in the inspected v1 backend. A local contract fixture verifies request and response schemas; it does not prove a particular deployment or account state.
Read API key account identity
GET /v1/user
Authenticate with the caller’s AIx bearer API key.
Contract
{
"request": null,
"response": {
"description": "Inspected response contract; mock fixtures are not live results.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ViewerIdentity"
}
}
}
}
}Prompt app runs depend on application approval and caller permissions. Claim codes can expire or be consumed. Runtime tokens have their own scope and expiry; do not expose a general billing key to a generated app.
Read public prompt app metadata
GET /v1/prompt-apps/{id}
This operation does not require an inference key; claim redemption still requires a valid one-use claim code.
Contract
{
"request": null,
"response": {
"description": "Inspected response contract; mock fixtures are not live results.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptApp"
}
}
}
}
}Prompt app runs depend on application approval and caller permissions. Claim codes can expire or be consumed. Runtime tokens have their own scope and expiry; do not expose a general billing key to a generated app.
Run a permitted prompt app
POST /v1/prompt-apps/{id}/run
Authenticate with the caller’s AIx bearer API key.
Contract
{
"request": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptRunRequest"
}
}
}
},
"response": {
"description": "Inspected response contract; mock fixtures are not live results.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptRun"
}
}
}
}
}Prompt app runs depend on application approval and caller permissions. Claim codes can expire or be consumed. Runtime tokens have their own scope and expiry; do not expose a general billing key to a generated app.
Redeem a single-use creator claim
POST /v1/prompt-apps/{id}/verify-claim
This operation does not require an inference key; claim redemption still requires a valid one-use claim code.
Contract
{
"request": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/VerifyClaimRequest"
}
}
}
},
"response": {
"description": "Inspected response contract; mock fixtures are not live results.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/PromptApp"
}
}
}
}
}Prompt app runs depend on application approval and caller permissions. Claim codes can expire or be consumed. Runtime tokens have their own scope and expiry; do not expose a general billing key to a generated app.
Mint a scoped runtime token
POST /v1/webapp-rt/token
Authenticate with the caller’s AIx bearer API key.
Contract
{
"request": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RuntimeTokenRequest"
}
}
}
},
"response": {
"description": "Inspected response contract; mock fixtures are not live results.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RuntimeToken"
}
}
}
}
}Prompt app runs depend on application approval and caller permissions. Claim codes can expire or be consumed. Runtime tokens have their own scope and expiry; do not expose a general billing key to a generated app.
Call chat with a runtime token
POST /v1/webapp-rt/chat
Authenticate with a scoped runtime token from the token endpoint. An inference API key is not a substitute.
Contract
{
"request": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RuntimeChatRequest"
}
}
}
},
"response": {
"description": "Inspected response contract; mock fixtures are not live results.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RuntimeChat"
}
}
}
}
}Prompt app runs depend on application approval and caller permissions. Claim codes can expire or be consumed. Runtime tokens have their own scope and expiry; do not expose a general billing key to a generated app.
Limits and errors
Inspect the complete OpenAPI schemas for fields. Authentication, policy, invalid input, missing app and rate-limit failures need distinct handling. Native app-operation error envelopes should not be assumed to match every provider-compatible inference error. See troubleshooting.