Genialis · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Genialis Expressions API

9 actions 9 updates servers extends ../openapi/_original/genialis-base-openapi.yaml
Derived by API Evangelist Built from the contracts Genialis publishes. Genialis did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-consequencex-reversiblex-reversal-windowcontacttermsOfServicex-documentationx-spec-sourcex-version-caveat

Targets 7

$.info
$
$.paths['/api/data/bulk_delete']
$.paths['/api/collection/bulk_delete']
$.paths['/api/sample/bulk_delete']
$.paths['/about/versions']
$.paths['/api/variant']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Genialis Expressions API
  version: 1.0.0
extends: ../openapi/_original/genialis-base-openapi.yaml
x-generated: '2026-08-21'
x-method: generated
x-source: >-
  Derived from live probes of https://app.genialis.com on 2026-08-21 and from the
  artifacts in this repository. Every value below was observed or read from the
  provider's own material; nothing is invented. The original spec at
  openapi/genialis-base-openapi.yaml is never mutated.
actions:
- target: $.info
  description: >-
    The published spec sets no title beyond "Genialis base", no contact, no licence
    and leaves info.version at the drf-spectacular default 0.0.0. Supply the
    identity a consumer needs, and record what the version field actually is.
  update:
    contact:
      name: Genialis Support
      url: https://genialis.atlassian.net/servicedesk/customer/portal/3
      email: info@genialis.com
    termsOfService: https://www.genialis.com/terms-of-service/
    x-documentation: https://docs.genialis.com/resdk/
    x-spec-source: https://app.genialis.com/api/schema
    x-version-caveat: >-
      info.version is the drf-spectacular default "0.0.0" and does not identify the
      build. Live component versions are served at GET /about/versions.
- target: $
  description: >-
    The published spec declares no servers[]. Its paths are server-root relative and
    span /api, /rest-auth, /saml-auth, /about and /health_check, so a client that
    assumes an /api base silently receives the SPA shell with a 200 on the
    non-/api operations. Name the real server root.
  update:
    servers:
    - url: https://app.genialis.com
      description: >-
        Genialis Expressions production. Verified 2026-08-21: GET /api/data?limit=1
        -> 200 (count 29123); GET /about/versions -> 200.
- target: $
  description: Record the cross-cutting runtime semantics the contract omits.
  update:
    x-conventions:
      pagination:
        style: limit-offset
        params: [limit, offset]
        response_fields: [count, next, previous, results]
      sorting:
        param: ordering
      error_envelope: '{"error": "<message>"} | {"detail": "<message>"}'
      rfc9457: false
      idempotency: none
      dry_run: none
      rate_limit_headers: none
      anonymous_read: true
    x-agent-warning: >-
      app.genialis.com is an SPA catch-all. Unmatched paths return HTTP 200 with a
      1377-byte HTML shell rather than 404. Assert content-type application/json
      before treating any 200 as data.
- target: $
  description: >-
    The contract documents only 2xx responses across all 254 operations — not one
    4xx or 5xx. Attach the error shapes actually observed, as a reusable component,
    without touching any operation.
  update:
    components:
      responses:
        x-ObservedBadRequest:
          description: >-
            Observed 400. Bespoke envelope, not RFC 9457. Example captured live from
            GET /api/data?ordering=zzz.
          content:
            application/json:
              schema:
                type: object
                properties:
                  error:
                    type: string
              example:
                error: "Ordering by field 'zzz' is not supported."
        x-ObservedAuthFailure:
          description: >-
            Django REST Framework default envelope for 401/403. Not documented by
            Genialis and not confirmed on a live response.
          content:
            application/json:
              schema:
                type: object
                properties:
                  detail:
                    type: string
- target: $.paths['/api/data/bulk_delete']
  description: >-
    Flag the highest-consequence operation in the API. It has no idempotency key, no
    dry-run and no documented reversal — see conventions/genialis-conventions.yml.
  update:
    x-consequence: destructive
    x-reversible: false
    x-reversal-window: null
    x-agent-guidance: >-
      Requires explicit human confirmation. There is no restore endpoint for deleted
      data objects anywhere in the contract.
- target: $.paths['/api/collection/bulk_delete']
  update:
    x-consequence: destructive
    x-reversible: false
    x-reversal-window: null
- target: $.paths['/api/sample/bulk_delete']
  update:
    x-consequence: destructive
    x-reversible: false
    x-reversal-window: null
- target: $.paths['/about/versions']
  description: This is the platform's real version signal; mark it as such.
  update:
    x-version-endpoint: true
    x-observed-response: '{"resolwe":"45.1.0","resolwe-bio":"65.0.0","genialis-bio":"63.0.0"}'
    x-observed-on: '2026-08-21'
- target: $.paths['/api/variant']
  description: Record the domain-standard signature carried by the variant model.
  update:
    x-domain-standard: VCF v4.x call model (CHROM/POS/REF/ALT) with dbSNP and ClinVar identifier schemes

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/genialis-base-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.