Using the Smart Import API

To perform a legacy migration or bulk import of existing contracts, Ironclad provides multiple different paths to ensure your repository is up-to-date and provides an expansive and exhaustive view of all your contract obligations.

Using Smart Import is the best choice when there is little to no metadata associated with your contracts - this simplifies the process of tagging your uploaded contracts by utilizing AI technology to analyze and extract data in them automatically. Each uploaded document is also full-text searchable in the Ironclad Repository through our best-in-class OCR technology.

📘

Smart Import Pricing

This feature is subject to Smart Import pricing; please reach out to the Ironclad support team to learn more.

Ironclad Setup

Authentication

In order to authenticate your API calls, you will also need to create an API key from your Ironclad instance. Tokens can be generated in Ironclad under [Your Name] > Company Settings > API > Access Tokens. Be sure to make note of the API token value.

Record Types

When importing your records, Ironclad will assign them a default Record Type of Imported. This can be later updated within the UI, during the verification process. However, in many scenarios, customers will already know how they want their contracts classified. When importing, we provide the option to define the Record Type of each contract prior to upload. Check out this Help Center Article for guidance on best practices for maintaining your Repository, specifically the “Best Practices for Naming Record Types” section.

Limitations

File size: Max 100mb

Supported File Extensions

  • .pdf
  • .doc
  • .docx
  • .jpeg
  • .jpg
  • .msg
  • .png
  • .ppt
  • .pptx
  • .tif
  • .xls
  • .xlsx
  • .eml
  • .txt

📘

Suggested Document Types

Please note that document previews and AI-suggestions are only available for .pdf and .docx files.

Performing a Smart Import API Upload

Creating the First Import

A group of file uploads through Smart Import is categorized by a Smart Import job. Each job is represented by a View within the Repository, which displays all the uploaded files in one spot.

Example of a View within the Ironclad Repository.

To create a Smart Import job, use the “Create a Smart Import” endpoint. Prepare a request with the following information:

  • URL: https://[YOUR_IRONCLAD_DOMAIN]/public/api/v1/records/smart-import. Replace [YOUR_IRONCLAD_DOMAIN] with the Ironclad domain where you are creating the record (e.g., preview.ironcladapp.com, demo.ironcladapp.com, ironcladapp.com, etc.).
  • HTTP Method: POST
  • Headers: Add authorization header - Bearer [YOUR_IRONCLAD_API_TOKEN]
  • Params:
    • attachment: the file you are trying to upload into the repository
    • [OPTIONAL]recordType: as mentioned previously, this will allow you to pre-define the specific Record Type to be associated with a contract. This will default to “Imported” if not defined.

If successful, both a recordID and an importID will be returned. Save the importID for the following steps. You should now see a new import listed in the repository. Initially, the metadata will be empty as the AI scans and generates the predictions.

View of the Repository after the initial import.

Adding to the Smart Import Job

Now that a smart import job has been created, we can add to this existing job for the remainder (or pre-defined subset) of contracts that need to be uploaded.

Following a similar pattern to the previous step, use the “Add Record to An Existing Smart Import Job”. Prepare a request with the following information:

  • URL: https://[YOUR_IRONCLAD_DOMAIN]/public/api/v1/records/smart-import/[:importID]. Replace [YOUR_IRONCLAD_DOMAIN] with the Ironclad domain where you are creating the record (e.g., preview.ironcladapp.com, demo.ironcladapp.com, ironcladapp.com, etc.).
  • HTTP Method: POST
  • Headers: Add authorization header - Bearer [YOUR_IRONCLAD_API_TOKEN]
  • Params:
    • attachment: the file you are trying to upload into the repository
    • [OPTIONAL]recordType: as mentioned previously, this will allow you to pre-define the specific Record Type to be associated with a contract. This will default to “Imported” if not defined.

View of the Repository after adding imports to the initial import job.

Getting the Prediction Status of a Record or a Job

When going through the upload, we also have an endpoint available to check in on the status of an individual record (using the record ID) or the entire job (using the Import ID).