CharacterQuilt · OpenAPI Overlay 1.0.0

API Evangelist enhancements — CharacterQuilt Branding API

5 actions 5 updates security extends openapi/characterquilt-branding-api-openapi.yml
Derived by API Evangelist Built from the contracts CharacterQuilt publishes. CharacterQuilt did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-provenancex-artifactssecurityx-authenticationx-corsx-cachingx-response-headersx-rate-limit

Targets 5

$.info
$
$.paths['/branding/{slug}.json'].get
$.paths['/branding/{slug}.json'].get.responses['404']
$.paths['/branding/{slug}']

OpenAPI Overlay

Raw ↑
# generated: '2026-08-13'
# method: generated
# source: openapi/characterquilt-branding-api-openapi.yml + live probes 2026-08-13
# note: >-
#   OpenAPI Overlay 1.0.0 capturing API Evangelist enhancements to the brand-profiles
#   Branding API description. Applied on top of the original; the original is never
#   mutated. Every value added here was observed on the wire (response headers, CORS,
#   404 body) or is a pointer to an artifact in this repo.
overlay: 1.0.0
info:
  title: API Evangelist enhancements — CharacterQuilt Branding API
  version: 1.0.0
extends: openapi/characterquilt-branding-api-openapi.yml
actions:
- target: $.info
  description: Record provenance and the absence of a provider-published contract.
  update:
    x-provenance:
      authored-by: API Evangelist
      method: generated
      basis: live responses observed from https://www.characterquilt.com/branding/{slug}.json
      note: >-
        CharacterQuilt publishes no OpenAPI. Probed /openapi.json, /openapi.yaml,
        /swagger.json, /v1/openapi.json, /api-docs, /docs, /redoc and
        /api/openapi.json on www.characterquilt.com and characterquilt.com — all
        404. api./app./docs./developer. subdomains do not resolve.
    x-artifacts:
      conventions: conventions/characterquilt-conventions.yml
      errors: errors/characterquilt-problem-types.yml
      lifecycle: lifecycle/characterquilt-lifecycle.yml
      rate-limits: rate-limits/characterquilt-rate-limits.yml
      authentication: authentication/characterquilt-authentication.yml
      data-model: data-model/characterquilt-data-model.yml
- target: $
  description: State the security posture explicitly — this surface takes no credential.
  update:
    security: []
    x-authentication: none
    x-cors:
      access-control-allow-origin: '*'
      observed: '2026-08-13'
- target: $.paths['/branding/{slug}.json'].get
  description: Add the observed caching and tracing semantics, and the real response
    headers.
  update:
    x-caching:
      etag: true
      last-modified: true
      cache-control: public, max-age=0, must-revalidate
      note: Conditional requests are supported and are the only way to avoid refetching
        a ~26 KB document.
    x-response-headers:
    - name: etag
      description: Strong entity tag; use with If-None-Match.
    - name: last-modified
      description: Use with If-Modified-Since.
    - name: content-disposition
      description: 'inline; filename="{slug}.json" — the surface is served as a static
        file.'
    - name: x-vercel-id
      description: Platform trace identifier. Not a CharacterQuilt request id and has
        no documented support path.
    x-rate-limit:
      documented: false
      headers: []
      note: No rate-limit headers are returned. See rate-limits/characterquilt-rate-limits.yml.
- target: $.paths['/branding/{slug}.json'].get.responses['404']
  description: Record the real 404 body shape — it is plain text, not JSON.
  update:
    content:
      text/plain:
        schema:
          type: string
        example: 'The page could not be found  NOT_FOUND  iad1::xxxxx-0000000000'
    x-note: >-
      Not RFC 9457 problem+json. A client cannot distinguish an unknown slug from a
      withdrawn one.
- target: $.paths['/branding/{slug}']
  description: Note that format selection is by path extension, not content negotiation.
  update:
    x-content-negotiation: >-
      The .json extension selects the machine-readable representation; the
      extensionless path returns HTML. The Accept header is not honoured.

Work with this as data

Every overlay here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for openapi overlays

4 MCP tools reach this
  • find_overlaysBrowse and filter every overlay in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This overlay
curl "https://apis.io/api/v1/overlays/characterquilt-branding-api-overlay"
All openapi overlays
curl "https://apis.io/api/v1/overlays?limit=25"

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.

A second provider on the same verified email joins the account you already have.