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

# Validate ETF Symbol

> Check if an ETF symbol is valid and get its resolved primary RIC.

Check if an ETF symbol is valid and get its resolved primary RIC.

## Query Parameters

| Parameter | Type   | Required | Description                                 |
| --------- | ------ | -------- | ------------------------------------------- |
| `symbol`  | string | Yes      | ETF symbol to validate (e.g., `SPY`, `QQQ`) |

## Response

**Valid symbol:**

```json theme={null}
{
  "valid": true,
  "symbol": "SPY",
  "primary_symbol": "SPY.P"
}
```

**Invalid symbol:**

```json theme={null}
{
  "valid": false,
  "symbol": "FAKE123",
  "primary_symbol": null,
  "error": "ETF symbol 'FAKE123' not found in IDENTIFIERS"
}
```

<Note>
  This endpoint always returns 200, even for invalid symbols. Check the `valid` field to determine if the symbol was found.
</Note>

## Example

```bash theme={null}
curl "https://api.chicago.global/v1/etf/validate?symbol=QQQ" \
  -H "Authorization: Bearer YOUR_API_KEY"
```


## OpenAPI

````yaml GET /v1/etf/validate
openapi: 3.1.0
info:
  title: Parallax API
  description: >-
    Financial data and portfolio analytics API. Analyze portfolios with
    multi-currency support, rebalancing, and comprehensive metrics.
  version: 1.0.0
servers:
  - url: https://api.chicago.global
security:
  - bearerAuth: []
paths:
  /v1/etf/validate:
    get:
      tags:
        - ETF
      summary: Validate ETF Symbol
      description: Check if an ETF symbol is valid and get its resolved primary RIC.
      operationId: validateEtf
      parameters:
        - name: symbol
          in: query
          required: true
          description: ETF symbol to validate (e.g., SPY, QQQ)
          schema:
            type: string
          example: SPY
      responses:
        '200':
          description: Validation result
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateEtfResponse'
              examples:
                valid:
                  summary: Valid symbol
                  value:
                    valid: true
                    symbol: SPY
                    primary_symbol: SPY.P
                invalid:
                  summary: Invalid symbol
                  value:
                    valid: false
                    symbol: FAKE123
                    primary_symbol: null
                    error: ETF symbol 'FAKE123' not found in IDENTIFIERS
        '401':
          description: Unauthorized - Invalid or missing API key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    ValidateEtfResponse:
      type: object
      properties:
        valid:
          type: boolean
          description: Whether the symbol is valid
        symbol:
          type: string
          description: The symbol that was queried
        primary_symbol:
          type: string
          nullable: true
          description: Resolved primary RIC (null if invalid)
        error:
          type: string
          description: Error message (only present for invalid symbols)
    Error:
      type: object
      properties:
        detail:
          type: string
          description: Error message
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: API key passed as Bearer token

````