Corva AI · OpenAPI Overlay 1.0.0

API Evangelist enrichment overlay — Corva Data API

5 actions 5 updates servers extends ../openapi/corva-ai-data-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Corva AI's API. It is a proposal applied on top of the contract, not a document Corva AI publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

serversx-version-notex-documentationx-query-controls-docsx-limits-docsx-sibling-apix-agent-warningsx-pagination

Targets 4

$
$.info
$.paths['/api/v1/data/{provider}/{dataset}/'].get
$.paths['/api/legacy/v1/data']

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enrichment overlay — Corva Data API
  version: 1.0.0
extends: ../openapi/corva-ai-data-api-openapi.yml
x-generated: '2026-09-05'
x-method: generated
x-source: >-
  Enhancements API Evangelist derived from Corva's published documentation
  (https://dc-docs.corva.ai/docs/API/Core%20Concepts/*) and live probes on 2026-09-05. The original
  contract at https://data.corva.ai/api/v1/openapi.json is never mutated.
actions:
  - target: $
    description: >-
      Add the servers block the published contract omits. FastAPI emitted no servers array; the
      base is documented by Corva as "Data API — Base URL: https://data.corva.ai" and the contract
      itself is served from that host.
    update:
      servers:
        - url: https://data.corva.ai
          description: Corva Data API production
  - target: $.info
    description: >-
      Replace the untouched FastAPI default version with the real provenance, and link the
      documentation and sibling API.
    update:
      x-version-note: >-
        info.version is "0.1.0" — the FastAPI default, never set by Corva. It does not track the
        deployed service and must not be used for change detection.
      x-documentation: https://dc-docs.corva.ai/docs/API/API%20Reference/data-api
      x-query-controls-docs: https://dc-docs.corva.ai/docs/API/Core%20Concepts/query-controls
      x-limits-docs: https://dc-docs.corva.ai/docs/API/Core%20Concepts/limits-and-performance
      x-sibling-api:
        name: Corva Platform API
        base_url: https://api.corva.ai
        contract: https://api.corva.ai/documentation/swagger.json
        relationship: Resolve asset_id there first; it is the required filter for most reads here.
  - target: $.info
    description: Record the runtime semantics an agent needs before it writes.
    update:
      x-agent-warnings:
        idempotency: >-
          NONE. No Idempotency-Key header and no replay window across 26 mutating operations. A
          timed-out POST cannot be safely retried; a retry may duplicate up to 1,000 records.
        destructive_operations: >-
          DELETE /api/v1/data/{provider}/{dataset}/ deletes MANY records matching a query in one
          call. No restore, trash or undo operation exists anywhere in the API.
        dry_run: >-
          No dry-run parameter. GET /api/v1/data/{provider}/{dataset}/count/ is the closest
          rehearsal — count what a query matches before issuing it as a delete.
        rate_limits: >-
          Not published. 429 is documented in prose but declared on no operation, and no
          RateLimit-* or Retry-After header is documented.
  - target: $.paths['/api/v1/data/{provider}/{dataset}/'].get
    description: >-
      Document the pagination strategy Corva recommends in prose but does not express in the
      contract.
    update:
      x-pagination:
        style: offset with recommended timestamp cursor
        limit: Required, 1-10000.
        skip: Optional, defaults to 0, no documented ceiling.
        recommended: >-
          For large time-series exports, sort by timestamp ascending, take up to 10,000 records,
          record the last timestamp returned, then add timestamp {"$gt": last_timestamp} to the
          next query and stop on an empty array. Add a second stable sort field where timestamps
          can collide.
        response_header: 'Total — present when include_count is true.'
        docs: https://dc-docs.corva.ai/docs/API/Core%20Concepts/query-controls
  - target: $.paths['/api/legacy/v1/data']
    description: >-
      Mark the legacy family as deprecated. Corva names these paths "legacy" and tags them
      legacy-data but does not set the machine-readable deprecated flag on any of them, so no
      client or agent can detect it from the contract.
    update:
      x-deprecation-note: >-
        Path and tag both say legacy; the contract sets deprecated:false. No sunset date is
        published. Treat as deprecated and prefer /api/v1/data/.