Open Agent BridgeDocumentation

Administrator API endpoints

Exact paths, methods, parameters and response contracts from the application.

On this page

This reference is generated from the actual application's OpenAPI document. Paths are relative to your bridge origin, not this documentation host. Download the complete OpenAPI JSON. Expand each contract for exact parameters, request bodies and response schemas.

These endpoints use the administrator browser session and origin checks. Use administrator credentials for these operations. Project administrators are restricted to assigned projects. See accounts and roles.

GET /api/admin/projects/{id}/agents/{agent_id}/enrollments/{enrollment_id}#

Read whether this one-time setup is pending, claimed, expired or revoked; never returns its code

Parameters, body and responses
{
  "summary": "Read whether this one-time setup is pending, claimed, expired or revoked; never returns its code",
  "operationId": "get__api_admin_projects__id__agents__agent_id__enrollments__enrollment_id_",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "enrollment_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/enrollment#

Generate a copyable single-use enrollment prompt

Parameters, body and responses
{
  "summary": "Generate a copyable single-use enrollment prompt",
  "operationId": "post__api_admin_projects__id__agents__agent_id__enrollment",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EnrollmentInput"
        }
      }
    }
  }
}

GET /api/admin#

List owner projects

Parameters, body and responses
{
  "summary": "List owner projects",
  "operationId": "get__api_admin",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectList"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /api/admin/projects#

Create an empty project for custom provisioning

Parameters, body and responses
{
  "summary": "Create an empty project for custom provisioning",
  "operationId": "post__api_admin_projects",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Project"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectInput"
        }
      }
    }
  }
}

GET /api/admin/projects/{id}#

Read owner overview with sanitized latest 100 activity records

Parameters, body and responses
{
  "summary": "Read owner overview with sanitized latest 100 activity records",
  "operationId": "get__api_admin_projects__id_",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectSnapshot"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/environments#

Manage environments

Parameters, body and responses
{
  "summary": "Manage environments",
  "operationId": "post__api_admin_projects__id__environments",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Environment"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/EnvironmentInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents#

Manage agents

Parameters, body and responses
{
  "summary": "Manage agents",
  "operationId": "post__api_admin_projects__id__agents",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentCreated"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/pairings#

Manage pairings

Parameters, body and responses
{
  "summary": "Manage pairings",
  "operationId": "post__api_admin_projects__id__pairings",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PairingResult"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/PairingInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/delete#

Permanently delete owned project data after exact-name confirmation; retain a minimal owner deletion audit

Parameters, body and responses
{
  "summary": "Permanently delete owned project data after exact-name confirmation; retain a minimal owner deletion audit",
  "operationId": "post__api_admin_projects__id__delete",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectDeleted"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectDeleteInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/state#

Activate, pause or archive project

Parameters, body and responses
{
  "summary": "Activate, pause or archive project",
  "operationId": "post__api_admin_projects__id__state",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/ProjectStateInput"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectStateInput"
        }
      }
    }
  }
}

GET /api/admin/projects/{id}/conversations/{conversation_id}/messages#

Read conversation messages after a sequence, or latest messages before a sequence; page size 100, ascending results and explicit retention gap

Parameters, body and responses
{
  "summary": "Read conversation messages after a sequence, or latest messages before a sequence; page size 100, ascending results and explicit retention gap",
  "operationId": "get__api_admin_projects__id__conversations__conversation_id__messages",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "conversation_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "after_sequence",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 9007199254740991
      }
    },
    {
      "name": "before_sequence",
      "in": "query",
      "required": false,
      "schema": {
        "type": "integer",
        "minimum": 0,
        "maximum": 9007199254740991
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/MessagePage"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/messages#

Send an owner-attributed message to a conversation member

Parameters, body and responses
{
  "summary": "Send an owner-attributed message to a conversation member",
  "operationId": "post__api_admin_projects__id__messages",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 8,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_.:-]+$"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Message"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/OwnerMessageInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/tasks/{task_id}/cancel#

Request safe cancellation; local stop confirmation remains the assigned agent responsibility

Parameters, body and responses
{
  "summary": "Request safe cancellation; local stop confirmation remains the assigned agent responsibility",
  "operationId": "post__api_admin_projects__id__tasks__task_id__cancel",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "task_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 8,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_.:-]+$"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/OwnerCancelResult"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/OwnerCancelInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/credentials#

Issue or rotate a scoped credential; plaintext shown once

Parameters, body and responses
{
  "summary": "Issue or rotate a scoped credential; plaintext shown once",
  "operationId": "post__api_admin_projects__id__agents__agent_id__credentials",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/CredentialIssued"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/CredentialInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/takeover#

Fence the current session and issue a single-use replacement grant

Parameters, body and responses
{
  "summary": "Fence the current session and issue a single-use replacement grant",
  "operationId": "post__api_admin_projects__id__agents__agent_id__takeover",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/TakeoverIssued"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/TakeoverInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/recipient-key#

Provision the trusted public encryption key; private key stays on recipient endpoint

Parameters, body and responses
{
  "summary": "Provision the trusted public encryption key; private key stays on recipient endpoint",
  "operationId": "post__api_admin_projects__id__agents__agent_id__recipient_key",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RecipientKey"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/RecipientKeyInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/name#

Rename an agent for the portal and subsequent launches

Parameters, body and responses
{
  "summary": "Rename an agent for the portal and subsequent launches",
  "operationId": "post__api_admin_projects__id__agents__agent_id__name",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentNameInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/state#

Enable or disable an agent

Parameters, body and responses
{
  "summary": "Enable or disable an agent",
  "operationId": "post__api_admin_projects__id__agents__agent_id__state",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentStateInput"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentStateInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/credentials/{credential_id}/revoke#

Revoke one agent credential

Parameters, body and responses
{
  "summary": "Revoke one agent credential",
  "operationId": "post__api_admin_projects__id__credentials__credential_id__revoke",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "credential_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/RevokeResult"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Empty"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/instructions#

Save agent work instructions for future downloads

Parameters, body and responses
{
  "summary": "Save agent work instructions for future downloads",
  "operationId": "post__api_admin_projects__id__agents__agent_id__instructions",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentInstructionPreview"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/AgentInstructionInput"
        }
      }
    }
  }
}

GET /api/admin/projects/{id}/agents/{agent_id}/instructions#

Preview Open Agent Bridge instructions injected into a Codex kit without issuing credentials

Parameters, body and responses
{
  "summary": "Preview Open Agent Bridge instructions injected into a Codex kit without issuing credentials",
  "operationId": "get__api_admin_projects__id__agents__agent_id__instructions",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/AgentInstructionPreview"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

GET /api/admin/projects/{id}/agents/{agent_id}/kit#

Download secret-free Markdown role instructions

Parameters, body and responses
{
  "summary": "Download secret-free Markdown role instructions",
  "operationId": "get__api_admin_projects__id__agents__agent_id__kit",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "format",
      "in": "query",
      "required": false,
      "schema": {
        "type": "string",
        "enum": [
          "agents",
          "claude"
        ],
        "default": "agents"
      }
    }
  ],
  "responses": {
    "200": {
      "description": "Secret-free instruction file.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        },
        "Content-Disposition": {
          "schema": {
            "type": "string"
          },
          "description": "Attachment named AGENTS.md or CLAUDE.md."
        }
      },
      "content": {
        "text/markdown": {
          "schema": {
            "type": "string"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/kit#

Issue access and download a private Codex ZIP; not retained or replayable

Parameters, body and responses
{
  "summary": "Issue access and download a private Codex ZIP; not retained or replayable",
  "operationId": "post__api_admin_projects__id__agents__agent_id__kit",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Private credential-backed agent kit. Protect this download.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store, private"
          }
        },
        "Content-Disposition": {
          "schema": {
            "type": "string"
          }
        }
      },
      "content": {
        "application/zip": {
          "schema": {
            "type": "string",
            "format": "binary"
          }
        },
        "text/markdown": {
          "schema": {
            "type": "string"
          },
          "description": "Private credential-bearing third-party registration prompt when format is third-party."
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/KitInput"
        }
      }
    }
  }
}

POST /api/admin/projects/provision#

Create the explicitly named environments and agents atomically

Parameters, body and responses
{
  "summary": "Create the explicitly named environments and agents atomically",
  "operationId": "post__api_admin_projects_provision",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 8,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_.:-]+$"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ProjectSetup"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/pairings/bulk#

Set all project links or all links for one agent atomically

Parameters, body and responses
{
  "summary": "Set all project links or all links for one agent atomically",
  "operationId": "post__api_admin_projects__id__pairings_bulk",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/BulkPairingInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/extend-validity#

Extend all non-revoked agent credentials in this project

Parameters, body and responses
{
  "summary": "Extend all non-revoked agent credentials in this project",
  "operationId": "post__api_admin_projects__id__extend_validity",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Idempotency-Key",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "minLength": 8,
        "maxLength": 128,
        "pattern": "^[A-Za-z0-9_.:-]+$"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/ExtendValidityInput"
        }
      }
    }
  }
}

POST /api/admin/projects/{id}/agents/{agent_id}/revoke-access#

Revoke every credential for this agent

Parameters, body and responses
{
  "summary": "Revoke every credential for this agent",
  "operationId": "post__api_admin_projects__id__agents__agent_id__revoke_access",
  "tags": [
    "Owner"
  ],
  "security": [
    {
      "OwnerSession": []
    }
  ],
  "parameters": [
    {
      "name": "id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "agent_id",
      "in": "path",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uuid"
      }
    },
    {
      "name": "Origin",
      "in": "header",
      "required": true,
      "schema": {
        "type": "string",
        "format": "uri"
      },
      "description": "Must exactly match the configured owner portal origin."
    }
  ],
  "responses": {
    "200": {
      "description": "Operation committed or authorized read returned. Resource timestamps are ISO 8601; sequence values may be decimal strings.",
      "headers": {
        "Cache-Control": {
          "schema": {
            "type": "string",
            "const": "no-store"
          }
        }
      },
      "content": {
        "application/json": {
          "schema": {
            "type": "object"
          }
        }
      }
    },
    "401": {
      "description": "Missing, invalid, expired or revoked identity",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "403": {
      "description": "Insufficient role, origin or local policy",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "404": {
      "description": "Unknown or inaccessible resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "405": {
      "description": "Unsupported method",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "409": {
      "description": "State, generation or idempotency conflict",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "410": {
      "description": "Expired offer or retired resource",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "413": {
      "description": "Request body too large",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "422": {
      "description": "Invalid request schema or manifest",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "429": {
      "description": "Rate or wait concurrency limit",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    },
    "503": {
      "description": "Dependency unavailable or capacity reached",
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/Error"
          }
        }
      }
    }
  },
  "requestBody": {
    "required": true,
    "content": {
      "application/json": {
        "schema": {
          "$ref": "#/components/schemas/Confirm"
        }
      }
    }
  }
}

Administrator accounts and infrastructure routes#

Browser account operations are implemented in administrator-service.ts and the admin route handler. Use administration for role and password rules. Public handlers include GET /api/health, GET /api/ready, GET /api/openapi and GET /api/agent-client. Authentication is managed by the configured Better Auth routes under /api/auth/. Consult the source handlers for these routes.