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

# Get Credit Pricing

> How many credits each API action costs. No currency amounts; see the pricing page for plans and packs.

Returns the published credit prices as a complete list of `credit_price` items. Any valid API key can call this endpoint, and the call consumes no credits.

Each item contains `id`, `name`, `group`, `credits`, `unit`, `min_plan`, `status`, and `endpoints` (each with `method` and `path`). Units are `per_request`, `per_page`, `per_record`, `per_item`, `per_screen`, `per_mark_per_day`, or `per_watch_per_day`. Paths use OpenAPI parameter syntax, such as `/v1/trademarks/{id}`; wildcard patterns expand to concrete operations. Status is `available`, `beta`, `planned`, or `internal`. Authorized keys see internal actions with their `internal` status preserved. Each endpoint includes `required_scope` when its effective scope differs from the default `trademarks:read` (for example, `screening:read`, `portfolios:manage`, or `events:read`). Endpoints that accept alternative scopes publish `required_scope: null` and `required_scope_any_of`, listing the accepted alternatives. Endpoints that accept any authenticated key, including keys with no scopes, instead publish `required_scope: null` and `any_authenticated: true`, without `required_scope_any_of`. The alternative-scope case includes feedback and office-vote operations, which accept any canonical or supported legacy key scope. The row-level `required_scope` appears only when every published endpoint shares the same non-default scope. Meeting `min_plan` alone does not grant access. Admin keys also satisfy the scope requirement.

The top-level `schedule_version` identifies the pricing version used by billing events. Both REST and MCP always include the boolean `degraded`: `false` when the OpenAPI document builds successfully, or `true` when endpoints use normalized fixture paths after a document-build failure. `has_more` is always `false` and `pagination.cursor` is `null`. Prices contain no currency amounts; see [plans and packs](https://signa.so/pricing).

Beta actions show nominal prices but consume no credits during beta. Planned prices do not imply availability. Daily monitoring prices apply to the daily meter, separately from management API requests. `endpoints` lists the operations published in this deployment; it may be empty for daily meters and for actions whose routes are not yet enabled. Identify daily meters by `unit` (`per_mark_per_day` or `per_watch_per_day`), not by an empty array. If the OpenAPI document cannot be built, normalized fixture paths are returned for that request with `Cache-Control: private, no-store`; the next request retries the document build. Watch-management operations cost 0 credits per request; their OpenAPI price has `charged_per_request: false` and a separate `daily` price block.

Successful document builds containing only public prices use `Cache-Control: public, max-age=300`. Scope-restricted prices are included only for authorized keys and use private caching. Responses vary by `Authorization`.

```typescript theme={null}
import { Signa } from "@signa-so/sdk";

const signa = new Signa({ api_key: process.env.SIGNA_API_KEY });
const pricing = await signa.credits.pricing();
console.log(pricing.schedule_version, pricing.data);
```

MCP clients can use the unbilled `get_credit_pricing` tool after authentication with a key that passes the MCP transport gate: one of `read`, `search`, `trademarks:read`, `billing:read`, `portfolios:manage`, or `admin` (the legacy `search:read` scope is also accepted). The tool adds no further scope requirement. REST accepts any valid key, including one with no scopes.

For the actual debit on a metered call, read `X-Credits-Charged`; see [credit headers](/api-reference/rate-limits#credit-headers). For your balance, use [Get Credits](/api-reference/administration/get-credits).


## OpenAPI

````yaml GET /v1/credits/pricing
openapi: 3.1.0
info:
  title: Signa API
  version: 1.0.0
  description: >-
    Global Trademark Intelligence Platform API — trademark search & intelligence
    across 10 production offices (USPTO, INPI France, EUIPO, IP Australia, CIPO,
    WIPO, IPOS, PRV, IPI, NIPO) with more in the pipeline.
servers:
  - url: https://api.signa.so
    description: Production
security:
  - bearerAuth: []
tags:
  - name: Trademarks
    description: Retrieve and list trademark registrations and applications across offices
  - name: Owners
    description: Look up trademark owners (applicants/registrants) and their portfolios
  - name: Attorneys
    description: Look up attorneys/representatives of record and their portfolios
  - name: Firms
    description: >-
      Look up law firms and their attorneys, trademark portfolios, and
      performance stats
  - name: Proceedings
    description: >-
      Search and retrieve trademark proceedings (oppositions, cancellations,
      etc.)
  - name: Citations
    description: >-
      Examiner refusal citations — the prior marks an office cited against an
      application
  - name: Classification
    description: >-
      Browse free Nice classification and goods and services catalogs; metered
      class suggestions, wording drafts, and validation
  - name: Fees
    description: Verified official fee catalog and native-currency estimates
  - name: Deadlines
    description: >-
      List and compute trademark maintenance and prosecution deadlines from
      jurisdictional rules, with rule and trigger provenance; includes the
      deadline rule catalog
  - name: Oppositions
    description: >-
      Compute opposition windows from office publication rules; includes the
      opposition rule catalog
  - name: Reconciliation
    description: Compare caller-held trademark data against normalized register records
  - name: Reference Data
    description: >-
      Catalogs of trademark offices, jurisdictions, design codes, and event
      types — plus office-coverage voting, where an organization casts, lists,
      and retracts votes for the offices it wants covered
  - name: Portfolios
    description: Create and manage trademark portfolios (collections of marks)
  - name: Watches
    description: >-
      Saved monitors that fire alerts when matching trademarks change (TSK-111
      monitoring v1)
  - name: Alerts
    description: Immutable alert rows produced by watch evaluation — read-only in v1
  - name: Webhooks
    description: Push delivery for alerts and sync events (Standard Webhooks signed)
  - name: Events
    description: >-
      Beta: per-organization event ledger and replay rail; payload contracts are
      versioned by `payload_version`; stability of the payload shape is not yet
      promised
  - name: Administration
    description: Organization identity, usage, logs, and API key management
  - name: Health
    description: Service health and readiness checks (unauthenticated)
paths:
  /v1/credits/pricing:
    get:
      tags:
        - Administration
      description: >-
        How many credits each API action costs. No currency amounts; see the
        pricing page for plans and packs.
      operationId: getCreditPricing
      responses:
        '200':
          description: Credit prices by API action
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreditPricingResponse'
        '401':
          description: Missing or invalid API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    CreditPricingResponse:
      type: object
      properties:
        object:
          type: string
          enum:
            - list
        data:
          type: array
          items:
            $ref: '#/components/schemas/CreditPrice'
        has_more:
          type: boolean
          enum:
            - false
        pagination:
          type: object
          properties:
            cursor:
              type: 'null'
          required:
            - cursor
        schedule_version:
          type: integer
        degraded:
          type: boolean
          description: >-
            True when the OpenAPI document could not be built and endpoints use
            normalized fixture paths. The next request retries the build.
        request_id:
          type: string
      required:
        - object
        - data
        - has_more
        - pagination
        - schedule_version
        - degraded
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            type:
              type: string
              example: not_found
            title:
              type: string
              example: Resource not found
            status:
              type: integer
              example: 404
            detail:
              type: string
              example: Trademark tm_xxx does not exist.
            instance:
              type: string
              example: /v1/trademarks/tm_xxx
            suggestion:
              type: string
              example: >-
                Check the trademark ID. Use GET /v1/trademarks to search for
                marks by text.
            retryable:
              type: boolean
              example: false
            retry_after:
              type:
                - integer
                - 'null'
              example: null
            errors:
              type: array
              items:
                type: object
                properties:
                  field:
                    type: string
                    example: limit
                  code:
                    type: string
                    description: >-
                      Stable machine-readable code (out_of_range,
                      invalid_format, missing, invalid_value, too_long,
                      too_short, ...).
                    example: out_of_range
                  message:
                    type: string
                    example: limit must be at most 100
                required:
                  - field
                  - code
                  - message
              description: >-
                Per-field validation issues. Present only on 400 validation
                errors.
          required:
            - type
            - title
            - status
            - detail
            - retryable
            - retry_after
        request_id:
          type: string
          example: req_abc123
      required:
        - error
        - request_id
    CreditPrice:
      type: object
      properties:
        object:
          type: string
          enum:
            - credit_price
        id:
          type: string
        name:
          type: string
        group:
          type: string
        credits:
          type: integer
          minimum: 0
        unit:
          type: string
          enum:
            - per_request
            - per_page
            - per_record
            - per_item
            - per_screen
            - per_mark_per_day
            - per_watch_per_day
        min_plan:
          type: string
          enum:
            - free
            - starter
            - growth
            - scale
            - enterprise
        status:
          type: string
          enum:
            - available
            - beta
            - planned
            - internal
          description: Internal prices are visible only to authorized keys.
        required_scope:
          type: string
          description: >-
            Non-default scope shared by every published endpoint in this row,
            when they all agree. See endpoints[].required_scope for mixed-scope
            rows. Admin also grants access.
        endpoints:
          type: array
          items:
            type: object
            properties:
              method:
                type: string
                enum:
                  - GET
                  - POST
                  - PATCH
                  - PUT
                  - DELETE
              path:
                type: string
                description: Concrete OpenAPI path with parameters in braces.
              required_scope:
                type:
                  - string
                  - 'null'
                description: >-
                  Effective endpoint scope when different from the default
                  trademarks:read. Null means no single scope is required; see
                  any_authenticated for any valid key or required_scope_any_of
                  for alternatives. Admin also grants access.
              any_authenticated:
                type: boolean
                enum:
                  - true
                description: >-
                  Any authenticated API key is accepted, including keys with no
                  scopes. Present with required_scope: null and without
                  required_scope_any_of.
              required_scope_any_of:
                type: array
                items:
                  type: string
                description: >-
                  Accepts any one of these scopes instead of a single
                  required_scope. Admin also grants access.
            required:
              - method
              - path
          description: >-
            Operations published in this deployment; may be empty for daily
            meters and for actions whose routes are not yet enabled. Identify
            daily meters by unit (per_mark_per_day or per_watch_per_day), not by
            an empty array. If the OpenAPI document cannot be built, normalized
            fixture paths are returned for that request.
      required:
        - object
        - id
        - name
        - group
        - credits
        - unit
        - min_plan
        - status
        - endpoints
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key (sig_ prefix)

````