{"openapi":"3.1.0","info":{"title":"Link Squares Finalize (BYOK) API","version":"0.1.0","description":"Link Squares Finalize (BYOK) lets an AI assistant read your own Link Squares Finalize data through the Link Squares Finalize API with a key you supply (LinkSquares API key (Settings > API Keys)). Read-only: 7 tools (list_templates, get_template, list_statuses, list_agreements, get_agreement, list_agreement_versions, list_tasks). The BYOK key travels with each request, is used for that one call...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-linksquares-finalize.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-linksquares-finalize/docs"},"termsOfService":"https://connectorbay.com/byok-linksquares-finalize/terms"},"servers":[{"url":"https://byok-linksquares-finalize.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-linksquares-finalize/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_templates":{"post":{"operationId":"list_templates","summary":"List Finalize contract templates with name, description, kind and created and updated times (questions and instructions ","description":"List Finalize contract templates with name, description, kind and created and updated times (questions and instructions are not returned). Use for \"Which contract templates are set up in LinkSquares Finalize\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page.","title":"Per Page"}},"title":"list_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_template":{"post":{"operationId":"get_template","summary":"Get one Finalize template's name, description, kind and created and updated times (instructions, tokens and questions ar","description":"Get one Finalize template's name, description, kind and created and updated times (instructions, tokens and questions are not returned). Use for \"Show LinkSquares Finalize template 6b1e2f4a-0c1d-4e7a-9a52-2d8f3c4b5a60\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"template_id":{"description":"Template UUID, as returned by list_templates.","maxLength":200,"title":"Template Id","type":"string"}},"required":["template_id"],"title":"get_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_statuses":{"post":{"operationId":"list_statuses","summary":"List the agreement statuses configured in Finalize with name, description and internal enum. Use for \"What agreement sta","description":"List the agreement statuses configured in Finalize with name, description and internal enum. Use for \"What agreement statuses exist in LinkSquares Finalize\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page.","title":"Per Page"}},"title":"list_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/list_agreements":{"post":{"operationId":"list_agreements","summary":"List Finalize agreement records with name, kind, status id, template id and timestamps (answers, people, owners and file","description":"List Finalize agreement records with name, kind, status id, template id and timestamps (answers, people, owners and files are not returned). Use for \"Which LinkSquares Finalize agreements changed status recently\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page.","title":"Per Page"}},"title":"list_agreementsArguments","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_agreement":{"post":{"operationId":"get_agreement","summary":"Get one Finalize agreement's name, kind, status id, template id and timestamps (answers, people and files are not return","description":"Get one Finalize agreement's name, kind, status id, template id and timestamps (answers, people and files are not returned). Use for \"Show LinkSquares Finalize agreement c3a1d9e0-5b7f-4c21-8e34-1f2a3b4c5d6e\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"agreement_id":{"description":"Agreement id, as returned by list_agreements.","maxLength":200,"title":"Agreement Id","type":"string"}},"required":["agreement_id"],"title":"get_agreementArguments","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_agreement_versions":{"post":{"operationId":"list_agreement_versions","summary":"List the file versions of one agreement with file name, status id and created and deleted times (file contents are not r","description":"List the file versions of one agreement with file name, status id and created and deleted times (file contents are not returned). Use for \"What versions does LinkSquares Finalize agreement c3a1d9e0-5b7f-4c21-8e34-1f2a3b4c5d6e have\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"agreement_id":{"description":"Agreement UUID, as returned by list_agreements.","maxLength":200,"title":"Agreement Id","type":"string"}},"required":["agreement_id"],"title":"list_agreement_versionsArguments","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_tasks":{"post":{"operationId":"list_tasks","summary":"List Finalize tasks with agreement id, name, type, approval type, status, due date and active flag (task text and assign","description":"List Finalize tasks with agreement id, name, type, approval type, status, due date and active flag (task text and assignees are not returned). Use for \"Which LinkSquares Finalize tasks are open and when are they due\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page":{"anyOf":[{"maximum":100000,"minimum":1,"type":"integer"},{"type":"null"}],"default":1,"description":"Page number, starting at 1.","title":"Page"},"per_page":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":10,"description":"Results per page.","title":"Per Page"}},"title":"list_tasksArguments","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}}}}