Ironclad Search API

Documentation on Ironclad Search.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

ironclad-search-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Ironclad OAuth 2.0 Authorization Search API
  description: Documentation for Ironclad's OAuth 2.0 Implementation. More details on the [OAuth 2.0 specification](https://datatracker.ietf.org/doc/html/rfc6749).
  version: '1'
  contact:
    name: Ironclad Support
    email: support@ironcladapp.com
servers:
- url: https://na1.ironcladapp.com/oauth
  description: Production server
- url: https://eu1.ironcladapp.com/oauth
  description: EU Production server
- url: https://demo.ironcladapp.com/oauth
  description: Demo server
tags:
- name: Search
  description: Documentation on Ironclad Search.
paths:
  /search/conversational:
    post:
      summary: Run Conversational Search
      description: 'Ask a natural language question and get an AI-generated response grounded in your contracts and records.


        **OAuth Scopes required:** `public.search.conversational`, `public.records.readRecords`, `public.workflows.readWorkflows`'
      operationId: run-conversational-search
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - query
              properties:
                query:
                  type: string
                  description: The natural language question to ask
                  example: Which contracts are expiring in the next 30 days?
                modelTier:
                  type: string
                  enum:
                  - ultrafast
                  - fast
                  - standard
                  - powerful
                  description: Controls the model used. Defaults to 'fast'. Use 'ultrafast' for the lightest/quickest model, 'standard' or 'powerful' for more capable models on complex queries.
                  example: fast
                userTimezone:
                  type: string
                  description: The user's IANA timezone (e.g. "America/New_York", "Asia/Kolkata"). Used to correctly interpret relative time expressions like "last month" or "this week". If not provided, falls back to the timezone in the user's company profile, then UTC.
                  example: America/New_York
      security:
      - sec0: []
        OAuth2:
        - public.search.conversational
        - public.records.readRecords
        - public.workflows.readWorkflows
      responses:
        '200':
          description: '200'
          content:
            application/json:
              schema:
                type: object
                required:
                - result
                - records
                properties:
                  result:
                    type: string
                    description: The agent's prose response
                  records:
                    type: object
                    description: Map of record ID to record details for all records surfaced by the agent
                    additionalProperties:
                      $ref: '#/components/schemas/ConversationalSearchRecord'
        '400':
          $ref: '#/components/responses/BadRequestError400'
        '401':
          $ref: '#/components/responses/UnauthorizedError401'
        '403':
          $ref: '#/components/responses/ForbiddenError403'
      tags:
      - Search
components:
  responses:
    ForbiddenError403:
      description: '403'
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                example: FORBIDDEN
              message:
                type: string
                example: access forbidden
    BadRequestError400:
      description: '400'
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                example: MISSING_PARAM
              message:
                type: string
                example: reason why something has gone wrong
              param:
                type: string
                example: parameter identifier
    UnauthorizedError401:
      description: '401'
      content:
        application/json:
          schema:
            type: object
            properties:
              code:
                type: string
                enum:
                - UNAUTHORIZED
                example: UNAUTHORIZED
              message:
                type: string
                example: invalid authentication token
          examples:
            invalidToken:
              value:
                code: UNAUTHORIZED
                message: invalid authentication token
            revokedToken:
              value:
                code: UNAUTHORIZED
                message: token has been revoked
            expiredToken:
              value:
                code: UNAUTHORIZED
                message: token has expired
  schemas:
    ConversationalSearchRecord:
      title: Conversational Search Record
      type: object
      required:
      - url
      properties:
        url:
          type: string
          nullable: true
          description: Dashboard URL for this record, or null if unavailable
x-readme:
  headers: []
  explorer-enabled: true
  proxy-enabled: true
  samples-languages:
  - curl
  - node
  - ruby
  - javascript
  - python