{"openapi":"3.1.0","info":{"title":"Legalesign (BYOK) API","version":"0.1.0","description":"Legalesign (BYOK) lets an AI assistant read your own Legalesign data through the Legalesign API with a key you supply (Legalesign API key). Read-only: 10 tools (list_groups, get_group, list_documents, get_document, list_document_statuses, get_signer, list_text_templates, list_pdf_templates, get_pdf_template, list_members). The BYOK key travels with each request, is used for that one call only and...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-legalesign.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-legalesign/docs"},"termsOfService":"https://connectorbay.com/byok-legalesign/terms"},"servers":[{"url":"https://byok-legalesign.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-legalesign/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_groups":{"post":{"operationId":"list_groups","summary":"List the Legalesign groups (teams) the key can use, with name, slug and active flag. Use for \"Which Legalesign groups do","description":"List the Legalesign groups (teams) the key can use, with name, slug and active flag. Use for \"Which Legalesign groups do I have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging with limit.","title":"Offset"}},"title":"list_groupsArguments","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_group":{"post":{"operationId":"get_group","summary":"Get one Legalesign group by slug: name, default email, members and active flag. Use for \"Show Legalesign group sales\".","description":"Get one Legalesign group by slug: name, default email, members and active flag. Use for \"Show Legalesign group sales\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group_id":{"description":"Group slug or id.","maxLength":200,"title":"Group Id","type":"string"}},"required":["group_id"],"title":"get_groupArguments","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_documents":{"post":{"operationId":"list_documents","summary":"List signing documents of a group with name, status (10 initial, 20 fields completed, 30 signed, 40 removed, 50 rejected","description":"List signing documents of a group with name, status (10 initial, 20 fields completed, 30 signed, 40 removed, 50 rejected), signers and dates. Use for \"Which Legalesign documents are waiting for signature\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group":{"description":"Group slug or id the items belong to (from list_groups).","maxLength":200,"title":"Group","type":"string"},"status":{"anyOf":[{"enum":[10,20,30,40,50],"type":"integer"},{"type":"null"}],"default":null,"description":"Only documents with this status code: 10, 20, 30, 40 or 50.","title":"Status"},"email":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only documents with a signer having this email address.","title":"Email"},"archived":{"anyOf":[{"type":"boolean"},{"type":"null"}],"default":false,"description":"True to list archived documents instead of active ones.","title":"Archived"},"created_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only documents created after this ISO 8601 time.","title":"Created After"},"modified_after":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only documents modified after this ISO 8601 time.","title":"Modified After"},"no_signers":{"anyOf":[{"const":"1","type":"string"},{"type":"null"}],"default":null,"description":"Set to '1' to leave out signer details (faster).","title":"No Signers"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging with limit.","title":"Offset"}},"required":["group"],"title":"list_documentsArguments","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_document":{"post":{"operationId":"get_document","summary":"Get one Legalesign signing document: name, status, signers with their status, group and dates. Use for \"What is the stat","description":"Get one Legalesign signing document: name, status, signers with their status, group and dates. Use for \"What is the status of Legalesign document 7f9c\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"document_id":{"description":"Document uuid (from list_documents).","maxLength":200,"title":"Document Id","type":"string"}},"required":["document_id"],"title":"get_documentArguments","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_document_statuses":{"post":{"operationId":"list_document_statuses","summary":"List lightweight status records of signing documents (status code, archived flag, tags); faster than full documents. Use","description":"List lightweight status records of signing documents (status code, archived flag, tags); faster than full documents. Use for \"Give me a quick status overview of my Legalesign documents\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging with limit.","title":"Offset"}},"title":"list_document_statusesArguments","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_signer":{"post":{"operationId":"get_signer","summary":"Get one signer of a Legalesign document: name, email, signing order and status. Use for \"What is the status of Legalesig","description":"Get one signer of a Legalesign document: name, email, signing order and status. Use for \"What is the status of Legalesign signer 5ad1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"signer_id":{"description":"Signer id (from get_document signer_objects).","maxLength":200,"title":"Signer Id","type":"string"}},"required":["signer_id"],"title":"get_signerArguments","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_text_templates":{"post":{"operationId":"list_text_templates","summary":"List a group's text templates (reusable documents) with title, signer count and dates. Use for \"What text templates does","description":"List a group's text templates (reusable documents) with title, signer count and dates. Use for \"What text templates does my Legalesign group have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group":{"description":"Group slug or id the items belong to (from list_groups).","maxLength":200,"title":"Group","type":"string"},"archive":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Archive filter; send true to list archived templates.","title":"Archive"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging with limit.","title":"Offset"}},"required":["group"],"title":"list_text_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_pdf_templates":{"post":{"operationId":"list_pdf_templates","summary":"List a group's PDF templates with title, page count, signer count and whether the template is valid. Use for \"What PDF t","description":"List a group's PDF templates with title, page count, signer count and whether the template is valid. Use for \"What PDF templates does my Legalesign group have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group":{"description":"Group slug or id the items belong to (from list_groups).","maxLength":200,"title":"Group","type":"string"},"archive":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Archive filter; send true to list archived templates.","title":"Archive"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging with limit.","title":"Offset"}},"required":["group"],"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}},"/v1/tools/get_pdf_template":{"post":{"operationId":"get_pdf_template","summary":"Get one Legalesign PDF template by id: title, pages, signers and validity. Use for \"Show Legalesign PDF template p1\".","description":"Get one Legalesign PDF template by id: title, pages, signers and validity. Use for \"Show Legalesign PDF template p1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"PDF template uuid (from list_pdf_templates).","maxLength":200,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_pdf_templateArguments","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_members":{"post":{"operationId":"list_members","summary":"List members of Legalesign groups (user, group and permission level 1 to 6); can be limited to one group. Use for \"Who i","description":"List members of Legalesign groups (user, group and permission level 1 to 6); can be limited to one group. Use for \"Who is a member of my Legalesign group\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"group":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only members of this group slug or id.","title":"Group"},"limit":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"How many items to return.","title":"Limit"},"offset":{"anyOf":[{"maximum":100000,"minimum":0,"type":"integer"},{"type":"null"}],"default":0,"description":"Number of items to skip, for paging with limit.","title":"Offset"}},"title":"list_membersArguments","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}}}}