Skyvia · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Skyvia Public API

12 actions 12 updates servers extends openapi/_original/skyvia-public-api-openapi-original.json
Derived by API Evangelist Built from the contracts Skyvia publishes. Skyvia did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-semanticsx-apievangelist-idempotencyx-apievangelist-sourcex-apievangelist-harvestedx-apievangelist-profileserversx-apievangelist-error-envelopex-apievangelist-pagination

Targets 8

$.info
$
$.components.securitySchemes['Access Token']
$.paths['/v1/workspaces/{workspaceId}/endpoints/{endpointId}'].get
$.paths['/v1/workspaces/{workspaceId}/connections/{connectionId}/test'].post
$.paths['/v1/workspaces/{workspaceId}/agents/{agentId}/test'].post
$.paths['/v1/workspaces/{workspaceId}/integrations/{integrationId}/executions'].post
$.paths['/v1/workspaces/{workspaceId}/backups/{backupId}/snapshots'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Skyvia Public API
  version: 1.0.0
  x-description: >-
    Captures the enhancements API Evangelist applied when refining Skyvia's published Swagger document
    (https://api.skyvia.com/swagger/v1/swagger.json) into the eight per-tag OpenAPI files in openapi/. The
    harvested original is preserved unmodified at
    openapi/_original/skyvia-public-api-openapi-original.json. Every action below records something the
    published spec omits and that we could establish from Skyvia's own documentation or from live probes —
    nothing here invents API behaviour.
extends: openapi/_original/skyvia-public-api-openapi-original.json
x-generated: '2026-08-12'
x-method: generated
x-source: openapi/_original/skyvia-public-api-openapi-original.json
actions:
- target: $.info
  description: >-
    Attribute the source and record that the document was harvested from Skyvia's live Swagger endpoint.
  update:
    x-apievangelist-source: https://api.skyvia.com/swagger/v1/swagger.json
    x-apievangelist-harvested: '2026-08-12'
    x-apievangelist-profile: https://github.com/api-evangelist/skyvia
- target: $
  description: >-
    Add the servers[] block the published document omits entirely. The host is established from the Swagger
    UI location (https://api.skyvia.com/swagger/index.html), from the API reference, and from live 403
    responses carrying the Skyvia error envelope at https://api.skyvia.com/v1/*.
  update:
    servers:
    - url: https://api.skyvia.com
      description: Skyvia public API
- target: $.info
  description: >-
    Record the error envelope the API actually returns. The published spec declares no 4xx or 5xx response
    on any of its 52 operations; this envelope was observed live and unauthenticated on 2026-08-12.
  update:
    x-apievangelist-error-envelope:
      documented_by_provider: false
      observed: true
      content_type: application/json
      shape: '{ "errorCode": integer, "errors": object, "message": string, "refresh": boolean }'
      example: '{"errorCode":403,"errors":{},"message":"Authorization header is missing or invalid.","refresh":false}'
      catalog: errors/skyvia-problem-types.yml
- target: $.info
  description: >-
    Record the pagination convention, which is consistent across all 12 list operations but never described
    in the spec or the reference.
  update:
    x-apievangelist-pagination:
      style: offset
      parameters: [skip, take]
      envelope: '{ "data": [...], "hasMore": boolean }'
      schema_suffix: HasMorePagingDto
      total_count: false
      cursor: false
      documented: conventions/skyvia-conventions.yml
- target: $.components.securitySchemes['Access Token']
  description: >-
    Bind the single apiKey scheme to Skyvia's documented token model — scoped permissions selected at
    creation, and a maximum lifetime of one year. Neither fact appears in the spec.
  update:
    x-apievangelist-token-model:
      issuance: Account Settings > API Settings
      max_lifetime: 1 year
      scoped: true
      scopes_are_in_spec: false
      scope_catalog: scopes/skyvia-scopes.yml
      docs: https://docs.skyvia.com/account-management/api-settings.html
      observed_failure_status: 403
      www_authenticate: false
- target: $.paths['/v1/workspaces/{workspaceId}/endpoints/{endpointId}'].get
  description: >-
    Flag that EndpointDto.type enumerates only OData and Sql, while Skyvia Connect has shipped MCP endpoints
    since 2025 — so this operation cannot represent every endpoint that exists in a workspace.
  update:
    x-apievangelist-coverage-gap:
      issue: EndpointDto.type enum omits the MCP endpoint type shipped in the product
      enum_in_spec: [OData, Sql]
      product_types: [OData, Sql, MCP]
      evidence: https://docs.skyvia.com/connect/mcp-endpoints/
- target: $.paths['/v1/workspaces/{workspaceId}/connections/{connectionId}/test'].post
  description: >-
    Record that this operation reports failure in the 200 body rather than by status code — a caller must
    read ApiResult.message, not the HTTP status, to know whether the test passed.
  update:
    x-apievangelist-semantics:
      failure_signalled_in_body: true
      field: message
      status_on_failure: 200
- target: $.paths['/v1/workspaces/{workspaceId}/agents/{agentId}/test'].post
  description: Same 200-on-failure semantics as the connection test operation.
  update:
    x-apievangelist-semantics:
      failure_signalled_in_body: true
      field: message
      status_on_failure: 200
- target: $.paths['/v1/workspaces/{workspaceId}/integrations/{integrationId}/executions'].post
  description: >-
    Flag the absence of an idempotency contract on an operation that starts billable work. A retry after a
    timeout can start a second integration run.
  update:
    x-apievangelist-idempotency:
      supported: false
      header: null
      risk: A retried request can start a duplicate integration run and consume the records quota twice.
      documented: conventions/skyvia-conventions.yml
- target: $.paths['/v1/workspaces/{workspaceId}/backups/{backupId}/snapshots'].post
  description: Same idempotency risk on snapshot creation.
  update:
    x-apievangelist-idempotency:
      supported: false
      header: null
      risk: A retried request can create a duplicate snapshot and consume backup storage twice.
- target: $.info
  description: >-
    Record the two spec-content gaps that most affect machine consumption, so a follow-up with Skyvia has
    something concrete to reference.
  update:
    x-apievangelist-contract-gaps:
    - No operationId on any of the 52 operations — generated clients get positional names and nothing can reference an operation stably.
    - No servers[] block, so the spec is not directly executable.
    - Summaries on only 12 of 52 operations; no operation-level descriptions.
    - No 4xx or 5xx responses declared anywhere.
    - No examples in the document.
    - No rate-limit headers or 429 declared.
- target: $.info
  description: Note the split-by-tag refinement applied when producing the openapi/ files.
  update:
    x-apievangelist-refinement:
      method: split-by-tag
      files: 8
      tags: [Account, Agents, Automations, Backups, Connections, Endpoints, Integrations, Workspaces]
      note: >-
        Each per-tag file carries only the component schemas reachable from its own operations, plus the
        shared securitySchemes and the added servers[] block. Path items, operations, parameters and schema
        bodies are byte-faithful to the harvested original.

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/skyvia-public-api-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.