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

# Get formula processing times

> Current TTB formula application processing times by formula type and commodity.
Sourced from the TTB's public processing times page.

This endpoint is free — it does not consume quota.




## OpenAPI

````yaml /openapi.yaml get /processing-times/formula
openapi: 3.0.3
info:
  title: COLA Cloud API
  description: >
    Access the United States TTB COLA Registry through COLA Cloud's self-service
    API.


    ## Overview


    COLA Cloud provides programmatic access to the 2005-forward application
    database for

    Certificate of Label Approval (COLA) data from the Alcohol and Tobacco Tax
    and Trade Bureau

    (TTB). Bulk warehouse delivery remains available separately through a data
    license. The

    self-service API includes:


    - 2005-forward approved alcohol labels

    - Product details, brand information, and approval dates

    - Label images with barcodes and QR codes

    - Permittee (permit holder) information

    - LLM-enriched data including tasting notes and category classification


    ## Authentication


    Self-serve REST, SDK, and CLI requests use a COLA Cloud API key. Include
    your

    key in the `X-API-Key` header:


    ```

    curl -H "X-API-Key: your_api_key_here" https://app.colacloud.us/api/v1/colas

    ```


    MCP clients may pass the same API key as `Authorization: Bearer <key>`.

    Linked assistant OAuth connections may also call the API with a
    WorkOS-issued

    Bearer token. OAuth access is scoped per connected app and is in private

    rollout until account linking is self-serve.


    ## Quotas


    Usage is metered by **detail views** (single-record lookups) and **list
    records** (items returned by list/search endpoints), not raw request count.
    Quotas are per-user across all channels (web, API, SDKs, CLI, MCP).


    | Tier | Detail Views/mo | List Records/mo | Burst/min |

    |------|----------------|-----------------|-----------|

    | Free | 200 | 10,000 | 10 |

    | Starter | 2,000 | 100,000 | 60 |

    | Pro | 10,000 | 1,000,000 | 120 |


    Quota headers are included in all responses:


    - `X-Detail-Views-Limit`: Your monthly detail view limit

    - `X-Detail-Views-Remaining`: Detail views remaining this month

    - `X-List-Records-Limit`: Your monthly list record limit

    - `X-List-Records-Remaining`: List records remaining this month

    - `X-Quota-Reset`: Unix timestamp when quotas reset


    ## Pagination


    List endpoints support pagination via `page` and `per_page` parameters:


    - `page`: Page number (default: 1)

    - `per_page`: Results per page (default: 20, max: 100)


    Responses include pagination metadata:


    ```json

    {
      "data": [...],
      "pagination": {
        "mode": "offset",
        "page": 1,
        "per_page": 20,
        "total": null,
        "pages": null,
        "has_more": true
      }
    }

    ```


    For deep result sets, use **cursor-based pagination** with the `cursor`
    parameter

    (returned as `next_cursor` in the response). Cursor pagination performs
    consistently

    regardless of depth.
  version: 1.0.0
  contact:
    name: COLA Cloud Support
    email: support@colacloud.us
    url: https://colacloud.us
  license:
    name: Proprietary
    url: https://colacloud.us/terms
servers:
  - url: https://app.colacloud.us/api/v1
    description: Production server
security:
  - ApiKeyHeader: []
  - BearerApiKey: []
tags:
  - name: COLAs
    description: Certificate of Label Approval operations
  - name: Permittees
    description: Permit holder operations
  - name: Barcodes
    description: Barcode lookup operations
  - name: Usage
    description: API usage and rate limit information
  - name: Saved Searches
    description: Durable saved-search and scheduled alert operations
  - name: Reference Data
    description: >
      Free reference datasets from the TTB. These endpoints require an API key
      but do not count against your monthly quota.
paths:
  /processing-times/formula:
    get:
      tags:
        - Reference Data
      summary: Get formula processing times
      description: >
        Current TTB formula application processing times by formula type and
        commodity.

        Sourced from the TTB's public processing times page.


        This endpoint is free — it does not consume quota.
      operationId: getFormulaProcessingTimes
      parameters:
        - name: formula_type
          in: query
          description: Filter by formula type
          schema:
            type: string
        - name: commodity
          in: query
          description: Filter by commodity (case-insensitive)
          schema:
            type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      $ref: '#/components/schemas/FormulaProcessingTime'
                  meta:
                    $ref: '#/components/schemas/MetaTotal'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '429':
          $ref: '#/components/responses/RateLimitExceeded'
components:
  schemas:
    FormulaProcessingTime:
      type: object
      description: Formula application processing time by formula type and commodity
      properties:
        commodity:
          type: string
          nullable: true
          description: Commodity name, if applicable
        formula_type:
          type: string
          description: Type of formula application
        snapshot_date:
          type: string
          format: date
          description: Date the processing time was captured
        turnaround_days_median:
          type: integer
          nullable: true
          description: Median turnaround time in days
        queue_frontier_date:
          type: string
          format: date
          nullable: true
          description: Date of the oldest application currently in the queue
        queue_depth_days:
          type: integer
          nullable: true
          description: Number of days of backlog in the queue
    MetaTotal:
      type: object
      description: Response metadata with total count
      properties:
        total:
          type: integer
          description: Total number of results
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              description: Machine-readable error code
            message:
              type: string
              description: Human-readable error message
            details:
              type: object
              additionalProperties: true
              description: Additional error metadata
          required:
            - code
            - message
            - details
      required:
        - error
  responses:
    Unauthorized:
      description: Missing or invalid API key or Bearer token
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            missing_key:
              summary: Missing API key or Bearer token
              value:
                error:
                  code: unauthorized
                  message: >-
                    API key required. Provide via X-API-Key header or
                    Authorization: Bearer.
                  details: {}
            invalid_key:
              summary: Invalid API key
              value:
                error:
                  code: unauthorized
                  message: Invalid API key.
                  details: {}
            revoked_key:
              summary: Revoked API key
              value:
                error:
                  code: unauthorized
                  message: This API key has been revoked.
                  details: {}
            oauth_connection_required:
              summary: OAuth connection is not linked
              value:
                error:
                  code: oauth_connection_required
                  message: No COLA Cloud account is linked to this OAuth connection.
                  details: {}
    RateLimitExceeded:
      description: Quota or burst limit exceeded
      headers:
        X-Detail-Views-Limit:
          $ref: '#/components/headers/X-Detail-Views-Limit'
        X-Detail-Views-Remaining:
          $ref: '#/components/headers/X-Detail-Views-Remaining'
        X-List-Records-Limit:
          $ref: '#/components/headers/X-List-Records-Limit'
        X-List-Records-Remaining:
          $ref: '#/components/headers/X-List-Records-Remaining'
        X-Quota-Reset:
          $ref: '#/components/headers/X-Quota-Reset'
        Retry-After:
          description: Seconds to wait before retrying (for per-minute burst limits)
          schema:
            type: integer
          example: 60
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            detail_view_quota:
              summary: Detail view quota exceeded
              value:
                error:
                  code: quota_exceeded
                  message: >-
                    Detail view quota exceeded. Upgrade your plan for more
                    detail views.
                  details:
                    limit: 200
                    used: 200
                    upgrade_url: https://app.colacloud.us/dashboard/subscriptions
            list_record_quota:
              summary: List record quota exceeded
              value:
                error:
                  code: quota_exceeded
                  message: >-
                    List record quota exceeded. Upgrade your plan for more list
                    records.
                  details:
                    limit: 500
                    used: 500
                    upgrade_url: https://app.colacloud.us/dashboard/subscriptions
            minute_limit:
              summary: Per-minute burst limit exceeded
              value:
                error:
                  code: rate_limit_exceeded
                  message: Too many requests. Please wait before making more requests.
                  details:
                    limit_per_minute: 10
                    retry_after: 60
  headers:
    X-Detail-Views-Limit:
      description: Your monthly detail view limit
      schema:
        type: integer
      example: 200
    X-Detail-Views-Remaining:
      description: Detail views remaining this month
      schema:
        type: integer
      example: 158
    X-List-Records-Limit:
      description: Your monthly list record limit
      schema:
        type: integer
      example: 500
    X-List-Records-Remaining:
      description: List records remaining this month
      schema:
        type: integer
      example: 350
    X-Quota-Reset:
      description: Unix timestamp when quotas reset (first of next month)
      schema:
        type: integer
      example: 1706745600
  securitySchemes:
    ApiKeyHeader:
      type: apiKey
      in: header
      name: X-API-Key
      description: API key passed in the X-API-Key header
    BearerApiKey:
      type: http
      scheme: bearer
      description: |
        API key passed as `Authorization: Bearer <key>`, or a linked WorkOS
        OAuth access token passed as `Authorization: Bearer <token>`. API keys
        are equivalent to the X-API-Key scheme. OAuth tokens must include the
        scope required by the endpoint.

````