{"openapi":"3.1.0","info":{"title":"Link Squares Analyze (BYOK) API","version":"0.1.0","description":"Link Squares Analyze (BYOK) lets an AI assistant read your own Link Squares Analyze data through the Link Squares Analyze API with a key you supply (LinkSquares API key (Settings > API Keys)). Read-only: 6 tools (list_agreement_types, list_clause_categories, list_clauses, list_term_types, list_agreements, get_agreement). 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-linksquares-analyze.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-linksquares-analyze/docs"},"termsOfService":"https://connectorbay.com/byok-linksquares-analyze/terms"},"servers":[{"url":"https://byok-linksquares-analyze.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-linksquares-analyze/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_agreement_types":{"post":{"operationId":"list_agreement_types","summary":"List the agreement types defined in Analyze with name and smart-type flag. Use for \"What agreement types are configured ","description":"List the agreement types defined in Analyze with name and smart-type flag. Use for \"What agreement types are configured in LinkSquares Analyze\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by exact name (case sensitive).","title":"Name"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous response (next_cursor) to get the next page.","title":"Cursor"},"sort_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example name; prefix with - for descending.","title":"Sort By"}},"title":"list_agreement_typesArguments","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_clause_categories":{"post":{"operationId":"list_clause_categories","summary":"List the clause library categories with name and created and updated times. Use for \"What clause categories exist in my ","description":"List the clause library categories with name and created and updated times. Use for \"What clause categories exist in my LinkSquares clause library\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by exact name (case sensitive).","title":"Name"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous response (next_cursor) to get the next page.","title":"Cursor"},"sort_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example name; prefix with - for descending.","title":"Sort By"}},"title":"list_clause_categoriesArguments","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_clauses":{"post":{"operationId":"list_clauses","summary":"List clause library entries with name, category id, source agreement id and timestamps (clause text, notes and author na","description":"List clause library entries with name, category id, source agreement id and timestamps (clause text, notes and author names are not returned). Use for \"Which clauses are in my LinkSquares clause library for category cc-1\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by exact name (case sensitive).","title":"Name"},"clause_category_id":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only clauses in this category id, as returned by list_clause_categories.","title":"Clause Category Id"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous response (next_cursor) to get the next page.","title":"Cursor"},"sort_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example name; prefix with - for descending.","title":"Sort By"}},"title":"list_clausesArguments","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_term_types":{"post":{"operationId":"list_term_types","summary":"List the term types (smart values) that Analyze extracts, with name, kind, agreement type id and created time. Use for \"","description":"List the term types (smart values) that Analyze extracts, with name, kind, agreement type id and created time. Use for \"Which terms does LinkSquares Analyze extract\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"name":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by exact name (case sensitive).","title":"Name"},"sort_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example name; prefix with - for descending.","title":"Sort By"}},"title":"list_term_typesArguments","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 Analyze agreements with name, type, upload and update dates and linked Finalize id (term values, tags and uploader ","description":"List Analyze agreements with name, type, upload and update dates and linked Finalize id (term values, tags and uploader names are not returned). Use for \"Which LinkSquares Analyze agreements were updated since 2026-10-01\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{"type":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Filter by agreement type name (case sensitive).","title":"Type"},"after_date":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only agreements updated since this date (YYYY-MM-DD).","title":"After Date"},"page_size":{"anyOf":[{"maximum":100,"minimum":1,"type":"integer"},{"type":"null"}],"default":20,"description":"Results per page (1 to 100).","title":"Page Size"},"cursor":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Cursor from the previous response (next_cursor) to get the next page.","title":"Cursor"},"sort_by":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Field to sort by, for example name; prefix with - for descending.","title":"Sort By"}},"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 Analyze agreement's name, type and upload and update dates (term values, tags and uploader names are not returne","description":"Get one Analyze agreement's name, type and upload and update dates (term values, tags and uploader names are not returned). Use for \"Show LinkSquares Analyze agreement ag-1\".","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}}}}