---
title: "Versioned-root probe: the same endpoint index as /api/v1"
method: GET
path: "/v1"
tags: ["Discovery"]
---

# Versioned-root probe: the same endpoint index as /api/v1

`GET /v1`

## Request

- Base URL: `https://www.adadiamonds.com`
- URL: `https://www.adadiamonds.com/v1`
- Auth: one of:
  - none
  - API key in header `X-Ada-Api-Key`
  - OAuth 2 (authorization code, authorization URL `https://www.adadiamonds.com/oauth/authorize`, token URL `https://www.adadiamonds.com/api/oauth/token`; client credentials, token URL `https://www.adadiamonds.com/api/oauth/token`, scopes: `catalog:read`)

Clients that guess `/v1` before reading any docs get the endpoint index, which says where the API is (`/api/v1`) and that it needs no account. The response is identical to `GET /api/v1`, credential resolution included; `/api/v1` remains the canonical root to link and cache.

## Response `200`

The endpoint index.

- ApiIndex
  - `object` 'api_index', required
  - `name` string
  - `version` string, required
  - `base_url` string, uri
  - `credential` Credential
    - `kind` 'anonymous' | 'api_key' | 'access_token', required
    - `env` 'production' | 'sandbox', required
    - `scopes` string[], required
  - `documentation_url` string, uri, required
  - `openapi_url` string, uri, required
  - `mcp_url` string, uri, required
  - `llms_txt_url` string, uri
  - `endpoints` ApiIndexEndpoint[], required
    - `method` string, required
    - `path` string, uri, required
    - `operationId` string, required
    - `auth` string, required: "none" or the required OAuth scope.
  - `notes` string[]

## Other responses

- `429`: Over the rate limit. Wait `Retry-After` seconds; a credential raises the limit.

---

[API](https://skmtc.dev/adadiamonds/apis/ada-diamonds-agent-api.md) · [All operations](https://skmtc.dev/adadiamonds/apis/ada-diamonds-agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/adadiamonds/apis/ada-diamonds-agent-api/revisions/2b2ed3201815?raw)
