A-Alpha Bio · OpenAPI Overlay 1.0.0

API Evangelist enhancements — A-Alpha Bio Atlas Data Product API

12 actions 12 updates servers extends openapi/a-alpha-bio-atlas-datasets-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for A-Alpha Bio's API. It is a proposal applied on top of the contract, not a document A-Alpha Bio publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-anonymous-accessx-evidencedescriptioncontactx-api-evangelistserverstagsx-anonymous-note

Targets 10

$.info
$
$.paths['/api/v1/datasets'].get
$.paths['/api/v1/datasets/{id}'].get
$.paths['/api/v1/datasets/{id}/datacard'].get
$.paths['/api/v1/datasets/{id}/data'].get
$.paths['/api/v1/datasets/{id}/schema'].get
$.paths['/api/v1/datasets/{id}/structures'].get
$.components.securitySchemes.HTTPBearer
$.components.schemas.DatasetItem.properties.url

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements — A-Alpha Bio Atlas Data Product API
  version: 1.0.0
x-generated: '2026-08-06'
x-method: generated
x-source: openapi/a-alpha-bio-atlas-data-product-openapi-original.json
x-note: >-
  Captures API Evangelist's additions to the harvested specification. The harvested document at
  openapi/a-alpha-bio-atlas-data-product-openapi-original.json is never mutated. Everything asserted here was either
  observed on the live API on 2026-08-06 or derived from the specification itself.
extends: openapi/a-alpha-bio-atlas-datasets-openapi.yml
actions:
- target: $.info
  description: >-
    Add a description, contact and provenance to an info block that carried only a title and a 0.0.x build number.
  update:
    description: >-
      The HTTP API behind Atlas, A-Alpha Bio's protein-protein interaction data platform. Nine read operations over
      Atlas "Data Blocks" — versioned datasets of quantitative binding measurements produced on the AlphaSeq
      yeast-mating platform. Dataset discovery, dataset metadata and structured Data Cards answer anonymously; CSV
      data, CSV schemas and structure (.cif) files require an HTTP bearer token obtained through Atlas sign-in.
    contact:
      name: A-Alpha Bio
      url: https://www.aalphabio.com/contact/
    x-api-evangelist:
      profile: https://github.com/api-evangelist/a-alpha-bio
      harvested: '2026-08-06'
      harvested_from: https://api.atlas.aalphabio.com/openapi.json
- target: $
  description: >-
    Declare the production server. The harvested document ships no servers[] at all, so a generated client has no base
    URL. The host below is the one that serves this very specification and every /api/v1 path, and is named in the
    preconnect hint of the Atlas SPA shell at https://atlas.aalphabio.com/.
  update:
    servers:
    - url: https://api.atlas.aalphabio.com
      description: Atlas Data Product API production host
- target: $
  description: >-
    Declare the single tag used by every operation. The harvested document tags all nine operations "Datasets" but
    never declares the tag, so no description reaches a docs renderer.
  update:
    tags:
    - name: Datasets
      description: >-
        Atlas Data Blocks — dataset discovery, metadata, Data Cards, CSV data, CSV schema and structure (.cif) files.
- target: $.paths['/api/v1/datasets'].get
  description: >-
    Record the observed anonymous-access behaviour. This is the single most consequential undocumented fact about the
    API: with the default flags an unauthenticated caller receives an EMPTY objects array, and the public licensable
    catalogue only appears when include_locked=true is set.
  update:
    x-anonymous-access: true
    x-anonymous-note: >-
      Verified 2026-08-06 — returns 200 with no Authorization header. With default flags the result is
      {"objects":[]}. Pass include_locked=true (and include_coming_soon=true for teasers) to retrieve the public
      catalogue; 16 records were returned on that date.
    x-evidence:
      url: https://api.atlas.aalphabio.com/api/v1/datasets?include_locked=true&include_coming_soon=true
      http_status: 200
      fetched: '2026-08-06'
      example_file: examples/a-alpha-bio-list-datasets-response.json
- target: $.paths['/api/v1/datasets/{id}'].get
  update:
    x-anonymous-access: true
    x-evidence:
      url: https://api.atlas.aalphabio.com/api/v1/datasets/ab1001
      http_status: 200
      fetched: '2026-08-06'
      example_file: examples/a-alpha-bio-get-dataset-response.json
- target: $.paths['/api/v1/datasets/{id}/datacard'].get
  update:
    x-anonymous-access: true
    x-evidence:
      url: https://api.atlas.aalphabio.com/api/v1/datasets/ab1001/datacard
      http_status: 200
      fetched: '2026-08-06'
      example_file: examples/a-alpha-bio-get-dataset-datacard-response.json
- target: $.paths['/api/v1/datasets/{id}/data'].get
  description: Record that this operation is entitlement-gated and what the gate returns.
  update:
    x-anonymous-access: false
    x-evidence:
      url: https://api.atlas.aalphabio.com/api/v1/datasets/ab1001/data
      http_status: 401
      body: '{"detail":"Missing token"}'
      fetched: '2026-08-06'
- target: $.paths['/api/v1/datasets/{id}/schema'].get
  update:
    x-anonymous-access: false
    x-evidence:
      url: https://api.atlas.aalphabio.com/api/v1/datasets/ab1001/schema
      http_status: 401
      body: '{"detail":"Missing token"}'
      fetched: '2026-08-06'
- target: $.paths['/api/v1/datasets/{id}/structures'].get
  update:
    x-anonymous-access: false
    x-evidence:
      url: https://api.atlas.aalphabio.com/api/v1/datasets/ab1001/structures
      http_status: 401
      body: '{"detail":"Missing token"}'
      fetched: '2026-08-06'
- target: $.components.securitySchemes.HTTPBearer
  description: >-
    Name the token issuer. The harvested scheme says only "http/bearer", which tells a developer nothing about how to
    obtain one.
  update:
    bearerFormat: JWT
    description: >-
      AWS Cognito access token. Obtained through the Cognito hosted-UI authorization-code flow that the Atlas web
      client runs (scopes openid, email, profile, aws.cognito.signin.user.admin), or through the browser-assisted
      login-code flow at https://atlas.aalphabio.com/cli-login for the Atlas CLI client.
    x-source: https://atlas.aalphabio.com/assets/App-DfcS_Q-d.js
- target: $.components.schemas.DatasetItem.properties.url
  description: >-
    Flag a stale example. The harvested example points at a legacy host that is not the one live responses return.
  update:
    x-observed-example: https://atlas.aalphabio.com/dataset/ab1001
    x-note: >-
      The specification's example uses https://data.aalphabio.tools/dataset/ab1001, but live responses on 2026-08-06
      returned https://atlas.aalphabio.com/dataset/<id>. Treat the specification example as stale.
- target: $
  description: >-
    Record the undocumented liveness endpoint the API host actually serves, and the error-envelope shape, so an agent
    reading only the spec is not surprised by either.
  update:
    x-undocumented-endpoints:
    - path: /health
      method: get
      http_status: 200
      body: '{"status":"ok"}'
      note: Answers publicly but does not appear in paths.
    x-error-envelope:
      format: vendor-json
      media_type: application/json
      rfc9457: false
      shape: '{"detail": <string>}, except 422 where detail is an array of Pydantic ValidationError objects'
      see: errors/a-alpha-bio-problem-types.yml