Call GET /records with pagination parameters (startingAfter cursor) to enumerate all contract records in the Ironclad repository, capturing each record's id and schema type
For each record, call GET /records/{recordId} to retrieve the full metadata object, including all custom field values defined in the record schema
Map Ironclad field types (text, date, currency, picklist, counterparty) to target schema types in the destination data store, handling null values and multi-select picklist arrays explicitly
Upsert each record's metadata into the external index (e.g., Elasticsearch or a relational database) using the Ironclad record ID as the natural key for idempotent updates
Schedule incremental syncs by querying GET /records with an updatedAfter filter timestamp to capture only records modified since the last successful sync run
Known gotchas
Ironclad record schemas are account-configurable; field keys and types differ between accounts and even between record schema types within the same account — always introspect the schema via the API before hardcoding field mappings
The Records API returns metadata only, not the underlying document file; to retrieve the associated contract PDF, a separate call to the documents endpoint (or a signed download URL) is required
Ironclad does not emit a webhook for every field update on a record; relying solely on webhooks for sync can miss bulk-import or API-driven updates, so periodic polling with updatedAfter is the safer incremental strategy
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp