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

# Get a blend by ID

> Returns a single blend by ID, including all active data sources.

## OpenAPI

````json GET /v1/teams/{team_id}/data-blending/blends/{blend_id}
{
  "openapi": "3.0.3",
  "info": {
    "title": "Management API Reference",
    "version": "2.0.0",
    "description": "API Documentation for the Supermetrics Management API. For more information, visit https://supermetrics.com.",
    "termsOfService": "https://supermetrics.com/terms-of-service",
    "contact": {
      "name": "Supermetrics Suppot",
      "email": "support@supermetrics.com",
      "url": "https://supermetrics.com/support"
    },
    "license": {
      "name": "Apache 2.0",
      "url": "https://www.apache.org/licenses/LICENSE-2.0.html"
    },
    "x-api-id": "sm-management-api",
    "x-audience": "public"
  },
  "servers": [
    {
      "url": "https://api.supermetrics.com/v2",
      "description": "Global production public Supermetrics Management API base path.",
      "x-internal": "false"
    },
    {
      "url": "https://api.supermetrics.com",
      "description": "Global production public Supermetrics API base path (for Connector Builder and Team endpoints).",
      "x-internal": "false"
    }
  ],
  "tags": [
    {
      "name": "API Keys",
      "description": "Manage API keys to access Supermetrics API"
    },
    {
      "name": "Data Source Logins",
      "description": "Access your data source authentications"
    },
    {
      "name": "Data Source Login Links",
      "description": "Create single-use data source login links"
    },
    {
      "name": "Saved Queries",
      "description": "Manage queries saved in Query Manager"
    },
    {
      "name": "Table Groups",
      "description": "Manage your team's table groups"
    },
    {
      "name": "Team Lists",
      "description": "Manage centralized team lists for your queries"
    },
    {
      "name": "Team Settings",
      "description": "Configure general settings for your team"
    },
    {
      "name": "Data Transfers",
      "description": "Create, configure, and manage Data Warehouse transfers"
    },
    {
      "name": "Transfer Runs",
      "description": "Monitor execution history of Data Warehouse transfers"
    },
    {
      "name": "Data Backfills",
      "description": "Manage historical data backfills for your Data Warehouse transfers"
    },
    {
      "name": "Data Destinations",
      "description": "Create, configure, and manage Data Warehouse destinations"
    },
    {
      "name": "Data Source Connections",
      "description": "Create and manage data source connections for Data Warehouse transfers"
    },
    {
      "name": "Data Blending",
      "description": "Create and manage Data Blending"
    },
    {
      "name": "Custom Fields",
      "description": "Create and manage Custom Fields"
    },
    {
      "name": "Connectors",
      "description": "Create and manage custom connectors"
    },
    {
      "name": "Connector Secrets",
      "description": "Manage encrypted secrets for connectors"
    },
    {
      "name": "Connector Logs",
      "description": "Access connector execution logs"
    },
    {
      "name": "Connector Logo",
      "description": "Manage connector logos"
    },
    {
      "name": "Connector Schema",
      "description": "Retrieve connector configuration schemas"
    },
    {
      "name": "Datasource",
      "description": "Retrieve datasource configuration details"
    }
  ],
  "externalDocs": {
    "description": "Find out more about Supermetrics Management API",
    "url": "https://docs.supermetrics.com/apidocs/management-api"
  },
  "paths": {
    "/v1/teams/{team_id}/data-blending/blends/{blend_id}": {
      "get": {
        "summary": "Get a blend by ID",
        "description": "Returns a single blend by ID, including all active data sources.",
        "operationId": "BlendController::getBlendAction",
        "x-middlewares": [
          {
            "name": "team-access-check",
            "options": {
              "team-id-param": "team_id"
            }
          },
          {
            "name": "permission-check",
            "options": {
              "permission-id": "data_blending.view"
            }
          },
          {
            "name": "data-blending-access-check"
          }
        ],
        "security": [
          {
            "BearerAuth": [
              "data_blending_read"
            ]
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/TeamId"
          },
          {
            "name": "blend_id",
            "in": "path",
            "required": "true",
            "description": "ID of the blend to retrieve",
            "example": "569",
            "schema": {
              "type": "integer",
              "format": "int64",
              "minimum": "1",
              "maximum": "9223372036854776000"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Blend retrieved successfully",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BlendResponse"
                },
                "example": {
                  "meta": {
                    "request_id": "RWmTkuYcXdfdjvA7xaDnusTYu8u8AMXG"
                  },
                  "data": {
                    "blend_id": "569",
                    "blend_uuid": "71bc0582-31b5-11f1-a55c-4201ac182030",
                    "type": "join",
                    "display_name": "Example Blend",
                    "description": "Example blend description",
                    "modified_time_utc": "2026-04-07T10:00:00+00:00",
                    "last_modify_user_email": "user@supermetrics.com",
                    "blended_data_sources": {
                      "items": [
                        {
                          "blend_data_source_id": "1",
                          "blend_id": "569",
                          "data_source_id": "GA4",
                          "display_name": "Google Analytics 4",
                          "accounts": {
                            "items": []
                          },
                          "segments": {
                            "items": []
                          },
                          "data_source_settings": {
                            "items": []
                          },
                          "report_type_settings": {
                            "items": []
                          }
                        },
                        {
                          "blend_data_source_id": "2",
                          "blend_id": "569",
                          "data_source_id": "GADS",
                          "display_name": "Google Ads",
                          "accounts": {
                            "items": []
                          },
                          "segments": {
                            "items": []
                          },
                          "data_source_settings": {
                            "items": []
                          },
                          "report_type_settings": {
                            "items": []
                          }
                        }
                      ]
                    },
                    "config": {
                      "query_table": {
                        "blend_data_source_id": "1"
                      },
                      "joins": {
                        "items": [
                          {
                            "join_table": {
                              "blend_data_source_id": "2"
                            },
                            "type": "left",
                            "conditions": {
                              "items": [
                                {
                                  "operator": "=",
                                  "left": {
                                    "blend_data_source_id": "1",
                                    "datasource_field_name": "Date",
                                    "datasource_field_display_name": "Date",
                                    "datasource_field_type": "dim",
                                    "datasource_field_data_type": "string.time.date",
                                    "field_source": "standard",
                                    "meta": null
                                  },
                                  "right": {
                                    "blend_data_source_id": "2",
                                    "datasource_field_name": "Date",
                                    "datasource_field_display_name": "Date",
                                    "datasource_field_type": "dim",
                                    "datasource_field_data_type": "string.time.date",
                                    "field_source": "standard",
                                    "meta": null
                                  }
                                }
                              ]
                            }
                          }
                        ]
                      },
                      "fields": {
                        "items": [
                          {
                            "blend_field_name": "impressions",
                            "blend_field_display_name": "Impressions",
                            "blend_field_type": "met",
                            "blend_field_data_type": "int.number.value",
                            "blend_datasource_fields": {
                              "items": [
                                {
                                  "blend_data_source_id": "1",
                                  "datasource_field_name": "Impressions",
                                  "datasource_field_display_name": "Impressions",
                                  "datasource_field_type": "met",
                                  "datasource_field_data_type": "int.number.value",
                                  "field_source": "standard",
                                  "meta": null
                                }
                              ]
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "description": "Blend not found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotFoundError"
                }
              }
            }
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalServerError"
          }
        },
        "tags": [
          "Data Blending"
        ]
      }
    }
  },
  "components": {
    "parameters": {
      "TeamId": {
        "name": "team_id",
        "in": "path",
        "description": "ID of the team",
        "required": "true",
        "schema": {
          "type": "integer",
          "format": "int64",
          "minimum": "1",
          "maximum": "9223372036854776000"
        },
        "example": "936506"
      }
    },
    "schemas": {
      "BlendResponse": {
        "description": "Success envelope wrapping a single blend.",
        "allOf": [
          {
            "$ref": "#/components/schemas/AbstractResponse"
          },
          {
            "type": "object",
            "properties": {
              "data": {
                "$ref": "#/components/schemas/BlendOutput"
              }
            },
            "required": [
              "data"
            ]
          }
        ]
      },
      "NotFoundError": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "maxLength": "255",
            "pattern": "^.+$",
            "description": "Not found"
          },
          "code": {
            "type": "string",
            "enum": [
              "NOT_FOUND"
            ],
            "description": "NOT_FOUND"
          }
        }
      },
      "AbstractResponse": {
        "type": "object",
        "description": "Base envelope for all successful API responses. Concrete responses extend this via `allOf` and add a `data` property.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/Meta"
          }
        },
        "required": [
          "meta"
        ]
      },
      "BlendOutput": {
        "type": "object",
        "description": "A blend with its fields and data sources, as returned for a single-blend read.",
        "properties": {
          "blend_id": {
            "type": "integer",
            "format": "int64",
            "minimum": "1",
            "maximum": "9223372036854776000",
            "description": "Blend ID.",
            "example": "569"
          },
          "blend_uuid": {
            "type": "string",
            "format": "uuid",
            "maxLength": "36",
            "description": "Blend UUID.",
            "example": "71bc0582-31b5-11f1-a55c-4201ac182030"
          },
          "type": {
            "type": "string",
            "enum": [
              "join",
              "union"
            ],
            "description": "Blend type.",
            "example": "union"
          },
          "display_name": {
            "type": "string",
            "maxLength": "300",
            "pattern": "^.+",
            "description": "Display name of the blend.",
            "example": "My Blend"
          },
          "description": {
            "type": "string",
            "maxLength": "300",
            "nullable": "true",
            "pattern": "^.+",
            "description": "Description of the blend.",
            "example": "Description of the blend"
          },
          "modified_time_utc": {
            "type": "string",
            "format": "date-time",
            "maxLength": "32",
            "description": "Timestamp of the last modification, in UTC. Serialized with a numeric offset (e.g. \"+0000\") rather than a trailing \"Z\".",
            "example": "2026-04-07T10:00:00+00:00"
          },
          "last_modify_user_email": {
            "type": "string",
            "format": "email",
            "maxLength": "254",
            "description": "Email of the user who last modified the blend.",
            "example": "user@supermetrics.com"
          },
          "blended_data_sources": {
            "type": "object",
            "description": "Data sources included in this blend.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "50",
                "description": "Data source items.",
                "example": [],
                "items": {
                  "$ref": "#/components/schemas/BlendedDataSourceOutput"
                }
              }
            }
          },
          "config": {
            "$ref": "#/components/schemas/BlendConfigOutput"
          }
        },
        "example": {
          "blend_id": "569",
          "blend_uuid": "71bc0582-31b5-11f1-a55c-4201ac182030",
          "type": "union",
          "display_name": "My Blend",
          "description": "Description of the blend",
          "modified_time_utc": "2026-04-07T10:00:00+00:00",
          "last_modify_user_email": "user@supermetrics.com"
        }
      },
      "ErrorResponse": {
        "type": "object",
        "description": "Standard envelope returned by all error (4xx/5xx) responses.",
        "properties": {
          "meta": {
            "$ref": "#/components/schemas/Meta"
          },
          "error": {
            "$ref": "#/components/schemas/Error"
          }
        },
        "required": [
          "meta",
          "error"
        ],
        "additionalProperties": "false"
      },
      "Meta": {
        "type": "object",
        "description": "Metadata included in every API response.",
        "properties": {
          "request_id": {
            "$ref": "#/components/schemas/RequestId"
          }
        },
        "required": [
          "request_id"
        ],
        "additionalProperties": "false"
      },
      "BlendedDataSourceOutput": {
        "type": "object",
        "description": "A data source included in the blend response, with field mappings and account details.",
        "properties": {
          "blend_data_source_id": {
            "type": "integer",
            "format": "int64",
            "minimum": "1",
            "maximum": "9223372036854776000",
            "description": "Internal ID of the blended data source.",
            "example": "1"
          },
          "blend_id": {
            "type": "integer",
            "format": "int64",
            "minimum": "1",
            "maximum": "9223372036854776000",
            "description": "ID of the blend this data source belongs to.",
            "example": "569"
          },
          "data_source_id": {
            "type": "string",
            "maxLength": "100",
            "pattern": "^[A-Za-z0-9_]+",
            "description": "Data source identifier.",
            "example": "GA4"
          },
          "display_name": {
            "type": "string",
            "maxLength": "300",
            "pattern": "^.+",
            "description": "Display name of the data source.",
            "example": "Google Analytics 4"
          },
          "data_source_settings": {
            "type": "object",
            "description": "Settings applied when querying this data source.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "100",
                "description": "Setting items.",
                "example": [],
                "items": {
                  "type": "object",
                  "description": "A single data source setting."
                }
              }
            }
          },
          "accounts": {
            "type": "object",
            "description": "Accounts queried from this data source.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "1000",
                "description": "Account items.",
                "example": [],
                "items": {
                  "type": "object",
                  "description": "An account queried from this data source."
                }
              }
            }
          },
          "segments": {
            "type": "object",
            "description": "Segments applied when querying this data source.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "100",
                "description": "Segment items.",
                "example": [],
                "items": {
                  "type": "object",
                  "description": "A segment applied when querying this data source."
                }
              }
            }
          },
          "report_type": {
            "type": "string",
            "maxLength": "100",
            "nullable": "true",
            "pattern": "^.+",
            "description": "Report type ID.",
            "example": "organic_search"
          },
          "report_type_settings": {
            "type": "object",
            "description": "Settings for the selected report type.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "100",
                "description": "Report type setting items.",
                "example": [],
                "items": {
                  "type": "object",
                  "description": "A single setting for the selected report type."
                }
              }
            }
          },
          "logo_url": {
            "type": "string",
            "format": "uri",
            "maxLength": "2048",
            "description": "Data source logo URL.",
            "example": "https://cdn.supermetrics.com/images/datasource-logos/GA4.png"
          }
        }
      },
      "BlendConfigOutput": {
        "type": "object",
        "description": "Field mappings and join configuration for the blend (response). Union blends contain only `fields`; join blends also include `query_table` and `joins`.",
        "properties": {
          "query_table": {
            "type": "object",
            "description": "Primary (left-hand) data source — present for join blends only.",
            "properties": {
              "blend_data_source_id": {
                "type": "integer",
                "format": "int64",
                "nullable": "true",
                "minimum": "1",
                "maximum": "9223372036854776000",
                "description": "Internal ID of the primary data source.",
                "example": "146715"
              }
            },
            "example": {}
          },
          "joins": {
            "type": "object",
            "description": "Join definitions — present for join blends only.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "50",
                "description": "Join items.",
                "example": [],
                "items": {
                  "$ref": "#/components/schemas/BlendJoinOutput"
                }
              }
            }
          },
          "fields": {
            "type": "object",
            "description": "Field definitions for the blend.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "1000",
                "description": "Field items.",
                "example": [],
                "items": {
                  "$ref": "#/components/schemas/BlendFieldOutput"
                }
              }
            }
          }
        },
        "example": {}
      },
      "Error": {
        "type": "object",
        "description": "Machine- and human-readable detail for a failed request.",
        "properties": {
          "code": {
            "type": "string",
            "pattern": "^[A-Z][A-Z0-9_]*$",
            "maxLength": "100",
            "description": "Stable, screaming-snake-case identifier for the error condition. Clients should branch on this, not on `message`. Common values include BAD_REQUEST, UNAUTHORIZED, FORBIDDEN, NOT_FOUND, CONFLICT_ERROR, PERMISSION_ERROR, UNPROCESSABLE_ENTITY, UNPROCESSABLE_CONTENT, TOO_MANY_REQUESTS, INTERNAL_SERVER_ERROR, DUPLICATION_FAILED, SERVICE_UNAVAILABLE; domains may define additional codes.",
            "example": "BAD_REQUEST"
          },
          "message": {
            "type": "string",
            "maxLength": "255",
            "pattern": "^.+$",
            "description": "Short, human-readable summary of the error.",
            "example": "The request was invalid."
          },
          "description": {
            "type": "string",
            "maxLength": "2048",
            "description": "Optional longer explanation specific to this occurrence.",
            "example": "The field 'display_name' must not be empty."
          }
        },
        "required": [
          "code",
          "message"
        ],
        "additionalProperties": "false"
      },
      "RequestId": {
        "type": "string",
        "description": "Unique identifier for the request, for tracking and debugging.",
        "pattern": "^[A-Za-z0-9_-]+$",
        "minLength": "8",
        "maxLength": "64",
        "example": "BXaEFVtjc7TXaJxgZhmFgSUD9edqq_CN",
        "x-faker": {
          "random.alphaNumeric": "30"
        }
      },
      "BlendJoinOutput": {
        "type": "object",
        "description": "Join definition between two data sources (response).",
        "properties": {
          "join_table": {
            "type": "object",
            "description": "Data source joined with the primary table.",
            "properties": {
              "blend_data_source_id": {
                "type": "integer",
                "format": "int64",
                "nullable": "true",
                "minimum": "1",
                "maximum": "9223372036854776000",
                "description": "Internal ID of the data source to join.",
                "example": "146715"
              }
            },
            "example": {}
          },
          "type": {
            "type": "string",
            "enum": [
              "inner",
              "left",
              "right",
              "full outer"
            ],
            "description": "Join type.",
            "example": "left"
          },
          "conditions": {
            "type": "object",
            "description": "Conditions that define how the two data sources are joined.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "50",
                "description": "Condition items.",
                "example": [],
                "items": {
                  "$ref": "#/components/schemas/BlendJoinConditionOutput"
                }
              }
            }
          }
        }
      },
      "BlendFieldOutput": {
        "type": "object",
        "description": "A blend field and its mapping to fields in each data source (response).",
        "properties": {
          "blend_field_name": {
            "type": "string",
            "maxLength": "255",
            "pattern": "^.+",
            "description": "Unique name of the blend field — cannot be changed once created.",
            "example": "impressions"
          },
          "blend_field_display_name": {
            "type": "string",
            "maxLength": "255",
            "pattern": "^.+",
            "description": "Display name of the blend field.",
            "example": "Impressions"
          },
          "blend_field_type": {
            "type": "string",
            "enum": [
              "dim",
              "met"
            ],
            "description": "Field type: `dim` (dimension) or `met` (metric).",
            "example": "met"
          },
          "blend_field_data_type": {
            "type": "string",
            "maxLength": "100",
            "pattern": "^.+",
            "description": "Data type of the field (e.g. string.time.date, int.number.value).",
            "example": "int.number.value"
          },
          "blend_datasource_fields": {
            "type": "object",
            "description": "Per-data-source field mappings for this blend field.",
            "properties": {
              "items": {
                "type": "array",
                "maxItems": "50",
                "description": "Datasource field items.",
                "example": [],
                "items": {
                  "$ref": "#/components/schemas/BlendDatasourceFieldRefOutput"
                }
              }
            }
          }
        }
      },
      "BlendJoinConditionOutput": {
        "type": "object",
        "description": "A condition comparing one field from each data source (response).",
        "properties": {
          "operator": {
            "type": "string",
            "enum": [
              "="
            ],
            "description": "Comparison operator.",
            "example": "="
          },
          "left": {
            "description": "Field from the primary table.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BlendDatasourceFieldRefOutput"
              }
            ],
            "example": {}
          },
          "right": {
            "description": "Field from the join table.",
            "allOf": [
              {
                "$ref": "#/components/schemas/BlendDatasourceFieldRefOutput"
              }
            ],
            "example": {}
          }
        }
      },
      "BlendDatasourceFieldRefOutput": {
        "type": "object",
        "description": "A field reference within a data source (response).",
        "properties": {
          "blend_data_source_id": {
            "type": "integer",
            "format": "int64",
            "nullable": "true",
            "minimum": "1",
            "maximum": "9223372036854776000",
            "description": "Internal ID of the blended data source.",
            "example": "146715"
          },
          "datasource_field_name": {
            "type": "string",
            "maxLength": "255",
            "pattern": "^.+",
            "description": "Field name as defined by the data source.",
            "example": "Date"
          },
          "datasource_field_display_name": {
            "type": "string",
            "maxLength": "255",
            "pattern": "^.+",
            "description": "Display name of the field.",
            "example": "Date"
          },
          "datasource_field_type": {
            "type": "string",
            "enum": [
              "dim",
              "met"
            ],
            "description": "Field type: `dim` (dimension) or `met` (metric).",
            "example": "dim"
          },
          "datasource_field_data_type": {
            "type": "string",
            "maxLength": "100",
            "pattern": "^.+",
            "description": "Data type of the field (e.g. string.time.date, int.number.value).",
            "example": "string.text.value"
          },
          "field_source": {
            "type": "string",
            "enum": [
              "standard",
              "transformation",
              "data_source_account_custom"
            ],
            "description": "Origin of the field: `standard` = from the data source, `transformation` = computed field, `data_source_account_custom` = account-level custom field.",
            "example": "standard"
          },
          "meta": {
            "type": "object",
            "nullable": "true",
            "description": "Optional metadata, e.g. account-level overrides.",
            "example": {}
          }
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Bad request - invalid parameters",
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "Access-Control-Allow-Origin": {
            "$ref": "#/components/headers/Access-Control-Allow-Origin"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "meta": {
                "request_id": "BXaEFVtjc7TXaJxgZhmFgSUD9edqq_CN"
              },
              "error": {
                "code": "BAD_REQUEST",
                "message": "The request was invalid."
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Unauthorized",
        "headers": {
          "WWW-Authenticate": {
            "$ref": "#/components/headers/WWW-Authenticate"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "Access-Control-Allow-Origin": {
            "$ref": "#/components/headers/Access-Control-Allow-Origin"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "meta": {
                "request_id": "BXaEFVtjc7TXaJxgZhmFgSUD9edqq_CN"
              },
              "error": {
                "code": "UNAUTHORIZED",
                "message": "Authentication is required."
              }
            }
          }
        }
      },
      "Forbidden": {
        "description": "Access forbidden",
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "Access-Control-Allow-Origin": {
            "$ref": "#/components/headers/Access-Control-Allow-Origin"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "meta": {
                "request_id": "BXaEFVtjc7TXaJxgZhmFgSUD9edqq_CN"
              },
              "error": {
                "code": "FORBIDDEN",
                "message": "You do not have access to this resource."
              }
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "Too Many Requests",
        "headers": {
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/X-RateLimit-Limit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/X-RateLimit-Remaining"
          },
          "Retry-After": {
            "$ref": "#/components/headers/Retry-After"
          },
          "Access-Control-Allow-Origin": {
            "$ref": "#/components/headers/Access-Control-Allow-Origin"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "meta": {
                "request_id": "BXaEFVtjc7TXaJxgZhmFgSUD9edqq_CN"
              },
              "error": {
                "code": "TOO_MANY_REQUESTS",
                "message": "Rate limit exceeded. Retry later."
              }
            }
          }
        }
      },
      "InternalServerError": {
        "description": "Internal server error",
        "headers": {
          "Access-Control-Allow-Origin": {
            "$ref": "#/components/headers/Access-Control-Allow-Origin"
          }
        },
        "content": {
          "application/json": {
            "schema": {
              "$ref": "#/components/schemas/ErrorResponse"
            },
            "example": {
              "meta": {
                "request_id": "BXaEFVtjc7TXaJxgZhmFgSUD9edqq_CN"
              },
              "error": {
                "code": "INTERNAL_SERVER_ERROR",
                "message": "An unexpected error occurred."
              }
            }
          }
        }
      }
    },
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "otok",
        "description": "Bearer token authentication. Include the token in the Authorization header:\n`Authorization: Bearer <your-token>`\n"
      }
    },
    "headers": {
      "X-RateLimit-Limit": {
        "description": "Request limit per hour",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": "1",
          "maximum": "10000",
          "example": "5000"
        }
      },
      "X-RateLimit-Remaining": {
        "description": "Remaining requests in current window",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": "0",
          "maximum": "10000",
          "example": "4999"
        }
      },
      "Access-Control-Allow-Origin": {
        "description": "CORS header",
        "schema": {
          "type": "string",
          "maxLength": "255",
          "enum": [
            "*"
          ],
          "example": "*"
        }
      },
      "WWW-Authenticate": {
        "description": "Bearer token required",
        "schema": {
          "type": "string",
          "maxLength": "255",
          "pattern": "^Bearer.*"
        }
      },
      "Retry-After": {
        "description": "Seconds until rate limit resets",
        "schema": {
          "type": "integer",
          "format": "int32",
          "minimum": "1",
          "maximum": "86400",
          "example": "3600"
        }
      }
    }
  }
}
````

