> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sacra.com/llms.txt
> Use this file to discover all available pages before exploring further.

# List companies

> List companies or query sync pages of recently updated companies.

For sync mode, call `/api/v1/companies/?mode=sync` with `updated_at_gte` and optionally `updated_at_lte` and `sources`. Supported `sources` values are `documents`, `news`, `events`, `datasets`, `metrics`, `filings`, `listings`, and `all`.



## OpenAPI

````yaml GET /api/v1/companies/
openapi: 3.0.3
info:
  title: Sacra API
  version: 1.0.0
  description: >-
    The Sacra API currently supports querying News, Documents, Companies and
    Categories that enable you to use Sacra research within your own
    application.


    ## **Getting started guide**


    To start using the APIs, you need to:


    - Only available to **Platforms** and **Funds** tier members. (See
    [here](https://sacra.com/pricing/))
        
    - You must use a valid API Key to send requests to the API endpoints. You
    can generate your API key in the Api Keys section of your [Organization
    Settings](https://sacra.com/orgs/settings/general/).
        
    - The API returns request responses in JSON format. When an API request
    returns an error, it is sent in the JSON response as an error key.
        

    ## Authentication


    The Sacra API uses Tokens for authentication.


    You can generate a Sacra API Key/Token in the Api Keys section of your
    [Organization Settings](https://sacra.com/orgs/settings/general/).


    You must include an API Key/Token in each request to the Sacra API with the
    **Authorization** request header.


    ### Authentication error response


    If a Token is missing, malformed, or invalid, you will receive an HTTP 401
    Unauthorized response code.


    ### **Need some help?**


    In case you have questions, we will eventually provide tutorials and a FAQ
    page. But for now you can check out the
    [#developers](https://discord.gg/mTswyV8gg3) channel in our community
    [Discord](https://discord.gg/mTswyV8gg3), there’s a good chance our
    community has an answer for you.


    ## Authorization


    | **Key** | **Value** |

    | --- | --- |

    | Authorization | Token {{API_KEY}} |
servers:
  - url: https://sacra.com
    description: Production
security: []
tags:
  - name: Companies
  - name: Categories
  - name: Events
  - name: News
  - name: Documents
  - name: Filings
  - name: Embeds
  - name: Metrics
  - name: Funding (Legacy)
paths:
  /api/v1/companies/:
    get:
      tags:
        - Companies
      summary: List companies
      description: >-
        List companies or query sync pages of recently updated companies.


        For sync mode, call `/api/v1/companies/?mode=sync` with `updated_at_gte`
        and optionally `updated_at_lte` and `sources`. Supported `sources`
        values are `documents`, `news`, `events`, `datasets`, `metrics`,
        `filings`, `listings`, and `all`.
      operationId: companies_list
      parameters:
        - in: query
          name: mode
          schema:
            type: string
            enum:
              - sync
          description: Set to `sync` to use paginated sync mode.
        - in: query
          name: page_after
          schema:
            type: string
          description: >-
            Cursor for the next page. Pass a company ID or `start`. Only for
            `mode=sync`. Cannot be combined with `page_before`.
        - in: query
          name: page_before
          schema:
            type: string
          description: >-
            Cursor for the previous page. Pass a company ID or `end`. Only for
            `mode=sync`. Cannot be combined with `page_after`.
        - in: query
          name: page_size
          schema:
            type: integer
          description: Results per page, 1-100. Default 30. Only applies to `mode=sync`.
        - in: query
          name: sources
          schema:
            type: string
          description: >-
            Source filter for `mode=sync`. Accepts `documents`, `news`,
            `events`, `datasets`, `metrics`, `filings`, `listings`, or `all`.
        - in: query
          name: updated_at_gte
          schema:
            type: string
            format: date-time
          description: >-
            ISO 8601 datetime. Required when `mode=sync`. Inclusive lower bound
            for the updated_at window.
        - in: query
          name: updated_at_lte
          schema:
            type: string
            format: date-time
          description: >-
            ISO 8601 datetime. Optional upper bound for `mode=sync` (defaults to
            now). The window must be 14 days or less.
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CompaniesListResponse'
              examples:
                CompanyList:
                  value:
                    companies:
                      - id: 596
                        domain: rallyon.com
                        name: Rally
                      - id: 416
                        domain: contentful.com
                        name: Contentful
                  summary: List all companies
                  description: Returned when no query parameters are provided.
                CompanySync:
                  value:
                    companies:
                      - id: 370
                        name: Netskope
                        domain: netskope.com
                        updated_at: '2026-03-30T19:04:17.685Z'
                        updated_sources:
                          - news
                          - datasets
                      - id: 649
                        name: Anthropic
                        domain: anthropic.com
                        updated_at: '2026-03-30T19:04:17.252Z'
                        updated_sources:
                          - news
                          - datasets
                    pagination:
                      page_size: 30
                      current_page_items: 30
                      total_items: 665
                      next_link: >-
                        https://sacra.com/api/v1/companies/?mode=sync&updated_at_gte=2026-03-29T00%3A00%3A00Z&updated_at_lte=2026-03-30T19%3A04%3A17.685Z&sources=all&page_after=368
                      prev_link: null
                      after_cursor: Start
                      before_cursor: null
                  summary: Sync companies updated in a time window
                  description: >-
                    Returned when `mode=sync` is provided with an update window.
                    Intended for polling changed companies before fetching
                    downstream data.
          description: >-
            Flat company list or sync-mode paginated list depending on
            parameters.
        '400':
          content:
            text/plain:
              schema:
                type: string
                example: updated_at_gte cannot be greater than updated_at_lte
          description: Invalid parameter format.
        '404':
          content:
            text/plain:
              schema:
                type: string
                example: Company id not found for page_after=123
          description: Cursor target not found.
      security:
        - SacraAPIAuthentication: []
components:
  schemas:
    CompaniesListResponse:
      type: object
      properties:
        pagination:
          $ref: '#/components/schemas/CompanySyncPagination'
        companies:
          type: array
          items:
            $ref: '#/components/schemas/CompanyListItem'
          description: Returned in list mode and sync mode.
      required:
        - companies
    CompanySyncPagination:
      type: object
      properties:
        page_size:
          type: integer
        current_page_items:
          type: integer
        total_items:
          type: integer
        next_link:
          type: string
          format: uri
          nullable: true
        prev_link:
          type: string
          format: uri
          nullable: true
        after_cursor:
          type: string
          nullable: true
        before_cursor:
          type: string
          nullable: true
      required:
        - after_cursor
        - before_cursor
        - current_page_items
        - next_link
        - page_size
        - prev_link
        - total_items
    CompanyListItem:
      type: object
      properties:
        id:
          type: integer
        domain:
          type: string
        name:
          type: string
        updated_at:
          type: string
          format: date-time
          nullable: true
        updated_sources:
          type: array
          items:
            type: string
          description: >-
            Present in `mode=sync` responses. Lists which public source groups
            changed within the requested window.
      required:
        - domain
        - id
        - name
  securitySchemes:
    SacraAPIAuthentication:
      type: apiKey
      in: header
      name: Authorization
      description: |-
        Authenticate using one of two formats:

        - **Organization/user token:** `Token <your-token>`
        - **Stytch JWT:** `Bearer <your-jwt>`

````