{"openapi":"3.1.0","info":{"title":"Ironclad Records (BYOK) API","version":"0.1.0","description":"Ironclad Records (BYOK) lets an AI assistant read your own Ironclad Records data through the Ironclad Records 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 (get_records_schema, list_records, list_entities, list_entity_relationship_types, list_obligation_types, list_obligations). The BYOK key...\n\nEvery operation is read-only or compute-only. The same tools are available over MCP (streamable HTTP) at https://byok-ironclad-records.connectorbay.com/mcp.","contact":{"name":"Unify Dynamics LLC","email":"agent@connectorbay.com","url":"https://connectorbay.com/byok-ironclad-records/docs"},"termsOfService":"https://connectorbay.com/byok-ironclad-records/terms"},"servers":[{"url":"https://byok-ironclad-records.connectorbay.com"}],"externalDocs":{"url":"https://connectorbay.com/byok-ironclad-records/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_records_schema":{"post":{"operationId":"get_records_schema","summary":"Get the record types, property definitions, attachment slots and link types configured for contract records. Use for \"Wh","description":"Get the record types, property definitions, attachment slots and link types configured for contract records. Use for \"What record types and properties does my Ironclad repository define\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"get_records_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_records":{"post":{"operationId":"list_records","summary":"List contract records with name, type, status, dates and parent id; property values and attachments are not returned. Us","description":"List contract records with name, type, status, dates and parent id; property values and attachments are not returned. Use for \"Which contract records were updated recently in Ironclad and are they active\".","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"},"types":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Comma-separated record types to include (no spaces), as in get_records_schema.","title":"Types"},"last_updated":{"anyOf":[{"maxLength":200,"type":"string"},{"type":"null"}],"default":null,"description":"Only records 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 record properties (up to 1000 characters).","title":"Search"},"sort_field":{"anyOf":[{"enum":["agreementDate","name","lastUpdated"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by agreementDate, name or lastUpdated.","title":"Sort Field"},"sort_direction":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ASC or DESC.","title":"Sort Direction"}},"title":"list_recordsArguments","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_entities":{"post":{"operationId":"list_entities","summary":"List the company's legal entities with name, status, last update, entity type ids and parent entity id; properties are n","description":"List the company's legal entities with name, status, last update, entity type ids and parent entity id; properties are not returned. Use for \"Which legal entities are set up in Ironclad\".","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"},"search":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search across entity properties (up to 1000 characters).","title":"Search"},"sort_field":{"anyOf":[{"enum":["name","lastUpdated"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by name or lastUpdated.","title":"Sort Field"},"sort_direction":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ASC or DESC.","title":"Sort Direction"}},"title":"list_entitiesArguments","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_entity_relationship_types":{"post":{"operationId":"list_entity_relationship_types","summary":"List the entity relationship types (for example vendor or customer) with id, name and description. Use for \"What entity ","description":"List the entity relationship types (for example vendor or customer) with id, name and description. Use for \"What entity relationship types exist in Ironclad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_entity_relationship_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_obligation_types":{"post":{"operationId":"list_obligation_types","summary":"List the obligation types configured in the account with id, name and description. Use for \"What obligation types are co","description":"List the obligation types configured in the account with id, name and description. Use for \"What obligation types are configured in Ironclad\".","tags":["tools"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"properties":{},"title":"list_obligation_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_obligations":{"post":{"operationId":"list_obligations","summary":"List source obligations with name, status, due date, cadence and parent contract name; descriptions and properties are n","description":"List source obligations with name, status, due date, cadence and parent contract name; descriptions and properties are not returned. Use for \"Which Ironclad obligations are in progress or due soon\".","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"},"search":{"anyOf":[{"maxLength":1000,"type":"string"},{"type":"null"}],"default":null,"description":"Free-text search across obligation properties (up to 1000 characters).","title":"Search"},"sort_field":{"anyOf":[{"enum":["name","lastUpdated"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort by name or lastUpdated.","title":"Sort Field"},"sort_direction":{"anyOf":[{"enum":["ASC","DESC"],"type":"string"},{"type":"null"}],"default":null,"description":"Sort direction: ASC or DESC.","title":"Sort Direction"}},"title":"list_obligationsArguments","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}}}}