π‘ For developers: please see our API set-up documentation here.
Requirements to integrate with Juro's API π»
Our API provides the bandwidth to build an integration as custom as you need it to be. Before getting started, you should confirm the following:
Your Juro subscription includes API access (for more information about this, please reach out to your Juro Customer Success Manager).
You have the internal development resources available to build, set up and manage the integration: this is a service we offer from our side.
Setting up the connection βοΈ
For developers: please see our API set-up documentation here.
To connect Juro with your application via our API:
3. Copy the link in the API Key field and paste it into the relevant section of your system/application. |
|
There may be a designated place to put this in your other application, or it may be copied and pasted into your other system's code. |
What actions can I automate with the Juro API? πͺ
Using Juro's API, you can automate your contract creation process by setting up Juro events to trigger responses in your system.
From your own system, you can automate:
Contract creation
|
|
Data pre-filling |
|
Contract sharing |
|
PDF storage |
|
Here's a summary of the Juro API's additional capabilities:
Question | Answer | Notes |
Can you create a contract? | Yes | You can't currently edit the body of a contract. |
Can you create a template? | No | You can't currently edit the body of a template. |
Can you map fields and pass through field data? | Yes |
|
Can you set a 2-way sync of fields? | Yes |
|
Can you create and map dynamic table line items? | Yes |
|
Can you upload a .PDF/file via the API? | Yes | This is available when you upload a contract from another system into Juro as a one-off action. |
Can you map an approver? | No | You can't currently send a contract for approval automatically. |
Can you map signatories? | Yes | Both internal and external signatories.
You can also pass a signing URL (internal/external) from Juro to your application? |
Can you automatically send the contract for signing? | Yes |
|
Can you pass a reviewer link from Juro to the application? | Yes |
|
Can you download the contract as a PDF? | Yes |
|
Can you download the PDF before it is fully signed? | Yes |
|
Can you pull a list of template IDs? | Yes | GET /v3/templates |
Can you pull a list of contract IDs? | Yes | GET /xapi/v3/contracts |
Contract creation
|
|
Contract edited |
|
Contract sent
|
|
Contract viewed
|
|
Contract commented
|
|
Contract approved/rejected
|
|
Contract signed
|
|
Contract fully signed |
|
Retrieving a list of contract IDs πͺ
Step 1 β Get your API key
β
β’ In Juro, go to Settings β Integrations β API & webhooks β API to find your API key
β
βStep 2 β Retrieve all contract IDs
β
β’ Call: GET https://api.juro.com/v3/contracts?skip=0&limit=200
β’ The response returns a total count and a contracts array (each with an id, name, createdDate, updatedDate, teamId, and template)
β’ Page through by incrementing skip by 200 each time (e.g. ?skip=0&limit=200, then ?skip=200&limit=200, etc.) until you've collected all IDs
β’ The maximum limit is 200; if not specified it defaults to 50
β’ Optional filters: teamIds (comma-separated workspace IDs), templateId (filter by template), updatedBefore (Unix timestamp in seconds β useful for date-range filtering)
β
βStep 3 β Fetch smart fields for each contract
β
β’ For each contract ID from Step 2, call: GET https://api.juro.com/v3/contracts/{id}
β’ The response includes a fields array β these are the smart fields, each containing:
β title β field name
β type β field type (e.g. text, date, choice)
β value β the current value
β uid β unique field identifier
β For choice-type fields: a choices array of possible values
β’ The response also includes questions (Q&A fields) and tables (extracted from the document body), which may be useful for data sync
β
βStep 4 (optional) β Set up incremental syncs
β
β’ For the initial run, page through all contracts (Steps 2β3 above)
β’ For subsequent syncs, use the updatedSince parameter to only pull contracts modified since your last sync:
β GET https://api.juro.com/v3/contracts?updatedSince={unix_timestamp_in_seconds}&limit=200
β’ This dramatically reduces the number of API calls needed for each sync
β
βStep 5 (optional) β Add webhooks for real-time updates
β
β’ Register a webhook via POST https://api.juro.com/v3/webhooks to receive notifications when contracts are edited, signed, etc.
β’ The webhook creation request requires a teamId (the workspace to register for), along with title, url, isEnabled, auth, and events
β’ Available event types include: contract.created, contract.signed, contract.edit, contract.deleted, contract.pdf_generated, contract.viewed, contract.commented, contract.comment.deleted, contract.sent_link_to_counterparty, contract.approval_requested, contract.approval_denied, contract.approval_process_finished, contract.approval_request_cancelled
β’ This can supplement the batch sync so your data warehouse stays closer to real-time
β
π‘ API usage is governed by your plan's quota. For the initial backfill (which may involve many calls), it's worth confirming your quota is sufficient β reach out to your Juro contact if you hit rate limits during the first full sync.
Seeing errors π
Any errors will show via the API within your system (we have error descriptions in our API docs here).
Org Admins can also view errors in the Juro API. To do this:
2. You will now see a log of errors with the newest ones highlighted in red. To mark all errors as seen, click Mark all as red. |
|
πββοΈ As always, our Support Team is happy to help you with anything further if needed. Start a chat with us right here by clicking the Intercom button in the bottom-right-hand corner of this page.
Alternatively, you can email us at support@juro.com π





