CoreStack · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the CoreStack External API

6 actions 6 updates update extends openapi/corestack-external-api-openapi-original.json
Derived by API Evangelist Built from the contracts CoreStack publishes. CoreStack did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-profilex-spec-sourcex-spec-alias-sourcex-operationsx-pathsx-definitionsx-serversx-regional-environments

Targets 3

$.info
$
$.securityDefinitions

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the CoreStack External API
  version: 1.0.0
extends: openapi/corestack-external-api-openapi-original.json
x-generated: '2026-08-11'
x-method: generated
x-source: >-
  Derived from the live Swagger 2.0 document at https://api.corestack.io/swagger.json plus the
  provider's published API guide. The original is never mutated; every enhancement below is an
  additive action against it.
actions:
- target: $.info
  description: >-
    Record the API Evangelist provenance, the real host the specification is served from, and the
    facts the document itself omits.
  update:
    x-apievangelist-profile: https://apis.io/providers/corestack/
    x-spec-source: https://api.corestack.io/swagger.json
    x-spec-alias-source: https://api-discover.corestack.io/swagger.json
    x-operations: 838
    x-paths: 767
    x-definitions: 2891
- target: $
  description: >-
    The published document declares `basePath: /` with NO `host` and NO `schemes`, so it is not
    directly callable as harvested — a client must know the host out of band. Both hosts below serve
    a byte-comparable document and both answer POST /v1/auth/tokens.
  update:
    x-servers:
    - url: https://api.corestack.io
      description: Primary API host; serves /swagger.json.
    - url: https://api-discover.corestack.io
      description: >-
        The host used in every cURL example in the provider's API guide. Serves the same document
        (one path differs). Per the docs, the API URL is delivered per user by email at key issuance,
        so a tenant may be pointed at a regional host instead.
    x-regional-environments:
    - cloud
    - portal
    - mea
    - in
    - us3
- target: $.securityDefinitions
  description: >-
    The spec declares only X-Auth-Token. The documentation states X-Auth-User is required on every
    operation except the token endpoints. Recorded as an additive note rather than a schema edit,
    because adding a securityDefinition the provider did not publish would misrepresent the contract.
  update:
    x-undeclared-required-header:
      name: X-Auth-User
      description: Username of the tenant. Required on all operations except AuthToken and RefreshToken.
      source: https://docs.corestack.io/docs/corestack-api-modules
- target: $.info
  description: Runtime semantics the specification cannot express, captured for agent consumers.
  update:
    x-conventions: conventions/corestack-conventions.yml
    x-error-catalog: errors/corestack-problem-types.yml
    x-authentication: authentication/corestack-authentication.yml
    x-lifecycle: lifecycle/corestack-lifecycle.yml
    x-rate-limits: rate-limits/corestack-rate-limits.yml
    x-data-model: data-model/corestack-data-model.yml
    x-tool-crosswalk: mcp/corestack-tool-crosswalk.yml
- target: $.info
  description: >-
    Agent-safety annotations. 513 of 838 operations are POST, and the provider's own guide states
    POST is used both to create resources AND to fetch resources with complex parameters — so an
    agent cannot infer safety from the HTTP method. There is no idempotency mechanism, so a retried
    write has no defined behaviour.
  update:
    x-agent-safety:
      method-implies-safety: false
      post_operations: 513
      idempotency: none
      retry_guidance: >-
        Do not blind-retry a POST. Where the operation is a query (aggregation, list, batch, filter,
        summary), retry is safe. Where it creates, executes or remediates (create, execute, resolve,
        onboard, trigger, ingest, reject, confirm), a retry may duplicate the effect and there is no
        idempotency key to prevent it.
      destructive_families:
      - ExecutePolicy / ExecuteRecommendation — applies changes to live cloud resources
      - ExecuteTemplate — runs automation against cloud accounts
      - BudgetCreate / BudgetUpdate / Delete Budget
      - Cloud account onboarding and deletion under /governance/account
      - IngestContainerFindings — writes security findings
- target: $.info
  description: >-
    Specification-quality findings recorded for the provider. These are observations about the
    published document, not changes to it.
  update:
    x-spec-quality:
      operations_with_operation_id: 838
      unique_operation_ids: 838
      operations_with_summary: 829
      operations_with_description: 823
      operations_declaring_400: 836
      operations_declaring_401: 838
      operations_declaring_500: 838
      findings:
      - >-
        Excellent identifier and response coverage — every operation has a unique operationId and
        declares 401/500, which is rare at this size.
      - >-
        Placeholder operationIds in several families (batch@@@11, get@@@12, create@@@9, remove@@@5,
        set-state@@@6) and one containing a space ("Delete Budget"). Unique, but not usable as stable
        client symbols and not valid identifiers in most generated SDKs.
      - >-
        Every error response resolves to a single-field ModelError {message}. Only 5 operations
        return the structured ValidationResults shape.
      - >-
        A typo in a published response description: "lInternal Server Error".
      - >-
        Swagger 2.0 in 2026. Migrating to OpenAPI 3.1 would let the document express its multiple
        hosts, its webhook callbacks and its per-operation examples.
      - No operation is marked `deprecated: true`, despite a documented deprecation practice.

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/corestack-external-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.