{"openapi":"3.1.0","info":{"title":"Anvil (BYOK) API","version":"0.1.0","description":"Anvil (BYOK) lets an AI assistant read your own Anvil data through the Anvil API with a key you supply (Anvil API key). Read-only: 9 tools (get_current_user, list_etch_packets, get_etch_packet, list_etch_templates, list_workflows, get_workflow, list_workflow_submissions, get_workflow_submission, list_pdf_templates). 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-anvil.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-anvil/docs"},"termsOfService":"https://connectorbay.com/byok-anvil/terms"},"servers":[{"url":"https://byok-anvil.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-anvil/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_current_user":{"post":{"operationId":"get_current_user","summary":"Show the Anvil API user and the organizations it belongs to (eid, slug, name, subscription flag). The slug is needed by ","description":"Show the Anvil API user and the organizations it belongs to (eid, slug, name, subscription flag). The slug is needed by the list tools. Use for \"Which Anvil organizations is my API key connected to\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_current_userArguments","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_etch_packets":{"post":{"operationId":"list_etch_packets","summary":"List e-signature packets of an organization with name, status (draft, sent, delivered, partial, declined, voided, comple","description":"List e-signature packets of an organization with name, status (draft, sent, delivered, partial, declined, voided, completed), remaining signers and dates. Use for \"Which Anvil signature packets are still waiting for signatures\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_slug":{"description":"Anvil organization slug (from get_current_user, for example 'acme-legal').","maxLength":100,"title":"Organization Slug","type":"string"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search for in titles or names.","title":"Search"},"is_test":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True for test packets only, false for live packets only; omit for both.","title":"Is Test"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page, 1 to 500 (Anvil's own default when omitted).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to fetch, passed to Anvil's offset argument (Anvil's own default when omitted).","title":"Page"}},"required":["organization_slug"],"title":"list_etch_packetsArguments","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_etch_packet":{"post":{"operationId":"get_etch_packet","summary":"Get one e-signature packet by eid: name, status, test flag, remaining signers and sent, completed and archived times. Us","description":"Get one e-signature packet by eid: name, status, test flag, remaining signers and sent, completed and archived times. Use for \"What is the status of Anvil packet kQp2qd9FVUWrrE60hMbi\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"eid":{"description":"Packet eid, for example kQp2qd9FVUWrrE60hMbi.","maxLength":60,"title":"Eid","type":"string"}},"required":["eid"],"title":"get_etch_packetArguments","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_etch_templates":{"post":{"operationId":"list_etch_templates","summary":"List an organization's e-signature templates (name, free and repeatable flags, dates). Use for \"What signature templates","description":"List an organization's e-signature templates (name, free and repeatable flags, dates). Use for \"What signature templates exist in my Anvil organization\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_slug":{"description":"Anvil organization slug (from get_current_user, for example 'acme-legal').","maxLength":100,"title":"Organization Slug","type":"string"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page, 1 to 500 (Anvil's own default when omitted).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to fetch, passed to Anvil's offset argument (Anvil's own default when omitted).","title":"Page"}},"required":["organization_slug"],"title":"list_etch_templatesArguments","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 an organization's workflows with slug, name, visibility, whether they have signers, publish state and the number of","description":"List an organization's workflows with slug, name, visibility, whether they have signers, publish state and the number of submissions. Use for \"Which Anvil workflows do we have and how many submissions has each\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_slug":{"description":"Anvil organization slug (from get_current_user, for example 'acme-legal').","maxLength":100,"title":"Organization Slug","type":"string"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search for in titles or names.","title":"Search"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":null,"description":"True to list archived workflows only.","title":"Archived"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page, 1 to 500 (Anvil's own default when omitted).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to fetch, passed to Anvil's offset argument (Anvil's own default when omitted).","title":"Page"}},"required":["organization_slug"],"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 by eid: slug, name, visibility, publish state, submission count and dates. Use for \"Show Anvil workflow","description":"Get one workflow by eid: slug, name, visibility, publish state, submission count and dates. Use for \"Show Anvil workflow w1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"eid":{"description":"Workflow (weld) eid.","maxLength":60,"title":"Eid","type":"string"}},"required":["eid"],"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_workflow_submissions":{"post":{"operationId":"list_workflow_submissions","summary":"List the submissions (workflow runs) of one workflow with title, status (created, in-progress, ready-to-sign, awaiting-s","description":"List the submissions (workflow runs) of one workflow with title, status (created, in-progress, ready-to-sign, awaiting-signatures, completed, declined), completion and dates. Use for \"Which submissions of Anvil workflow w1 are awaiting signatures\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"eid":{"description":"Workflow (weld) eid.","maxLength":60,"title":"Eid","type":"string"},"include_test":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"False to leave out test submissions (default: ignore test ones).","title":"Include Test"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page, 1 to 500 (Anvil's own default when omitted).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to fetch, passed to Anvil's offset argument (Anvil's own default when omitted).","title":"Page"}},"required":["eid"],"title":"list_workflow_submissionsArguments","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_submission":{"post":{"operationId":"get_workflow_submission","summary":"Get one workflow submission by eid: title, status, completion percentage, remaining signers, expiry and dates. Use for \"","description":"Get one workflow submission by eid: title, status, completion percentage, remaining signers, expiry and dates. Use for \"What is the state of Anvil submission wd1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"eid":{"description":"Workflow submission (weldData) eid.","maxLength":60,"title":"Eid","type":"string"}},"required":["eid"],"title":"get_workflow_submissionArguments","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_pdf_templates":{"post":{"operationId":"list_pdf_templates","summary":"List an organization's PDF templates (casts) with name, title, publish state and dates. Use for \"Which PDF templates are","description":"List an organization's PDF templates (casts) with name, title, publish state and dates. Use for \"Which PDF templates are published in Anvil\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"organization_slug":{"description":"Anvil organization slug (from get_current_user, for example 'acme-legal').","maxLength":100,"title":"Organization Slug","type":"string"},"search":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Text to search for in titles or names.","title":"Search"},"limit":{"anyOf":[{"maximum":500,"minimum":1,"type":"integer"},{"type":"null"}],"default":null,"description":"Rows per page, 1 to 500 (Anvil's own default when omitted).","title":"Limit"},"page":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":null,"description":"Page number to fetch, passed to Anvil's offset argument (Anvil's own default when omitted).","title":"Page"}},"required":["organization_slug"],"title":"list_pdf_templatesArguments","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}}}}