{"openapi":"3.1.0","info":{"title":"Ironclad Workflows (BYOK) API","version":"0.1.0","description":"Ironclad Workflows (BYOK) lets an AI assistant read your own Ironclad Workflows data through the Ironclad Workflows API with a key you supply (Ironclad bearer access token (legacy access token from Company Settings > API, or an OAuth access token)). Read-only: 6 tools (list_workflow_schemas, get_workflow_schema, list_workflows, get_workflow, list_webhooks, get_webhook). The BYOK key travels with...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ironclad-workflows.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ironclad-workflows/docs"},"termsOfService":"https://connectorbay.com/byok-ironclad-workflows/terms"},"servers":[{"url":"https://byok-ironclad-workflows.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ironclad-workflows/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_workflow_schemas":{"post":{"operationId":"list_workflow_schemas","summary":"List the workflow templates (launch forms) with id, name, permissions and the fields each launch form asks for. Use for ","description":"List the workflow templates (launch forms) with id, name, permissions and the fields each launch form asks for. Use for \"Which contract workflow templates are available in Ironclad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"form":{"anyOf":[{"const":"launch","type":"string"},{"type":"null"}],"default":"launch","description":"Form type; launch is the only one supported.","title":"Form"}},"title":"list_workflow_schemasArguments","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_workflow_schema":{"post":{"operationId":"get_workflow_schema","summary":"Get one workflow template's launch-form fields with type, display name, whether required and the allowed options. Use fo","description":"Get one workflow template's launch-form fields with type, display name, whether required and the allowed options. Use for \"What fields does the Ironclad workflow template 5f3c1b2a9d8e7a0012340001 require\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"schema_id":{"description":"Workflow template id, as returned by list_workflow_schemas.","maxLength":200,"title":"Schema Id","type":"string"},"form":{"anyOf":[{"const":"launch","type":"string"},{"type":"null"}],"default":"launch","description":"Form type; launch is the only one supported.","title":"Form"}},"required":["schema_id"],"title":"get_workflow_schemaArguments","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_workflows":{"post":{"operationId":"list_workflows","summary":"List workflows (active by default) with title, template, step, status and dates; contract attributes, creators and assig","description":"List workflows (active by default) with title, template, step, status and dates; contract attributes, creators and assignees are not returned. Use for \"Which Ironclad workflows were updated recently and what step are they in\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page number.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"template":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only workflows of this template id.","title":"Template"},"last_updated":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only workflows updated since this UTC date, for example 2026-10-01T00:00:00Z.","title":"Last Updated"},"search":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search across workflow properties (up to 1000 characters).","title":"Search"}},"title":"list_workflowsArguments","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_workflow":{"post":{"operationId":"get_workflow","summary":"Get one workflow's title, template, step, status, dates and the state of its approval and signature stages (attributes a","description":"Get one workflow's title, template, step, status, dates and the state of its approval and signature stages (attributes and people are not returned). Use for \"What is the status of Ironclad workflow IC-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"workflow_id":{"description":"Workflow id or Ironclad id such as 'IC-1'.","maxLength":200,"title":"Workflow Id","type":"string"}},"required":["workflow_id"],"title":"get_workflowArguments","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_webhooks":{"post":{"operationId":"list_webhooks","summary":"List the account's webhooks with subscribed events, status and consecutive failure count (the target URL is not returned","description":"List the account's webhooks with subscribed events, status and consecutive failure count (the target URL is not returned). Use for \"Are any of my Ironclad webhooks failing or disabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Zero-based page number.","title":"Page"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"}},"title":"list_webhooksArguments","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_webhook":{"post":{"operationId":"get_webhook","summary":"Get one webhook's subscribed events, status and failure counters (the target URL is not returned). Use for \"Is Ironclad ","description":"Get one webhook's subscribed events, status and failure counters (the target URL is not returned). Use for \"Is Ironclad webhook wh_1 enabled\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"webhook_id":{"description":"Webhook id, as returned by list_webhooks.","maxLength":200,"title":"Webhook Id","type":"string"}},"required":["webhook_id"],"title":"get_webhookArguments","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}}}}