roic-ai Content API

Company earnings-call and future editorial content resources.

Operations 2

GET /v3.0.0/earnings-calls List earnings calls #
GET /v3.0.0/earnings-calls/{identifier} Retrieve an earnings call #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/roic-ai:roic-ai-content-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

roic-ai-content-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ROIC Content API
  description: The ROIC API reference for v3 (`/v3.0.0`) and legacy v2 (`/v2`). In v3, Bearer authentication is recommended because it keeps credentials out of URLs. For browser testing, you may instead pass your key as the `apikey` query parameter. Use exactly one authentication method per request, never both. v2 takes the key only as the `apikey` query parameter.
  version: 3.0.0
servers:
- url: https://api.roic.ai
tags:
- name: Content
  description: Company earnings-call and future editorial content resources.
paths:
  /v3.0.0/earnings-calls:
    get:
      operationId: listEarningsCalls
      summary: List earnings calls
      description: Returns earnings-call summaries across all companies. Free plans can access each company’s latest two calls; paid-plan history follows the plan’s lookback limit. Filter by company identifier, fiscal period, or a call-date range, then retrieve a full transcript by company identifier and fiscal period.
      tags:
      - Content
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      parameters:
      - name: apikey
        in: query
        required: false
        schema:
          description: Browser-friendly alternative to Bearer authentication. Use either this parameter or the Authorization header, never both.
          type: string
      - name: identifier
        in: query
        required: false
        schema:
          minLength: 1
          maxLength: 128
          description: Restrict results to a single company. Accepts an exchange and symbol separated by a colon (e.g. `NASDAQ:AAPL`), a ticker ID, or a FIGI; the response `symbol` echoes the listing you requested. Omit to list earnings calls across all companies.
          examples:
          - NASDAQ:AAPL
          - tkr_cO46h8pgSu9Qqy
          - BBG000B9XRY4
          type: string
      - name: fiscal_year
        in: query
        required: false
        schema:
          minimum: 1990
          maximum: 2100
          multipleOf: 1
          title: fiscal_year
          description: Return only calls that report on this fiscal year, within the caller’s plan entitlement.
          anyOf:
          - format: numeric
            default: 0
            type: string
          - minimum: 1990
            maximum: 2100
            multipleOf: 1
            title: fiscal_year
            description: Return only calls that report on this fiscal year, within the caller’s plan entitlement.
            type: number
      - name: fiscal_quarter
        in: query
        required: false
        schema:
          minimum: 1
          maximum: 4
          multipleOf: 1
          title: fiscal_quarter
          description: Return only calls that report on this fiscal quarter, from 1 to 4, within the caller’s plan entitlement.
          anyOf:
          - format: numeric
            default: 0
            type: string
          - minimum: 1
            maximum: 4
            multipleOf: 1
            title: fiscal_quarter
            description: Return only calls that report on this fiscal quarter, from 1 to 4, within the caller’s plan entitlement.
            type: number
      - name: date
        in: query
        required: false
        schema:
          pattern: ^\d{4}-\d{2}-\d{2}$
          minLength: 10
          maxLength: 10
          description: Return calls that occurred on this UTC calendar date.
          type: string
      - name: date.gte
        in: query
        required: false
        schema:
          pattern: ^\d{4}-\d{2}-\d{2}$
          minLength: 10
          maxLength: 10
          description: Return calls on or after this UTC calendar date.
          type: string
      - name: date.gt
        in: query
        required: false
        schema:
          pattern: ^\d{4}-\d{2}-\d{2}$
          minLength: 10
          maxLength: 10
          description: Return calls after this UTC calendar date.
          type: string
      - name: date.lte
        in: query
        required: false
        schema:
          pattern: ^\d{4}-\d{2}-\d{2}$
          minLength: 10
          maxLength: 10
          description: Return calls on or before this UTC calendar date.
          type: string
      - name: date.lt
        in: query
        required: false
        schema:
          pattern: ^\d{4}-\d{2}-\d{2}$
          minLength: 10
          maxLength: 10
          description: Return calls before this UTC calendar date.
          type: string
      - name: order
        in: query
        required: false
        schema:
          type: string
          enum:
          - asc
          - desc
      - name: limit
        in: query
        required: false
        schema:
          minimum: 1
          maximum: 100
          multipleOf: 1
          default: 50
          title: limit
          description: Maximum number of resources to return. Defaults to 50.
          anyOf:
          - format: numeric
            default: 0
            type: string
          - minimum: 1
            maximum: 100
            multipleOf: 1
            default: 50
            title: limit
            description: Maximum number of resources to return. Defaults to 50.
            type: number
      - name: page
        in: query
        required: false
        schema:
          maxLength: 4096
          description: Opaque page token from a previous response. Prefer following the returned page URLs directly.
          type: string
      responses:
        '200':
          description: Response for status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.EarningsCallList'
        '400':
          description: Response for status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '401':
          description: Response for status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '402':
          description: Response for status 402
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '404':
          description: Response for status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '429':
          description: Response for status 429
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '500':
          description: Response for status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '503':
          description: Response for status 503
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
      x-fern-sdk-group-name: earningsCalls
      x-fern-sdk-method-name: list
  /v3.0.0/earnings-calls/{identifier}:
    get:
      operationId: retrieveEarningsCall
      summary: Retrieve an earnings call
      description: Returns one complete earnings-call transcript for a company and fiscal period. Free plans can retrieve the company’s latest two calls; paid-plan history follows the plan’s lookback limit. Identify the company by an exchange and symbol separated by a colon (e.g. `NASDAQ:AAPL`), a ticker ID, or a FIGI, and select the call with the `fiscal_year` and `fiscal_quarter` query parameters.
      tags:
      - Content
      security:
      - bearerAuth: []
      - apiKeyAuth: []
      parameters:
      - name: identifier
        in: path
        required: true
        schema:
          minLength: 1
          maxLength: 128
          description: The company whose transcript to retrieve. Accepts an exchange and symbol separated by a colon (e.g. `NASDAQ:AAPL`), a ticker ID, or a FIGI.
          examples:
          - NASDAQ:AAPL
          - tkr_cO46h8pgSu9Qqy
          - BBG000B9XRY4
          type: string
      - name: apikey
        in: query
        required: false
        schema:
          description: Browser-friendly alternative to Bearer authentication. Use either this parameter or the Authorization header, never both.
          type: string
      - name: fiscal_year
        in: query
        required: true
        schema:
          minimum: 1990
          maximum: 2100
          multipleOf: 1
          title: fiscal_year
          description: The fiscal year the call reports on, within the caller’s plan entitlement.
          anyOf:
          - format: numeric
            default: 0
            type: string
          - minimum: 1990
            maximum: 2100
            multipleOf: 1
            title: fiscal_year
            description: The fiscal year the call reports on, within the caller’s plan entitlement.
            type: number
      - name: fiscal_quarter
        in: query
        required: true
        schema:
          minimum: 1
          maximum: 4
          multipleOf: 1
          title: fiscal_quarter
          description: The fiscal quarter the call reports on, from 1 to 4, within the caller’s plan entitlement.
          anyOf:
          - format: numeric
            default: 0
            type: string
          - minimum: 1
            maximum: 4
            multipleOf: 1
            title: fiscal_quarter
            description: The fiscal quarter the call reports on, from 1 to 4, within the caller’s plan entitlement.
            type: number
      - name: format
        in: query
        required: false
        schema:
          type: string
          enum:
          - json
          - text
      responses:
        '200':
          description: Response for status 200
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.EarningsCall'
        '400':
          description: Response for status 400
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '401':
          description: Response for status 401
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '402':
          description: Response for status 402
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '404':
          description: Response for status 404
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '429':
          description: Response for status 429
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '500':
          description: Response for status 500
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
        '503':
          description: Response for status 503
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/v3.Error'
      x-fern-sdk-group-name: earningsCalls
      x-fern-sdk-method-name: retrieve
components:
  schemas:
    v3.EarningsCallList:
      additionalProperties: false
      type: object
      properties:
        data:
          type: array
          items:
            additionalProperties: false
            type: object
            properties:
              id:
                type: string
              object:
                const: v3.content.earnings_call
                type: string
              symbol:
                type: string
              fiscal_year:
                minimum: 1990
                maximum: 2100
                anyOf:
                - format: integer
                  default: 0
                  type: string
                - minimum: 1990
                  maximum: 2100
                  type: integer
              fiscal_quarter:
                minimum: 1
                maximum: 4
                anyOf:
                - format: integer
                  default: 0
                  type: string
                - minimum: 1
                  maximum: 4
                  type: integer
              date:
                anyOf:
                - format: date
                  pattern: ^\d{4}-\d{2}-\d{2}$
                  minLength: 10
                  maxLength: 10
                  type: string
                - type: 'null'
            required:
            - id
            - object
            - symbol
            - fiscal_year
            - fiscal_quarter
            - date
            $id: '#/components/schemas/v3.EarningsCallSummary'
        next_page_url:
          anyOf:
          - type: string
          - type: 'null'
        previous_page_url:
          anyOf:
          - type: string
          - type: 'null'
      required:
      - data
      - next_page_url
      - previous_page_url
      $id: '#/components/schemas/v3.EarningsCallList'
    v3.Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              enum:
              - invalid_request_error
              - authentication_error
              - payment_required_error
              - conflict_error
              - rate_limit_error
              - api_error
            code:
              type: string
            message:
              type: string
            param:
              type: string
            doc_url:
              type: string
            request_id:
              type: string
          required:
          - type
          - code
          - message
          - request_id
      required:
      - error
      $id: '#/components/schemas/v3.Error'
    v3.EarningsCall:
      anyOf:
      - additionalProperties: false
        type: object
        properties:
          id:
            type: string
          object:
            const: v3.content.earnings_call_transcript
            type: string
          symbol:
            type: string
          fiscal_year:
            minimum: 1990
            maximum: 2100
            anyOf:
            - format: integer
              default: 0
              type: string
            - minimum: 1990
              maximum: 2100
              type: integer
          fiscal_quarter:
            minimum: 1
            maximum: 4
            anyOf:
            - format: integer
              default: 0
              type: string
            - minimum: 1
              maximum: 4
              type: integer
          date:
            anyOf:
            - format: date
              pattern: ^\d{4}-\d{2}-\d{2}$
              minLength: 10
              maxLength: 10
              type: string
            - type: 'null'
          transcript:
            type: array
            items:
              additionalProperties: false
              type: object
              properties:
                speaker:
                  anyOf:
                  - type: string
                  - type: 'null'
                text:
                  type: string
              required:
              - speaker
              - text
              $id: '#/components/schemas/v3.EarningsCallTranscriptTurn'
        required:
        - id
        - object
        - symbol
        - fiscal_year
        - fiscal_quarter
        - date
        - transcript
        $id: '#/components/schemas/v3.EarningsCallJson'
      - additionalProperties: false
        type: object
        properties:
          id:
            type: string
          object:
            const: v3.content.earnings_call_transcript
            type: string
          symbol:
            type: string
          fiscal_year:
            minimum: 1990
            maximum: 2100
            anyOf:
            - format: integer
              default: 0
              type: string
            - minimum: 1990
              maximum: 2100
              type: integer
          fiscal_quarter:
            minimum: 1
            maximum: 4
            anyOf:
            - format: integer
              default: 0
              type: string
            - minimum: 1
              maximum: 4
              type: integer
          date:
            anyOf:
            - format: date
              pattern: ^\d{4}-\d{2}-\d{2}$
              minLength: 10
              maxLength: 10
              type: string
            - type: 'null'
          transcript:
            type: string
        required:
        - id
        - object
        - symbol
        - fiscal_year
        - fiscal_quarter
        - date
        - transcript
        $id: '#/components/schemas/v3.EarningsCallText'
      $id: '#/components/schemas/v3.EarningsCall'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: Recommended. Send your ROIC API key as a Bearer token.
    apiKeyAuth:
      type: apiKey
      in: query
      name: apikey
      description: Browser-friendly alternative. Do not combine this query parameter with the Authorization header.