SEEAPISEEAPI
Developer CenterDocs
Get API Key
  • Getting Started
  • Authentication
  • List Model Prices
  • Create a Generation
  • Get Task Details
Image Models
Alibaba
Black Forest Labs
ByteDance
Google
Grok
OpenAI
SeeAPI
Video Models
Alibaba
ByteDance
Google
Grok
Kling
Lightricks
MiniMax
PixVerse
Runway
SeeAPI
Music Models
Text Models
www.seeapi.com

One AI API for every leading model. Create images, videos, music, and multimodal AI assets online, or build with one unified API.

Support
  • Pricing
  • [email protected]
Legal
  • Privacy Policy
  • Refund Policy
  • Terms & Conditions

Copyright 2026 © SeeAPI. All rights reserved.

GROWCRAFT PTE. LTD.

·5 RAFFLES PLACE, #06-00, RAFFLES PLACE MRT STATION, SINGAPORE 048618

List Model Prices

Retrieve API prices by model, endpoint, and provider. Each record describes one combination available to your API key.

Create an API key from API Keys with models:read permission. Copy a request example and replace YOUR_API_KEY with your key. Use a key for the same environment as the example URL. This GET request has no request body.

Leave model, endpoint, and provider unset to list all accessible prices. The response contains one page (50 records by default; up to 200 with limit).

Pagination

For the first request, omit cursor. If next_cursor is a string, pass it as the URL-encoded cursor in the next request, keeping the same filters. Combine the data arrays until next_cursor: null means there are no more pages.

Request

GET/v1/prices
AuthorizationSend your API key in the Authorization header using the Bearer scheme.Authorization: Bearer ****************

Query Params

stringoptional

Filter by an exact model ID. Omit to include all models accessible to your API key.

stringoptional

Filter by an exact Endpoint ID, such as text-to-video.

stringoptional

Filter by an exact public Provider ID used by the generation API.

stringoptional

Pass the previous next_cursor unchanged and URL-encoded. Preserve the filters. If the price snapshot changes, restart from the first page.

integeroptional

Maximum records per page. Follow next_cursor until it is null to retrieve the complete accessible catalog.

min: 1max: 200
Default:
50

Responses

200A page of prices accessible to the Bearer API key (requires models:read). Example model and amounts are fictional. Prices are not locked by this query; responses use Cache-Control: private, no-store.
Bodyapplication/json
array <object>required

One record per model, Endpoint and Provider combination. An empty list does not mean free usage.

stringrequired

Model ID used in generation requests.

stringrequired

Model display name.

stringrequired

Endpoint ID used in generation requests.

objectrequired

Public Provider information.

stringrequired

Provider ID used in generation requests.

stringrequired

Provider display name.

objectrequired

API pricing for this route. Unavailable prices must not be treated as zero.

stringrequired

Whether a pricing rule is available.

Allowed:availableunavailable
stringoptional

Present when unavailable: the rule is missing or unsupported, or requires a pricing parameter that this API cannot expose.

Allowed:unsupported_or_missing_ruleprivate_pricing_parameter
stringrequired

API credit unit. Amount precision is 0.001 credit.

Allowed:credits
stringrequired

The rule computes total credits per request; it may depend on duration, resolution or output count.

Allowed:request
stringoptional

Rule evaluation version. Present for available pricing.

Allowed:worker-v1
object | nullrequired

Complete pricing formula; null when unavailable. Supported types: fixed, lookup, linear, branch and sum. Evaluate the full rule, including rounding and nested rules.

stringrequired

Rule variant; other properties depend on this type. Present only when rule is an object.

Allowed:fixedlookuplinearbranchsum
numberoptional

fixed: total credits.

arrayoptional

lookup: input paths joined in order with | to select a table entry.

objectoptional

lookup: combined input value to credits mapping.

numberoptional

lookup: fallback credits when no table entry matches.

number | objectoptional

linear: base credits or a lookup table; defaults to 0.

arrayoptional

linear: paths used when base is a lookup table.

number | objectoptional

linear: credits per unit or a lookup table.

arrayoptional

linear: paths used when per is a lookup table.

arrayoptional

linear: numeric input paths used to calculate quantity.

stringoptional

linear: multiply (default) or add the unit values.

numberoptional

linear: minimum quantity, applied before unit_offset.

numberoptional

linear: subtract from quantity, with a minimum result of zero.

numberoptional

linear: round quantity up to this multiple after applying the offset.

numberoptional

linear: credit rounding increment. Default 1 uses Math.ceil(base + per × quantity); a non-1 step uses exact decimal rounding up.

objectoptional

branch: input field and exists, equals or in condition. Evaluation prioritizes exists, then strict equals, then in.

objectoptional

branch: recursively evaluate this rule when the condition matches.

objectoptional

branch: recursively evaluate this rule when the condition does not match.

arrayoptional

sum: evaluate and round each child rule separately, then add in integer thousandths of a credit.

array <object>optional

Pricing dependencies and available type/option hints, not the complete generation input schema. Present for available pricing.

stringrequired

Path in normalized generation pricing input.

stringrequired

Where the pricing value comes from.

Allowed:canonical_inputserver_media_probe
anyoptional

Default pricing value when safely available.

stringoptional

Rules use normalized generation input, which may differ from the raw client request. Present for available pricing.

Allowed:generation_canonical_input
object | nullrequired

Illustrative calculation using default pricing inputs; not a minimum price or a complete generation request. Null when inputs cannot be safely determined or require a server media probe.

objectrequired

Pricing paths and values used in this example; dotted keys represent paths. Present when example is an object.

numberrequired

Calculated total credits for these example parameters. Present when example is an object.

stringoptional

Present for available pricing. For server media probes, actual fees depend on measured media duration before submission; this query does not access media URLs.

Allowed:request_parametersserver_media_probe_before_submission
string | nullrequired

Cursor for the next page, or null when complete. Restart pagination if the cursor becomes invalid.

400

Invalid filters, limit or cursor. For an invalid cursor, discard collected results and restart from the first page.

401

Check that the Bearer API key is valid.

403

Check that the API key has models:read and the necessary permissions.

429

Request rate limit exceeded. Retry according to Retry-After.

503

Prices are temporarily unavailable. Retry later; contact support if the problem persists.

Pricing Notes

Prices are total credits per request. Compare providers using the same endpoint and pricing inputs; default examples are not minimum prices.

unavailable or example: null does not mean free usage. A null example can still have an available rule.

Queries do not lock prices. For server_media_probe_before_submission, the server measures input media before submission; client calculations are estimates.

To generate, use the returned model, endpoint, and provider.id. Follow Create a Generation and the model’s input requirements.

Code Examples
Request
const response = await fetch("https://api.seeapi.com/v1/prices?limit=50", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY"
  }
});

const result = await response.json();
ResponseHTTP 200
{
  "data": [
    {
      "model": "example-video",
      "model_name": "Example Video",
      "endpoint": "text-to-video",
      "provider": {
        "id": "seeapi",
        "display_name": "SeeAPI"
      },
      "pricing": {
        "status": "available",
        "currency": "credits",
        "unit": "request",
        "rule_version": "worker-v1",
        "rule": {
          "type": "linear",
          "per": 2,
          "unit_fields": [
            "duration_seconds"
          ]
        },
        "parameters": [
          {
            "name": "duration_seconds",
            "source": "canonical_input",
            "default": 5
          }
        ],
        "input_semantics": "generation_canonical_input",
        "example": {
          "parameters": {
            "duration_seconds": 5
          },
          "credits": 10
        },
        "billing_basis": "request_parameters"
      }
    }
  ],
  "next_cursor": null
}
PreviousAuthenticationNextCreate a Generation
Request
const response = await fetch("https://api.seeapi.com/v1/prices?limit=50", {
  method: "GET",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY"
  }
});

const result = await response.json();
ResponseHTTP 200
{
  "data": [
    {
      "model": "example-video",
      "model_name": "Example Video",
      "endpoint": "text-to-video",
      "provider": {
        "id": "seeapi",
        "display_name": "SeeAPI"
      },
      "pricing": {
        "status": "available",
        "currency": "credits",
        "unit": "request",
        "rule_version": "worker-v1",
        "rule": {
          "type": "linear",
          "per": 2,
          "unit_fields": [
            "duration_seconds"
          ]
        },
        "parameters": [
          {
            "name": "duration_seconds",
            "source": "canonical_input",
            "default": 5
          }
        ],
        "input_semantics": "generation_canonical_input",
        "example": {
          "parameters": {
            "duration_seconds": 5
          },
          "credits": 10
        },
        "billing_basis": "request_parameters"
      }
    }
  ],
  "next_cursor": null
}