---
title: "Get the OpenAPI 3.1 spec (audience-filtered)"
method: GET
path: "/api/v1/openapi.json"
tags: ["API Docs"]
---

# Get the OpenAPI 3.1 spec (audience-filtered)

`GET /api/v1/openapi.json`

## Request

- Base URL: `https://api.skills-hub.ai`
- URL: `https://api.skills-hub.ai/api/v1/openapi.json`
- Auth: one of:
  - HTTP bearer
  - API key in header `Authorization`

Returns the live OpenAPI 3.1 JSON schema. Platform admins (with an admin bearer token) get the complete surface; all other callers get the public + organization API with admin/internal/preview endpoints omitted. `Vary: Authorization`, never cached. `503` if the schema is not yet ready.

## Response `200`

Successful response. The returned fields are described in this endpoint's summary/description; typed per-field response schemas are being added incrementally.

- object: Live OpenAPI 3.1 document, audience-filtered (admins get the full surface; others get the public + org subset). Vary: Authorization, never cached.
  - `openapi` string
  - `info` object
  - `paths` object
  - `components` object
  - `tags` object[]
  - `x-tagGroups` object[]

---

[API](https://skmtc.dev/skills-hub/apis/skills-hub-ai-api.md) · [All operations](https://skmtc.dev/skills-hub/apis/skills-hub-ai-api/llms.txt) · [OpenAPI document](https://skmtc.dev/skills-hub/apis/skills-hub-ai-api/revisions/cb5d46d80300?raw)
