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

# List research usage

> Workspace runs, newest first. Pass next_cursor back as cursor to read the following page. Each item includes credits_reserved, not the final charge.



## OpenAPI

````yaml https://seneca-research.fly.dev/v1/openapi.json get /v1/usage
openapi: 3.1.0
info:
  title: Seneca Research API
  version: 0.1.0
  description: >-
    Create a research run, poll it, then read the customer report. Original
    model text is a separate read: list /v1/research/{run_id}/responses, read
    one model at /v1/research/{run_id}/responses/text, or download the panel as
    JSONL from /v1/research/{run_id}/responses/export. Send Authorization:
    Bearer seneca_sk_… Narrative quickstart:
    https://seneca.professionalaiagents.com/api.md
servers:
  - url: https://seneca-research.fly.dev
    description: Production
security: []
paths:
  /v1/usage:
    get:
      tags:
        - public-api
      summary: List research usage
      description: >-
        Workspace runs, newest first. Pass next_cursor back as cursor to read
        the following page. Each item includes credits_reserved, not the final
        charge.
      operationId: get_usage_v1_usage_get
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            default: 20
            title: Limit
        - name: cursor
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Cursor
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicUsageOut'
        '400':
          description: >-
            invalid_request when limit is outside 1–100. invalid_cursor when
            cursor cannot be read.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '401':
          description: >-
            authentication_required when the bearer token is missing or not a
            bearer token. invalid_api_key when the key is unknown, revoked, or
            expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '429':
          description: >-
            rate_limit_exceeded. Reads are limited to 120 requests per minute
            per key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
        '500':
          description: internal_error. The body does not include a traceback or a secret.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicErrorResponse'
      security:
        - SenecaApiKey: []
components:
  schemas:
    PublicUsageOut:
      properties:
        object:
          type: string
          const: list
          title: Object
          default: list
        data:
          items:
            $ref: '#/components/schemas/PublicUsageItemOut'
          type: array
          title: Data
        next_cursor:
          anyOf:
            - type: string
            - type: 'null'
          title: Next Cursor
      additionalProperties: false
      type: object
      title: PublicUsageOut
    PublicErrorResponse:
      properties:
        error:
          $ref: '#/components/schemas/PublicErrorObject'
      additionalProperties: false
      type: object
      required:
        - error
      title: PublicErrorResponse
      description: Error envelope returned by every /v1 failure. Documentation model only.
    PublicUsageItemOut:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        status:
          type: string
          title: Status
        source:
          anyOf:
            - type: string
            - type: 'null'
          title: Source
        panel:
          anyOf:
            - type: string
            - type: 'null'
          title: Panel
        credits_reserved:
          type: integer
          title: Credits Reserved
          description: >-
            Credits reserved at acceptance. This list does not include
            credits_charged or a refund. Read the run for the final charge.
        created_at:
          type: string
          format: date-time
          title: Created At
        completed_at:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Completed At
        prompt_preview:
          type: string
          title: Prompt Preview
      additionalProperties: false
      type: object
      required:
        - id
        - status
        - credits_reserved
        - created_at
        - prompt_preview
      title: PublicUsageItemOut
    PublicErrorObject:
      properties:
        code:
          type: string
          title: Code
        message:
          type: string
          title: Message
        details:
          additionalProperties: true
          type: object
          title: Details
      additionalProperties: false
      type: object
      required:
        - code
        - message
      title: PublicErrorObject
  securitySchemes:
    SenecaApiKey:
      type: http
      description: >-
        Workspace API key created while signed in on the Developers page. Send
        Authorization: Bearer seneca_sk_… A Clerk session token is not accepted.
      scheme: bearer

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.