{"openapi":"3.1.0","info":{"title":"Cerebrium (BYOK) API","version":"0.1.0","description":"Cerebrium (BYOK) lets an AI assistant read your own Cerebrium data through the Cerebrium API with a key you supply (Cerebrium service account token). Read-only: 12 tools (list_projects, get_project, list_apps, get_app, get_active_revision, list_builds, list_active_containers, get_queue_depth, list_runs, get_app_cost, get_project_cost, list_volumes). The BYOK key travels with each request, is used...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-cerebrium.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-cerebrium/docs"},"termsOfService":"https://connectorbay.com/byok-cerebrium/terms"},"servers":[{"url":"https://byok-cerebrium.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-cerebrium/docs"},"security":[{"upstreamKey":[]}],"components":{"securitySchemes":{"bearer":{"type":"http","scheme":"bearer","description":"Optional. A Pro API key raises rate limits; no credentials are required."},"upstreamKey":{"type":"apiKey","in":"header","name":"X-Upstream-Key","description":"Your own key for the service this connector wraps (bring your own key). Used for that one call only; never stored, logged or cached."}},"schemas":{"Error":{"type":"object","properties":{"ok":{"const":false},"error":{"type":"object"}}}}},"paths":{"/v1/tools/list_projects":{"post":{"operationId":"list_projects","summary":"List the Cerebrium projects the token can access with your role in each. Use for \"Which Cerebrium projects do I have\".","description":"List the Cerebrium projects the token can access with your role in each. Use for \"Which Cerebrium projects do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_projectsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project":{"post":{"operationId":"get_project","summary":"Get one project: creation time, runtime versions, log retention, spend alert level and per-second hardware prices. Use f","description":"Get one project: creation time, runtime versions, log retention, spend alert level and per-second hardware prices. Use for \"What are the settings and hardware prices of my Cerebrium project\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"get_projectArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_apps":{"post":{"operationId":"list_apps","summary":"List the deployed apps (model endpoints) of a project with status, hardware, region and current-month usage. Use for \"Wh","description":"List the deployed apps (model endpoints) of a project with status, hardware, region and current-month usage. Use for \"Which apps are deployed in my Cerebrium project and on what hardware\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"include_ephemeral":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to include temporary apps created by one-off runs.","title":"Include Ephemeral"}},"required":["project_id"],"title":"list_appsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_app":{"post":{"operationId":"get_app","summary":"Get one app's configuration: status, hardware, CPU, memory, GPU count, replica limits, scaling metric and latest build. ","description":"Get one app's configuration: status, hardware, CPU, memory, GPU count, replica limits, scaling metric and latest build. Use for \"How is my Cerebrium app configured to scale\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"}},"required":["project_id","app_id"],"title":"get_appArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_active_revision":{"post":{"operationId":"get_active_revision","summary":"Get the live revision of an app: revision names, replica limits, scaling target and traffic split. Use for \"Which revisi","description":"Get the live revision of an app: revision names, replica limits, scaling target and traffic split. Use for \"Which revision of my Cerebrium app is serving traffic\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"}},"required":["project_id","app_id"],"title":"get_active_revisionArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_builds":{"post":{"operationId":"list_builds","summary":"List an app's builds, newest first, with status, type, build time, hardware, region, runtime version and image size. Use","description":"List an app's builds, newest first, with status, type, build time, hardware, region, runtime version and image size. Use for \"Did the last builds of my Cerebrium app succeed\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Maximum number of builds to return (1 to 100).","title":"Limit"},"offset":{"anyOf":[{"maxLength":64,"type":"string"},{"type":"null"}],"default":null,"description":"Only builds created before this timestamp; pass the createdAt of the last build of the previous page.","title":"Offset"}},"required":["project_id","app_id"],"title":"list_buildsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_active_containers":{"post":{"operationId":"list_active_containers","summary":"List the running containers of an app, including ones that are terminating, with state, region, restarts and uptime. Use","description":"List the running containers of an app, including ones that are terminating, with state, region, restarts and uptime. Use for \"How many containers of my Cerebrium app are running right now\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"}},"required":["project_id","app_id"],"title":"list_active_containersArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_queue_depth":{"post":{"operationId":"get_queue_depth","summary":"Show how many requests are queued at the proxy or waiting for a container, and how many are being processed, for an app.","description":"Show how many requests are queued at the proxy or waiting for a container, and how many are being processed, for an app. Use for \"Is my Cerebrium app backed up with queued requests\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"}},"required":["project_id","app_id"],"title":"get_queue_depthArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_runs":{"post":{"operationId":"list_runs","summary":"List recent requests (runs) of an app with filters for status, HTTP status code, region and time window. Pass nextToken ","description":"List recent requests (runs) of an app with filters for status, HTTP status code, region and time window. Pass nextToken to page. Use for \"Which requests to my Cerebrium app failed with a 5xx error today\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"},"status":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs with this status.","title":"Status"},"status_code":{"anyOf":[{"maxLength":3,"type":"string"},{"type":"null"}],"default":null,"description":"HTTP status filter: 201 exact, 20 means 200-209, 4xx means 400-499.","title":"Status Code"},"region":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs in this region.","title":"Region"},"after_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs created after this RFC 3339 timestamp, for example 2026-02-01T00:00:00Z.","title":"After Date"},"before_date":{"anyOf":[{"maxLength":40,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs created before this RFC 3339 timestamp.","title":"Before Date"},"next_token":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Pagination token from the previous answer.","title":"Next Token"}},"required":["project_id","app_id"],"title":"list_runsArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_app_cost":{"post":{"operationId":"get_app_cost","summary":"Get the cost breakdown of one app for the current or the previous billing month. Use for \"How much did my Cerebrium app ","description":"Get the cost breakdown of one app for the current or the previous billing month. Use for \"How much did my Cerebrium app cost this month\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"app_id":{"description":"Id of the app (from list_apps), for example p-1a2b3c4d-my-model.","maxLength":200,"title":"App Id","type":"string"},"month":{"anyOf":[{"enum":["current","previous"],"type":"string"},{"type":"null"}],"default":"current","description":"Billing month to report: current or previous.","title":"Month"}},"required":["project_id","app_id"],"title":"get_app_costArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/get_project_cost":{"post":{"operationId":"get_project_cost","summary":"Get the cost breakdown of a whole project for a month (YYYY-MM, default current), with per-app breakdown and remaining c","description":"Get the cost breakdown of a whole project for a month (YYYY-MM, default current), with per-app breakdown and remaining coupons. Use for \"What is my Cerebrium spend this month across all apps\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"},"month":{"anyOf":[{"maxLength":7,"type":"string"},{"type":"null"}],"default":null,"description":"Month in YYYY-MM format; default is the current month.","title":"Month"}},"required":["project_id"],"title":"get_project_costArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}},"/v1/tools/list_volumes":{"post":{"operationId":"list_volumes","summary":"List the persistent storage volumes of a project with region, capacity and used bytes and inodes. Use for \"How full are ","description":"List the persistent storage volumes of a project with region, capacity and used bytes and inodes. Use for \"How full are my Cerebrium storage volumes\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"project_id":{"description":"Id of the project (from list_projects), for example p-1a2b3c4d.","maxLength":200,"title":"Project Id","type":"string"}},"required":["project_id"],"title":"list_volumesArguments","type":"object"}}}},"responses":{"200":{"description":"Tool result. `ok: true` on success; `ok: false` with a structured `error` (provider_unavailable, upstream_error, bad_input) when the tool could not answer.","content":{"application/json":{"schema":{"type":"object","additionalProperties":true}}}},"422":{"description":"Arguments failed validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limit exceeded (see Retry-After)","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}},"x-read-only":true}}}}