Exa

Exa Research API

The Research API from Exa — 2 operation(s) for research.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

exa-ai-research-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Exa Agent Research API
  version: 2.0.0
  description: Exa Agent API - subset of the Exa Public API.
servers:
- url: https://api.exa.ai
security:
- apiKey: []
- bearer: []
tags:
- name: Research
paths:
  /research/v1:
    get:
      description: Get a paginated list of research requests
      operationId: ResearchController_listResearch
      parameters:
      - name: cursor
        required: false
        in: query
        description: The cursor to paginate through the results
        schema:
          minLength: 1
          type: string
      - name: limit
        required: false
        in: query
        description: Number of results per page (1-50)
        schema:
          minimum: 1
          maximum: 50
          default: 10
          type: number
      responses:
        '200':
          description: List of research requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListResearchResponseDto'
      summary: List research requests
      tags:
      - Research
      x-codeSamples:
      - lang: bash
        label: List research tasks
        source: "curl -X GET 'https://api.exa.ai/research/v1?limit=10' \\\n  -H 'x-api-key: YOUR-EXA-API-KEY'"
      - lang: python
        label: List research tasks
        source: '# pip install exa-py

          from exa_py import Exa

          exa = Exa(api_key=''YOUR_EXA_API_KEY'')


          tasks = exa.research.list_tasks(limit=10)

          print(tasks)'
      - lang: javascript
        label: List research tasks
        source: '// npm install exa-js

          import Exa from ''exa-js'';

          const exa = new Exa(''YOUR_EXA_API_KEY'');


          const tasks = await exa.research.listTasks({ limit: 10 });

          console.log(tasks);'
    post:
      operationId: ResearchController_createResearch
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ResearchCreateRequestDtoClass'
      responses:
        '201':
          description: Research request created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchDtoClass'
      summary: Create a new research request
      tags:
      - Research
      x-codeSamples:
      - lang: bash
        label: Create research task
        source: "curl -X POST 'https://api.exa.ai/research/v1' \\\n  -H 'x-api-key: YOUR-EXA-API-KEY' \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"instructions\": \"Summarize the latest developments in AI safety research\",\n    \"model\": \"exa-research\"\n  }'"
      - lang: python
        label: Create research task
        source: "# pip install exa-py\nfrom exa_py import Exa\nexa = Exa(api_key='YOUR_EXA_API_KEY')\n\ntask = exa.research.create_task(\n    instructions=\"Summarize the latest developments in AI safety research\",\n    model=\"exa-research\"\n)\n\nprint(task)"
      - lang: javascript
        label: Create research task
        source: "// npm install exa-js\nimport Exa from 'exa-js';\nconst exa = new Exa('YOUR_EXA_API_KEY');\n\nconst task = await exa.research.createTask({\n  instructions: \"Summarize the latest developments in AI safety research\",\n  model: \"exa-research\"\n});\n\nconsole.log(task);"
  /research/v1/{researchId}:
    get:
      description: Retrieve research by ID. Add ?stream=true for real-time SSE updates.
      operationId: ResearchController_getResearch
      parameters:
      - name: researchId
        required: true
        in: path
        description: The unique identifier of the research request to retrieve
        schema:
          type: string
      - name: stream
        required: false
        in: query
        description: Set to "true" to receive real-time updates via Server-Sent Events (SSE)
        schema:
          type: string
      - name: events
        required: false
        in: query
        description: Set to "true" to include the detailed event log of all operations performed
        schema:
          type: string
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResearchDtoClass'
      summary: Get a research request by id
      tags:
      - Research
      x-codeSamples:
      - lang: bash
        label: Get research task
        source: "curl -X GET 'https://api.exa.ai/research/v1/01jszdfs0052sg4jc552sg4jc5' \\\n  -H 'x-api-key: YOUR-EXA-API-KEY'"
      - lang: bash
        label: Get research task with streaming
        source: "curl -X GET 'https://api.exa.ai/research/v1/01jszdfs0052sg4jc552sg4jc5?stream=true' \\\n  -H 'x-api-key: YOUR-EXA-API-KEY'"
      - lang: python
        label: Get research task
        source: '# pip install exa-py

          from exa_py import Exa

          exa = Exa(api_key=''YOUR_EXA_API_KEY'')


          task = exa.research.get_task(''01jszdfs0052sg4jc552sg4jc5'')

          print(task)'
      - lang: javascript
        label: Get research task
        source: '// npm install exa-js

          import Exa from ''exa-js'';

          const exa = new Exa(''YOUR_EXA_API_KEY'');


          const task = await exa.research.getTask(''01jszdfs0052sg4jc552sg4jc5'');

          console.log(task);'
components:
  schemas:
    ResearchDtoClass:
      discriminator:
        propertyName: status
      oneOf:
      - type:
        - object
        properties:
          researchId:
            type:
            - string
            description: Unique identifier for tracking and retrieving this research request
          createdAt:
            type:
            - number
            description: When the research was created (Unix timestamp in milliseconds)
          model:
            default: exa-research
            type:
            - string
            enum:
            - exa-research-fast
            - exa-research
            - exa-research-pro
            description: The model used for this research request
          instructions:
            type:
            - string
            description: The original research instructions provided
          outputSchema:
            type:
            - object
            additionalProperties: {}
            description: The JSON Schema used to validate the output, if provided
          status:
            type:
            - string
            enum:
            - pending
        required:
        - researchId
        - createdAt
        - instructions
        - status
        title: Pending
      - type:
        - object
        properties:
          researchId:
            type:
            - string
            description: Unique identifier for tracking and retrieving this research request
          createdAt:
            type:
            - number
            description: When the research was created (Unix timestamp in milliseconds)
          model:
            default: exa-research
            type:
            - string
            enum:
            - exa-research-fast
            - exa-research
            - exa-research-pro
            description: The model used for this research request
          instructions:
            type:
            - string
            description: The original research instructions provided
          outputSchema:
            type:
            - object
            additionalProperties: {}
            description: The JSON Schema used to validate the output, if provided
          status:
            type:
            - string
            enum:
            - running
          events:
            type:
            - array
            items:
              $ref: '#/components/schemas/ResearchEventDtoClass'
            description: Real-time log of operations as research progresses. Poll this endpoint or use ?stream=true for live updates.
        required:
        - researchId
        - createdAt
        - instructions
        - status
        title: Running
      - type:
        - object
        properties:
          researchId:
            type:
            - string
            description: Unique identifier for tracking and retrieving this research request
          createdAt:
            type:
            - number
            description: When the research was created (Unix timestamp in milliseconds)
          model:
            default: exa-research
            type:
            - string
            enum:
            - exa-research-fast
            - exa-research
            - exa-research-pro
            description: The model used for this research request
          instructions:
            type:
            - string
            description: The original research instructions provided
          outputSchema:
            type:
            - object
            additionalProperties: {}
            description: The JSON Schema used to validate the output, if provided
          status:
            type:
            - string
            enum:
            - completed
          events:
            type:
            - array
            items:
              $ref: '#/components/schemas/ResearchEventDtoClass'
            description: Detailed log of all operations performed during research. Use ?events=true to include this field for debugging or monitoring progress.
          output:
            type:
            - object
            properties:
              content:
                type:
                - string
                description: The complete research output as text. If outputSchema was provided, this is a JSON string.
              parsed:
                type:
                - object
                additionalProperties: {}
                description: Structured JSON object matching your outputSchema. Only present when outputSchema was provided and the output successfully validated.
            required:
            - content
            description: The final research results, containing both raw text and parsed JSON if outputSchema was provided
          citations:
            type:
            - array
            items:
              type:
              - object
              properties:
                id:
                  type:
                  - string
                url:
                  type:
                  - string
                publishedDate:
                  type:
                  - string
                author:
                  type:
                  - string
                  - 'null'
                score:
                  type:
                  - number
                text:
                  type:
                  - string
                highlights:
                  type:
                  - array
                  items:
                    type:
                    - string
                highlightScores:
                  type:
                  - array
                  items:
                    type:
                    - number
                summary:
                  type:
                  - string
                links:
                  type:
                  - array
                  items:
                    type:
                    - object
                    properties:
                      url:
                        type:
                        - string
                      text:
                        type:
                        - string
                    required:
                    - url
                    - text
                subpages:
                  type:
                  - array
                  items:
                    type:
                    - object
                    properties:
                      id:
                        type:
                        - string
                      title:
                        type:
                        - string
                      url:
                        type:
                        - string
                      publishedDate:
                        type:
                        - string
                      author:
                        type:
                        - string
                        - 'null'
                      text:
                        type:
                        - string
                      favicon:
                        type:
                        - string
                    required:
                    - id
                    - title
                    - url
                image:
                  type:
                  - string
                  - 'null'
                  description: URL of the image associated with the result
                favicon:
                  type:
                  - string
                  - 'null'
                  description: URL of the favicon associated with the result
                description:
                  type:
                  - string
                subtitle:
                  type:
                  - string
                snippet:
                  type:
                  - string
                profile:
                  discriminator:
                    propertyName: type
                  oneOf:
                  - type:
                    - object
                    properties:
                      type:
                        type:
                        - string
                        enum:
                        - linkedin_company
                      content:
                        type:
                        - object
                        properties:
                          name:
                            type:
                            - string
                          url:
                            type:
                            - string
                          slogan:
                            type:
                            - string
                          about_us:
                            type:
                            - string
                          founded_year:
                            type:
                            - number
                          funding:
                            type:
                            - object
                            properties:
                              number_of_rounds:
                                type:
                                - string
                              price:
                                type:
                                - string
                              last_round_date:
                                type:
                                - string
                              last_round_stage:
                                type:
                                - string
                          website:
                            type:
                            - string
                          categories:
                            type:
                            - array
                            items:
                              type:
                              - string
                          industry:
                            type:
                            - string
                          image_url:
                            type:
                            - string
                          cover_image_url:
                            type:
                            - string
                          employees_num:
                            type:
                            - number
                          followers_num:
                            type:
                            - number
                          company_size:
                            type:
                            - string
                          company_type:
                            type:
                            - string
                          affiliated_companies:
                            type:
                            - array
                            - 'null'
                            items:
                              type:
                              - object
                              properties:
                                company_name:
                                  type:
                                  - string
                                industry:
                                  type:
                                  - string
                                social_url:
                                  type:
                                  - string
                                image_url:
                                  type:
                                  - string
                          headquarters:
                            type:
                            - string
                          country_code:
                            type:
                            - string
                          locations:
                            type:
                            - array
                            items:
                              type:
                              - object
                              properties:
                                address:
                                  type:
                                  - string
                                  - 'null'
                                address_2:
                                  type:
                                  - string
                                  - 'null'
                                primary:
                                  type:
                                  - boolean
                              required:
                              - primary
                          specialties:
                            type:
                            - array
                            items:
                              type:
                              - string
                          crunchbase_url:
                            type:
                            - string
                          stock_symbol:
                            type:
                            - string
                          meta_data:
                            type:
                            - object
                            properties:
                              last_changed:
                                type:
                                - string
                              schema_version:
                                type:
                                - string
                              profile_id:
                                type:
                                - string
                            required:
                            - schema_version
                            - profile_id
                        required:
                        - name
                        - url
                        - meta_data
                    required:
                    - type
                    - content
                  - type:
                    - object
                    properties:
                      type:
                        type:
                        - string
                        enum:
                        - company
                      content:
                        oneOf:
                        - type:
                          - object
                          properties:
                            url:
                              type:
                              - string
                            linkedin_url:
                              type:
                              - string
                            version:
                              default: 1-complete
                              type:
                              - string
                              enum:
                              - 1-complete
                            identity:
                              type:
                              - object
                              properties:
                                name:
                                  type:
                                  - string
                                legal_name:
                                  type:
                                  - string
                                  - 'null'
                                aliases:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                ids:
                                  type:
                                  - object
                                  - 'null'
                                  properties:
                                    coresignal:
                                      type:
                                      - string
                                      - 'null'
                                    linkedin:
                                      type:
                                      - string
                                      - 'null'
                                    crunchbase:
                                      type:
                                      - string
                                      - 'null'
                                    pitchbook:
                                      type:
                                      - string
                                      - 'null'
                                tickers:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - object
                                    properties:
                                      symbol:
                                        type:
                                        - string
                                      exchange:
                                        type:
                                        - string
                                        - 'null'
                                    required:
                                    - symbol
                              required:
                              - name
                            classification:
                              type:
                              - object
                              - 'null'
                              properties:
                                industry:
                                  type:
                                  - string
                                  - 'null'
                                industries:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                categories:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                keywords:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                sic_codes:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                naics_codes:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                is_b2b:
                                  type:
                                  - boolean
                                  - 'null'
                                is_public:
                                  type:
                                  - boolean
                                  - 'null'
                                company_type:
                                  type:
                                  - string
                                  - 'null'
                            locations:
                              type:
                              - object
                              - 'null'
                              properties:
                                headquarters:
                                  type:
                                  - object
                                  - 'null'
                                  properties:
                                    address:
                                      type:
                                      - string
                                      - 'null'
                                    city:
                                      type:
                                      - string
                                      - 'null'
                                    state:
                                      type:
                                      - string
                                      - 'null'
                                    country:
                                      type:
                                      - string
                                      - 'null'
                                    country_code:
                                      type:
                                      - string
                                      - 'null'
                                    postal_code:
                                      type:
                                      - string
                                      - 'null'
                                    is_hq:
                                      type:
                                      - boolean
                                      - 'null'
                                offices:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - object
                                    properties:
                                      address:
                                        type:
                                        - string
                                        - 'null'
                                      city:
                                        type:
                                        - string
                                        - 'null'
                                      state:
                                        type:
                                        - string
                                        - 'null'
                                      country:
                                        type:
                                        - string
                                        - 'null'
                                      country_code:
                                        type:
                                        - string
                                        - 'null'
                                      postal_code:
                                        type:
                                        - string
                                        - 'null'
                                      is_hq:
                                        type:
                                        - boolean
                                        - 'null'
                                hq_city:
                                  type:
                                  - string
                                  - 'null'
                                hq_country:
                                  type:
                                  - string
                                  - 'null'
                                regions:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                            profiles:
                              type:
                              - object
                              - 'null'
                              properties:
                                website:
                                  type:
                                  - string
                                  - 'null'
                                website_aliases:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - string
                                social:
                                  type:
                                  - array
                                  - 'null'
                                  items:
                                    type:
                                    - object
                                    properties:
                                      platform:
                                        type:
                                        - string
                                      url:
                                        type:
                                        - string
                                        - 'null'
                                      followers:
                                        type:
                                        - number
                                        - 'null'
                                    required:
                                    - platform
                                crunchbase_url:
                                  type:
                                  - string
                                  - 'null'
                                bloomberg_url:
                                  type:
                                  - string
                                  - 'null'
                                pitchbook_url:
                                  type:
                                  - string
                                  - 'null'
                                glassdoor_url:
                                  type:
                                  - string
                                  - 'null'
                                indeed_url:
                                  type:
                                  - string
                                  - 'null'
                                logo_url:
                                  type:
                                  - string
                                  - 'null'
                                logo_base64:
                                  type:
                                  - string
                                  - 'null'
                                contact:
                                  type:
                                  - object
                                  - 'null'
                                  properties:
                                    emails:
                                      type:
                                      - array
                                      - 'null'
                                      items:
                                        type:
                                        - string
                                    phone_numbers:
                                      type:
                                      - array
                                      - 'null'
                                      items:
                                        type:
                                        - string
                                updates:
                                  type:
                                  - array
                                  - 'null'
                                  items:
     

# --- truncated at 32 KB (211 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/exa-ai/refs/heads/main/openapi/exa-ai-research-api-openapi.yml