Santé Académie · OpenAPI Overlay 1.0.0

API Evangelist enhancements — Santé Académie Connector API

8 actions 8 updates servers extends ../openapi/santeacademie-connector-openapi.json
Generated by API Evangelist Written by API Evangelist tooling for Santé Académie's API. It is a proposal applied on top of the contract, not a document Santé Académie publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-api-evangelist-noteserverstitledescriptionx-upstream-placeholder-titlex-providercontactx-api-evangelist

Targets 7

$
$.info
$.paths['/connector/api/health-facility/search'].get
$.paths['/connector/api/pharmacy/search'].get
$.paths['/connector/api/search/article'].get
$.paths['/connector/api/search/topic'].get
$.paths['/connector/api/sitemap'].get

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements — Santé Académie Connector API
  version: 1.0.0
extends: ../openapi/santeacademie-connector-openapi.json
x-provenance:
  generated: '2026-08-17'
  method: generated
  source: openapi/santeacademie-connector-openapi.json + live probes of https://frontstage.santeacademie.com
  note: >-
    The upstream document is saved verbatim and never mutated. This swagger-php document ships NO servers[] block at
    all and an `info.title` of "api" with `info.description` "api description" — placeholder values the generator
    left in. The real host is the host that serves the document, https://frontstage.santeacademie.com, confirmed by
    a live anonymous 200 on GET /connector/api/faq returning Santé Académie's own French FAQ records.
actions:
- target: $
  description: Add the missing servers[] block. Upstream ships none, so the spec names no host at all.
  update:
    servers:
    - url: https://frontstage.santeacademie.com
      description: Production (the host that serves this specification)
- target: $.info
  description: Replace the generator's placeholder title and description with the real identity.
  update:
    title: Santé Académie Connector API
    description: >-
      Read-only JSON content/catalog API used by santeacademie.com and simulateur.santeacademie.com. Covers article
      and topic search, per-slug article/topic/resource/custom-catalog lookup, the FAQ, testimonial, profession,
      job-space and media-category lists, a sitemap feed, and pharmacy / health-facility lookup. No authentication
      is required; all fourteen operations are GET.
    x-upstream-placeholder-title: api
    x-provider: Santé Académie
    contact:
      name: Santé Académie
      url: https://www.santeacademie.com/
- target: $
  description: Record the observed runtime semantics the specification does not state.
  update:
    x-api-evangelist:
      authentication: none
      authentication_verified: anonymous GET /connector/api/faq returned HTTP 200 on 2026-08-17
      pagination: none — every operation returns an unbounded array or object; no page/limit parameter exists
      errors:
        media_type: application/json
        shape: bare JSON string
        example: '"Topic not found"'
        note: >-
          Not RFC 9457. A caller gets a quoted string, not an object, so there is no machine-readable error code or
          type to branch on — only the HTTP status. The sibling Frontstage API on the same host returns
          application/problem+json, so the two public APIs disagree on their error contract.
      rate_limits: none documented; no RateLimit-*, X-RateLimit-* or Retry-After header observed
      response_headers_observed: [cache-control, x-project-name, x-version-id]
      versioning: none a caller can pin; info.version is "1.0" and has never been incremented in the published doc
- target: $.paths['/connector/api/health-facility/search'].get
  description: >-
    Flag the generator artifact. swagger-php serialised the query object as a single required parameter named after
    its PHP class (HealthFacilitySearchQuery) rather than expanding its fields, so the spec cannot be used to build
    a valid request without reading the source.
  update:
    x-api-evangelist-note: >-
      Required query parameter is declared as the DTO class name HealthFacilitySearchQuery with no schema type. The
      individual query fields are not described anywhere public; treat the parameter shape as undocumented.
- target: $.paths['/connector/api/pharmacy/search'].get
  update:
    x-api-evangelist-note: >-
      Required query parameter is declared as the DTO class name PharmacySearchQuery with no schema type. Same
      generator artifact as health-facility/search; the field list is not described anywhere public.
- target: $.paths['/connector/api/search/article'].get
  update:
    x-api-evangelist-note: >-
      Required query parameter is declared as the DTO class name ArticleSearchQuery with no schema type.
- target: $.paths['/connector/api/search/topic'].get
  update:
    x-api-evangelist-note: >-
      Required query parameter is declared as the DTO class name TopicSearchQuery with no schema type.
- target: $.paths['/connector/api/sitemap'].get
  update:
    x-api-evangelist-note: >-
      Returns sitemap source data. This is the closest thing Santé Académie publishes to a bulk catalog feed and is
      the cheapest way for an agent to enumerate every topic and article slug before calling the per-slug lookups.