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

# Get usage

> Returns daily UTC counts for solves and recognitions in the requested window. Defaults to 7 days; the allowed range is 1–90 days.

Get daily token solve and recognition usage for your account.


## OpenAPI

````yaml https://ninetile.io/openapi.json GET /usage
openapi: 3.1.0
info:
  title: Ninetile API
  version: 1.0.0
  description: >-
    Native Ninetile JSON API. Solve hCaptcha challenges, retrieve solve status,
    report token outcomes, inspect account usage, and recognize hCaptcha image
    challenges. Successful solves and recognitions are charged to the account's
    prepaid USD balance.
servers:
  - url: https://api.ninetile.io/v1
    description: Primary API
  - url: https://api.radiumstore.org/v1
    description: Alternate API host
security:
  - BearerAuth: []
  - ApiKeyHeader: []
tags:
  - name: Solves
    description: Create, inspect, cancel, and report hCaptcha token solves.
  - name: Feedback
    description: Report verdicts for completed solves.
  - name: Account
    description: Inspect account balance, limits, and daily usage.
  - name: Recognition
    description: Recognize hCaptcha image challenges for clients running their own browser.
  - name: Status
    description: Public service liveness.
paths:
  /usage:
    get:
      tags:
        - Account
      summary: Get daily usage and spend
      description: >-
        Returns daily UTC counts for solves and recognitions in the requested
        window. Defaults to 7 days; the allowed range is 1–90 days.
      operationId: getUsage
      parameters:
        - name: days
          in: query
          schema:
            type: integer
            minimum: 1
            maximum: 90
            default: 7
      responses:
        '200':
          description: Daily usage summary.
          headers:
            X-Request-Id:
              $ref: '#/components/headers/RequestId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Usage'
              example:
                object: usage
                days: 7
                solves:
                  - day: '2025-01-01'
                    solved: 2
                    failed: 1
                    other: 0
                    spent_usd: 0.0015
                recognitions:
                  - day: '2025-01-01'
                    answered: 3
                    spent_usd: 0.0009
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '422':
          $ref: '#/components/responses/ValidationError'
        '500':
          $ref: '#/components/responses/InternalError'
components:
  headers:
    RequestId:
      description: Request identifier for support inquiries.
      schema:
        type: string
        format: uuid
    RetryAfter:
      description: >-
        Seconds to wait before retrying; present when the error asks the client
        to wait.
      schema:
        type: integer
        minimum: 1
  schemas:
    Usage:
      type: object
      required:
        - object
        - days
        - solves
        - recognitions
      properties:
        object:
          const: usage
        days:
          type: integer
        solves:
          type: array
          items:
            $ref: '#/components/schemas/DailySolveUsage'
        recognitions:
          type: array
          items:
            $ref: '#/components/schemas/DailyRecognitionUsage'
    DailySolveUsage:
      type: object
      required:
        - day
        - solved
        - failed
        - other
        - spent_usd
      properties:
        day:
          type: string
          format: date
        solved:
          type: integer
        failed:
          type: integer
        other:
          type: integer
          description: Cancelled or expired solves.
        spent_usd:
          type: number
    DailyRecognitionUsage:
      type: object
      required:
        - day
        - answered
        - spent_usd
      properties:
        day:
          type: string
          format: date
        answered:
          type: integer
        spent_usd:
          type: number
    ErrorResponse:
      type: object
      required:
        - error
      properties:
        error:
          type: object
          required:
            - code
            - message
            - param
            - request_id
          properties:
            code:
              type: string
              enum:
                - invalid_request
                - unauthorized
                - insufficient_credits
                - key_credit_limit_exceeded
                - account_locked
                - forbidden
                - not_eligible
                - not_found
                - conflict
                - payload_too_large
                - unsupported_media_type
                - expired_window
                - recognition_failed
                - validation_error
                - concurrency_limit_exceeded
                - proxy_unavailable
                - rate_capped
                - rate_limited
                - sitekey_rate_limited
                - internal_error
                - maintenance
                - capacity_exhausted
                - proxy_pool_depleted
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            request_id:
              type: string
              format: uuid
  responses:
    Unauthorized:
      description: API key missing, malformed, unknown, or revoked (`unauthorized`).
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
        Retry-After:
          $ref: '#/components/headers/RetryAfter'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Forbidden:
      description: >-
        Account locked or key not permitted to access this endpoint
        (`account_locked`, `forbidden`).
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    ValidationError:
      description: >-
        Field validation error or expired feedback window (`validation_error`,
        `expired_window`).
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalError:
      description: Unexpected server error (`internal_error`).
      headers:
        X-Request-Id:
          $ref: '#/components/headers/RequestId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      description: >-
        Ninetile API key, sent as `Authorization: Bearer <key>`. Keys are issued
        in the dashboard.
    ApiKeyHeader:
      type: apiKey
      in: header
      name: x-api-key
      description: Alternative to the Authorization Bearer header.

````

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