W3C

W3C Specifications API

The Specifications API from W3C — 3 operation(s) for specifications.

OpenAPI Specification

w3c-specifications-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: W3C Affiliations Specifications API
  version: 1.0.0
  summary: Read-only JSON API for W3C specifications, groups, ecosystems, translations, and affiliations.
  description: 'The W3C API provides programmatic access to W3C data including specifications,

    working groups, editors, translations, and affiliations.


    All access is over HTTPS via `api.w3.org`. Data is returned as JSON with

    ISO 8601 timestamps. No authentication is required; the rate limit is

    6000 requests per IP per 10 minutes.


    Documentation: https://api.w3.org/doc

    '
  contact:
    name: W3C
    url: https://www.w3.org/
servers:
- url: https://api.w3.org
  description: W3C public read-only API
tags:
- name: Specifications
paths:
  /specifications:
    get:
      tags:
      - Specifications
      summary: List specifications
      operationId: listSpecifications
      parameters:
      - $ref: '#/components/parameters/Page'
      - $ref: '#/components/parameters/Items'
      - $ref: '#/components/parameters/Embed'
      responses:
        '200':
          description: Paginated specifications collection
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SpecificationList'
  /specifications/{shortname}:
    parameters:
    - $ref: '#/components/parameters/Shortname'
    get:
      tags:
      - Specifications
      summary: Get a specification by shortname
      operationId: getSpecification
      responses:
        '200':
          description: Specification details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Specification'
        '404':
          $ref: '#/components/responses/NotFound'
  /specifications/{shortname}/versions:
    parameters:
    - $ref: '#/components/parameters/Shortname'
    - $ref: '#/components/parameters/Page'
    - $ref: '#/components/parameters/Items'
    get:
      tags:
      - Specifications
      summary: List versions of a specification
      operationId: listSpecificationVersions
      responses:
        '200':
          description: Versions collection
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
components:
  parameters:
    Embed:
      name: embed
      in: query
      description: Embed related resources on supported routes.
      schema:
        type: boolean
    Page:
      name: page
      in: query
      description: Page number (default 1).
      schema:
        type: integer
        default: 1
        minimum: 1
    Items:
      name: items
      in: query
      description: Page size (default 100, max 1000).
      schema:
        type: integer
        default: 100
        minimum: 1
        maximum: 1000
    Shortname:
      name: shortname
      in: path
      required: true
      description: W3C specification shortname (e.g. `html52`, `wcag22`).
      schema:
        type: string
  schemas:
    HalLinks:
      type: object
      properties:
        self:
          $ref: '#/components/schemas/Link'
        first:
          $ref: '#/components/schemas/Link'
        last:
          $ref: '#/components/schemas/Link'
        next:
          $ref: '#/components/schemas/Link'
        prev:
          $ref: '#/components/schemas/Link'
    Link:
      type: object
      properties:
        href:
          type: string
          format: uri
        title:
          type: string
    SpecificationList:
      type: object
      properties:
        page:
          type: integer
        limit:
          type: integer
        pages:
          type: integer
        total:
          type: integer
        _links:
          allOf:
          - $ref: '#/components/schemas/HalLinks'
          - type: object
            properties:
              specifications:
                type: array
                items:
                  $ref: '#/components/schemas/Link'
    Specification:
      type: object
      properties:
        shortname:
          type: string
        title:
          type: string
        description:
          type: string
        editor-draft:
          type: string
          format: uri
        series:
          type: object
          additionalProperties: true
        _links:
          type: object
          additionalProperties: true
    Error:
      type: object
      properties:
        code:
          type: integer
        message:
          type: string
  responses:
    NotFound:
      description: Resource not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'