DalCor Pharmaceuticals Discovery API

Site index, namespace route index, content types, taxonomies and statuses

OpenAPI Specification

dalcor-pharmaceuticals-discovery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: DalCor Pharmaceuticals Content API (WordPress REST API) Discovery API
  version: wp/v2
  description: Anonymously readable content API for dalcorpharma.com, derived from the WordPress REST route index the site publishes at https://dalcorpharma.com/wp-json/wp/v2. It exposes DalCor's press releases (posts), the corporate and clinical-programme pages (About DalCor, Management, Board of Directors, Partners, Science, Dalcetrapib History, Precision Medicine, Cardiovascular Diseases, dal-GenE, Dal-GenE-2, DAL-302 study information, Contact Us, Privacy Policy), the media library, the post categories, and cross-content search. Every collection also accepts a `wpml_language` parameter (`en`/`fr`) because the site runs WPML and publishes a French edition at /fr/. DalCor does not run a developer program and publishes no hand-authored specification; this document is a faithful derivation of the routes, parameters and defaults the site itself advertises, restricted to the read operations verified to return HTTP 200 without credentials on 2026-08-04. Write operations are registered on the same routes but are authenticated administrative endpoints, not a public API offering, and are deliberately not modelled here.
  contact:
    name: DalCor Pharmaceuticals
    email: info@DalCorpharma.com
    url: https://dalcorpharma.com/contact-us/
  x-derived-from: https://dalcorpharma.com/wp-json/wp/v2
  x-derived-on: '2026-08-04'
  x-api-evangelist-note: Derived by the API Evangelist enrichment pipeline from the provider-published WordPress REST route index; not authored or endorsed by DalCor Pharmaceuticals.
servers:
- url: https://dalcorpharma.com/wp-json
  description: Production
security:
- {}
tags:
- name: Discovery
  description: Site index, namespace route index, content types, taxonomies and statuses
paths:
  /:
    get:
      operationId: getSiteIndex
      tags:
      - Discovery
      summary: Get the REST API site index
      description: Returns the site name, home URL, timezone, site icon and HAL `_links`. On dalcorpharma.com the `namespaces`, `authentication` and `routes` arrays are returned EMPTY — the root index is suppressed by the deployment. The per-namespace index at /wp/v2 is fully published, so discovery works there instead. Observed 2026-08-04.
      security:
      - {}
      responses:
        '200':
          description: Site index
          content:
            application/json:
              schema:
                type: object
                properties:
                  name:
                    type: string
                  description:
                    type: string
                  url:
                    type: string
                    format: uri
                  home:
                    type: string
                    format: uri
                  gmt_offset:
                    type: number
                  timezone_string:
                    type: string
                  namespaces:
                    type: array
                    items:
                      type: string
                  authentication:
                    type: array
                    items:
                      type: string
                  routes:
                    type: object
                  site_icon_url:
                    type: string
                    format: uri
              example:
                name: DalCor Pharmaceuticals
                url: https://dalcorpharma.com
                home: https://dalcorpharma.com
                timezone_string: America/Toronto
                namespaces: []
                authentication: []
                routes: {}
  /wp/v2:
    get:
      operationId: getNamespaceIndex
      tags:
      - Discovery
      summary: Get the wp/v2 namespace route index
      description: Returns every route registered in the wp/v2 namespace with its methods, arguments (types, defaults, enums, required flags) and `_links`. 118 routes observed on 2026-08-04. This is the machine-readable contract this OpenAPI was derived from.
      security:
      - {}
      responses:
        '200':
          description: Namespace route index
          content:
            application/json:
              schema:
                type: object
                properties:
                  namespace:
                    type: string
                  routes:
                    type: object
  /wp/v2/types:
    get:
      operationId: listTypes
      tags:
      - Discovery
      summary: List registered content types
      description: 14 types registered on 2026-08-04 — post, page, attachment plus WordPress and Elementor editorial internals. DalCor registers no custom content types; press releases are a category on `post`.
      security:
      - {}
      parameters:
      - $ref: '#/components/parameters/context'
      - $ref: '#/components/parameters/wpml_language'
      responses:
        '200':
          description: Content types keyed by slug
          content:
            application/json:
              schema:
                type: object
  /wp/v2/types/{type}:
    get:
      operationId: getType
      tags:
      - Discovery
      summary: Get a single content type
      security:
      - {}
      parameters:
      - name: type
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/context'
      responses:
        '200':
          description: A content type
          content:
            application/json:
              schema:
                type: object
        '404':
          $ref: '#/components/responses/InvalidType'
  /wp/v2/taxonomies:
    get:
      operationId: listTaxonomies
      tags:
      - Discovery
      summary: List registered taxonomies
      description: category, post_tag, nav_menu and wp_pattern_category observed on 2026-08-04.
      security:
      - {}
      parameters:
      - $ref: '#/components/parameters/context'
      - name: type
        in: query
        description: Limit results to taxonomies associated with a specific content type.
        schema:
          type: string
      responses:
        '200':
          description: Taxonomies keyed by slug
          content:
            application/json:
              schema:
                type: object
  /wp/v2/taxonomies/{taxonomy}:
    get:
      operationId: getTaxonomy
      tags:
      - Discovery
      summary: Get a single taxonomy
      security:
      - {}
      parameters:
      - name: taxonomy
        in: path
        required: true
        schema:
          type: string
      - $ref: '#/components/parameters/context'
      responses:
        '200':
          description: A taxonomy
          content:
            application/json:
              schema:
                type: object
        '404':
          $ref: '#/components/responses/InvalidTaxonomy'
  /wp/v2/statuses:
    get:
      operationId: listStatuses
      tags:
      - Discovery
      summary: List publicly queryable post statuses
      description: Only `publish` is exposed anonymously.
      security:
      - {}
      parameters:
      - $ref: '#/components/parameters/context'
      responses:
        '200':
          description: Statuses keyed by slug
          content:
            application/json:
              schema:
                type: object
  /oembed/1.0/embed:
    get:
      operationId: getOembed
      tags:
      - Discovery
      summary: Get the oEmbed representation of a URL on this site
      description: The oembed/1.0 namespace is registered and anonymously readable; the site also advertises the discovery links in its HTML head.
      security:
      - {}
      parameters:
      - name: url
        in: query
        required: true
        description: The URL of the resource on this site to embed.
        schema:
          type: string
          format: uri
      - name: format
        in: query
        schema:
          type: string
          default: json
          enum:
          - json
          - xml
      - name: maxwidth
        in: query
        schema:
          type: integer
          default: 600
      responses:
        '200':
          description: oEmbed document
          content:
            application/json:
              schema:
                type: object
components:
  responses:
    InvalidTaxonomy:
      description: Invalid taxonomy (`rest_taxonomy_invalid`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InvalidType:
      description: Invalid content type (`rest_type_invalid`).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    context:
      name: context
      in: query
      description: Scope under which the request is made; determines fields present in the response. `edit` requires authentication and returns 401 anonymously.
      schema:
        type: string
        default: view
        enum:
        - view
        - embed
        - edit
    wpml_language:
      name: wpml_language
      in: query
      description: WPML language code. The site publishes an English and a French edition; `en` returns 24 posts / 17 pages and `fr` returns 6 posts / 15 pages (observed 2026-08-04).
      schema:
        type: string
        enum:
        - en
        - fr
  schemas:
    Error:
      type: object
      description: The WordPress REST error envelope (not RFC 9457 problem+json).
      properties:
        code:
          type: string
          description: Machine-readable error slug.
        message:
          type: string
          description: Human-readable message, localized to the site language.
        data:
          type: object
          properties:
            status:
              type: integer
            params:
              type: object
            details:
              type: object
  securitySchemes:
    applicationPassword:
      type: http
      scheme: basic
      description: WordPress Application Passwords (RFC 7617 Basic over TLS). Required only for write and administrative routes, which are out of scope for this document — every operation modelled here returns 200 anonymously.