overlay: 1.0.0
info:
title: API Evangelist enhancements for ApiVault
version: 1.0.0
extends: openapi/_original/apivault-openapi.yml
x-provenance:
generated: '2026-09-04'
method: generated
source: >-
Derived from openapi/_original/apivault-openapi.yml (harvested verbatim from
https://api.apivault.dev/api/schema/ on 2026-09-04) plus live probes of
https://api.apivault.dev recorded in errors/, conventions/ and rate-limits/.
note: >-
These actions capture API Evangelist's enhancements only. The provider's
document is never mutated. Applying this overlay to the harvested spec
reproduces openapi/apivault-api-openapi.yml plus the annotations below.
actions:
- target: $.info
description: Record the origin, licence and the rating annotation.
update:
contact:
name: ApiVault (Exastudio)
url: https://apivault.dev/
license:
name: CC BY-NC-ND 4.0
url: https://github.com/exa-studio/ApiVault/blob/main/LICENSE
x-apievangelist-source: https://api.apivault.dev/api/schema/
x-apievangelist-harvested: '2026-09-04'
x-apievangelist-version-drift: >-
info.version is 2.1.0 while the provider's newest GitHub release is
v2.2.4 (2024-09-06). The deployed schema version has not been bumped
since the v2.1.0 release (2023-07-05).
- target: $
description: >-
Add the production host. The provider's drf-spectacular output ships no
servers[] block, so the spec is not directly callable as published.
update:
servers:
- url: https://api.apivault.dev
description: Production (observed live 2026-09-04)
- target: $.components.securitySchemes.jwtAuth
description: Name where the JWT is obtained, which the spec does not state.
update:
description: >-
Bearer JWT (SimpleJWT). Tokens are minted by POST /api/auth/google/
with a Google sign-in token, refreshed at /api/auth/token/refresh/ and
checked at /api/auth/token/verify/. There is no API-key or
client-credentials path; every authenticated call is on behalf of a
signed-in human Google account.
- target: $.paths['/api/search'].get
description: >-
Record the query parameter the provider's own frontend sends but the
spec omits (frontend/services/ApivaultServices.ts, search()).
update:
x-apievangelist-undocumented-parameters:
- name: query
in: query
required: false
schema:
type: string
description: >-
Free-text search over the catalogued API names/descriptions. Absent
from the published spec; observed in the provider's own client.
- target: $.paths['/api/category/{category_name}'].get
description: Record the ordering parameter the provider's frontend sends.
update:
x-apievangelist-undocumented-parameters:
- name: order
in: query
required: false
schema:
type: string
description: >-
Sort order passed by the provider's frontend
(apiCategoryData(category, authToken, orderBy)). Absent from the
published spec.
x-apievangelist-observed-failure: >-
GET /api/category/NotARealCategory returned HTTP 500 with an HTML
Django "Server Error (500)" body on 2026-09-04 — an unknown category
is not handled as a 404.
- target: $.paths..responses
description: >-
Note that no 4xx/5xx responses are declared anywhere in the document,
although the API returns them. See errors/apivault-problem-types.yml for
the observed envelope.
update:
x-apievangelist-note: >-
The published document declares only 200/201/204. Every error shape in
errors/apivault-problem-types.yml was observed live, not read from the
spec.
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.