{"openapi":"3.1.0","info":{"title":"Dagster Plus (BYOK) API","version":"0.1.0","description":"Dagster Plus (BYOK) lets an AI assistant read your own Dagster Plus data through the Dagster Plus API with a key you supply (Dagster+ user token). Read-only: 10 tools (get_version, get_instance_status, list_code_locations, list_jobs, list_schedules, list_sensors, list_runs, get_run, list_asset_nodes, list_asset_keys). The BYOK key travels with each request, is used for that one call only and is...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-dagster.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-dagster/docs"},"termsOfService":"https://connectorbay.com/byok-dagster/terms"},"servers":[{"url":"https://byok-dagster.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-dagster/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/get_version":{"post":{"operationId":"get_version","summary":"Show the Dagster version running in the deployment. Use for \"Which Dagster version does my deployment run\".","description":"Show the Dagster version running in the deployment. Use for \"Which Dagster version does my deployment run\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"get_versionArguments","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_instance_status":{"post":{"operationId":"get_instance_status","summary":"Show instance-level flags of the deployment: run queuing support, whether auto-materialization is paused and concurrency","description":"Show instance-level flags of the deployment: run queuing support, whether auto-materialization is paused and concurrency limit support. Use for \"Is auto-materialization paused on my Dagster deployment\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"get_instance_statusArguments","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_code_locations":{"post":{"operationId":"list_code_locations","summary":"List the code locations of the deployment with load status and last update time. Use for \"Which Dagster code locations a","description":"List the code locations of the deployment with load status and last update time. Use for \"Which Dagster code locations are loaded and did any fail\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"list_code_locationsArguments","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_jobs":{"post":{"operationId":"list_jobs","summary":"List the jobs of every repository with name, description and whether the job is built from assets. Use for \"What jobs ar","description":"List the jobs of every repository with name, description and whether the job is built from assets. Use for \"What jobs are defined in my Dagster deployment\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"list_jobsArguments","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_schedules":{"post":{"operationId":"list_schedules","summary":"List the schedules of every repository with cron expression, time zone, target job and running or stopped status. Use fo","description":"List the schedules of every repository with cron expression, time zone, target job and running or stopped status. Use for \"Which Dagster schedules are running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"list_schedulesArguments","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_sensors":{"post":{"operationId":"list_sensors","summary":"List the sensors of every repository with type, minimum interval and running or stopped status. Use for \"Which Dagster s","description":"List the sensors of every repository with type, minimum interval and running or stopped status. Use for \"Which Dagster sensors are running\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"list_sensorsArguments","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 runs, newest first, with job, status and timestamps (Unix seconds); optionally for one job or one status. Ru","description":"List recent runs, newest first, with job, status and timestamps (Unix seconds); optionally for one job or one status. Run configuration is not requested. Use for \"Which Dagster runs failed recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many runs to return (1 to 100).","title":"Limit"},"job_name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only runs of this job name.","title":"Job Name"},"status":{"anyOf":[{"enum":["QUEUED","NOT_STARTED","MANAGED","STARTING","STARTED","SUSPENDED","SUCCESS","FAILURE","CANCELING","CANCELED"],"type":"string"},{"type":"null"}],"default":null,"description":"Only runs with this status.","title":"Status"}},"required":["organization","deployment"],"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_run":{"post":{"operationId":"get_run","summary":"Get one run by id: job, status, timestamps, parent run and whether it can be terminated. Use for \"What happened in Dagst","description":"Get one run by id: job, status, timestamps, parent run and whether it can be terminated. Use for \"What happened in Dagster run 7f1c2d3e-0000-4000-8000-000000000001\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"},"run_id":{"description":"Run id (a UUID) from list_runs.","maxLength":64,"title":"Run Id","type":"string"}},"required":["organization","deployment","run_id"],"title":"get_runArguments","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_asset_nodes":{"post":{"operationId":"list_asset_nodes","summary":"List the software-defined assets with key, group, compute kind, description, partitioning and the jobs that include them","description":"List the software-defined assets with key, group, compute kind, description, partitioning and the jobs that include them. Use for \"What assets does my Dagster deployment define, by group\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"}},"required":["organization","deployment"],"title":"list_asset_nodesArguments","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_asset_keys":{"post":{"operationId":"list_asset_keys","summary":"List asset keys (including assets that were only materialized, with no definition), optionally under a key prefix, with ","description":"List asset keys (including assets that were only materialized, with no definition), optionally under a key prefix, with a cursor for paging. Use for \"Which asset keys exist under the prefix raw in Dagster\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization":{"description":"Your Dagster+ organization name: the first part of the address you sign in at (acme for acme.dagster.cloud).","maxLength":200,"pattern":"^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$","title":"Organization","type":"string"},"deployment":{"description":"Deployment name in the URL, for example 'prod'.","maxLength":60,"title":"Deployment","type":"string"},"limit":{"anyOf":[{"maximum":200,"minimum":1,"type":"integer"},{"type":"null"}],"default":50,"description":"How many keys to return (1 to 200).","title":"Limit"},"cursor":{"anyOf":[{"maxLength":300,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous answer to continue paging.","title":"Cursor"},"prefix_part":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"First part of the asset key path to filter by, for example 'raw'.","title":"Prefix Part"}},"required":["organization","deployment"],"title":"list_asset_keysArguments","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}}}}