---
title: "Get provider specification"
method: GET
path: "/provider-specifications/{provider_specification_id}"
tags: ["Provider Specifications"]
---

# Get provider specification

`GET /provider-specifications/{provider_specification_id}`

## Request

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

Retrieves a specific provider specification by ID.

## Path parameters

- `provider_specification_id` string, required

## Headers

- `Metorial-Version` string

## Response `200`

Successful response

- Specification
  - `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

## 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)
