---
title: "List provider specifications"
method: GET
path: "/provider-specifications"
tags: ["Provider Specifications"]
---

# List provider specifications

`GET /provider-specifications`

## Request

- Base URL: `https://api.metorial.com`
- URL: `https://api.metorial.com/provider-specifications`
- Auth: HTTP bearer

Returns a paginated list of provider specifications.

## Query parameters

- `limit` number
- `after` string
- `before` string
- `cursor` string
- `order` 'asc' | 'desc'
- `id` union
  - string
  - string[]
- `provider_id` union
  - string
  - string[]
- `provider_version_id` union
  - string
  - string[]
- `provider_deployment_id` union
  - string
  - string[]
- `provider_config_id` union
  - string
  - string[]
- `search` string
- `created_at` object
  - `gt` string, date-time: Only include records after this timestamp for provider specification creation time
  - `lt` string, date-time: Only include records before this timestamp for provider specification creation time
- `updated_at` object
  - `gt` string, date-time: Only include records after this timestamp for provider specification last update time
  - `lt` string, date-time: Only include records before this timestamp for provider specification last update time

## Headers

- `Metorial-Version` string

## Response `200`

Successful response

- SpecificationList
  - `items` Item23[], required
    - `object` 'provider.specification', required: String representing the object's type
    - `id` string, required: Unique specification identifier
    - `key` string, required: Unique specification key
    - `name` string, required: Display name
    - `description` string, nullable, required: Description
    - `config_schema` object, required: JSON Schema defining the configuration structure
    - `config_visibility` 'encrypted' | 'plain', required: Visibility level of the configuration
    - `tools` Tool[], required: Available tools
      - `object` 'provider.tool', required: String representing the object's type
      - `id` string, required: Unique tool identifier
      - `key` string, required: Tool key
      - `name` string, required: Display name of the tool
      - `description` string, nullable, required: Tool description
      - `capabilities` object, required: Tool capabilities
      - `constraints` string[], required: Tool constraints
      - `instructions` string[], required: Tool usage instructions
      - `input_schema` object, nullable, required
        - `type` 'json_schema', required
        - `schema` object, required: JSON Schema defining the tool input parameters
      - `output_schema` object, nullable, required
        - `type` 'json_schema', required
        - `schema` object, required: JSON Schema defining the tool output format
      - `tags` object, nullable, required
        - `destructive` boolean, nullable, required: Whether the tool is destructive
        - `read_only` boolean, nullable, required: Whether the tool is read-only
      - `tool_category_keys` string[], required: Keys of the tool categories this tool belongs to
      - `specification_id` string, required: Specification ID
      - `provider_id` string, required: Provider ID
      - `created_at` string, date-time, required: Timestamp when created
      - `updated_at` string, date-time, required: Timestamp when last updated
    - `tool_categories` ToolCategory[], required: Tool categories that group the tools of this specification
      - `object` 'provider.tool_category', required: String representing the object's type
      - `key` string, required: Tool category key
      - `name` string, required: Display name of the tool category
      - `description` string, nullable, required: Tool category description
      - `image_url` string, nullable, required: URL of an icon or logo for the tool category
      - `tool_count` number, required: Number of tools in this specification that belong to the category
    - `auth_methods` AuthMethod[], required: Authentication methods
      - `object` 'provider.capabilities.auth_method', required: String representing the object's type
      - `id` string, required: Unique auth method identifier
      - `type` 'oauth' | 'token' | 'custom', required: Authentication type
      - `key` string, required: Auth method key
      - `name` string, required: Display name
      - `description` string, nullable, required: Auth method description
      - `capabilities` object, required: Auth method capabilities
      - `input_schema` object, nullable, required
        - `type` 'json_schema', required
        - `schema` object, required: JSON Schema defining the required auth input fields
      - `output_schema` object, nullable, required
        - `type` 'json_schema', required
        - `schema` object, required: JSON Schema defining the auth output fields
      - `scopes` Scope[], nullable, required: Available OAuth scopes
        - `object` 'provider.capabilities.auth_method.scope', required: String representing the object's type
        - `id` string, required: Unique scope identifier
        - `scope` string, required: OAuth scope string
        - `name` string, required: Display name of the scope
        - `description` string, nullable, required: Scope description
      - `adapters` string[], nullable, required: Adapter IDs this auth method can be used with
      - `provider_id` string, required: Provider ID
      - `provider_specification_id` string, required: Specification ID
      - `created_at` string, date-time, required: Timestamp when created
      - `updated_at` string, date-time, required: Timestamp when last updated
    - `provider_id` string, required: Provider ID
    - `created_at` string, date-time, required: Timestamp when created
    - `updated_at` string, date-time, required: Timestamp when last updated
  - `pagination` object, required
    - `has_more_before` boolean, required
    - `has_more_after` boolean, required

## Other responses

- `400`: Invalid parameters or action
- `401`: Missing or invalid API key
- `403`: The key lacks permission for this resource
- `404`: No such resource
- `422`: Validation failed
- `429`: Rate limit exceeded
- `500`: Unexpected server error

---

[API](https://skmtc.dev/metorial/apis/metorial-api.md) - [All operations](https://skmtc.dev/metorial/apis/metorial-api/llms.txt) - [OpenAPI document](https://skmtc.dev/metorial/apis/metorial-api/revisions/10ccc89f3eac?raw)
