Graphiant · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Graphiant Portal REST API

6 actions 6 updates documentation extends ../openapi/_original/graphiant-portal-openapi-original.json
Derived by API Evangelist Built from the contracts Graphiant publishes. Graphiant did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-slugx-apievangelist-enrichedx-apievangelist-sourcex-api-bundle-versionx-contact-docsx-api-referencex-status-pagex-sla

Targets 3

$.info
$.servers[0]
$.components.securitySchemes.jwtAuth

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Graphiant Portal REST API
  version: 1.0.0
extends: ../openapi/_original/graphiant-portal-openapi-original.json
x-provenance:
  generated: '2026-08-01'
  method: generated
  source: openapi/graphiant-portal-openapi-original.json
  note: >-
    Captures the API Evangelist enrichment pass over the harvested Graphiant bundle
    without mutating it. The harvested spec is verbatim from
    Graphiant-Inc/graphiant-sdk-python@main api/graphiant_api_docs_v26.7.0.json. This
    overlay records catalog metadata, the runtime semantics Graphiant documents in prose
    but does not encode in the contract, and the three structural gaps the enrichment
    pass found — no operationIds, no tags, no operation summaries. It deliberately does
    NOT synthesise 525 operationIds or tag every operation: those are provider decisions,
    and inventing them here would create identifiers the provider does not honour.
actions:
- target: $.info
  update:
    x-apievangelist-slug: graphiant
    x-apievangelist-enriched: '2026-08-01'
    x-apievangelist-source: https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/api/graphiant_api_docs_v26.7.0.json
    x-api-bundle-version: 26.7.0
    x-contact-docs: https://docs.graphiant.com/docs/graphiant-portal-rest-api
    x-api-reference: https://docs.graphiant.com/apidocs
    x-status-page: https://status.graphiant.io/
    x-sla: https://docs.graphiant.com/docs/graphiant-service-level-agreements-sla
    x-trust-center: https://trust.graphiant.com/
    x-changelog: https://github.com/Graphiant-Inc/graphiant-sdk-python/blob/main/CHANGELOG.md
- target: $.info
  update:
    x-apievangelist-artifacts:
      authentication: authentication/graphiant-authentication.yml
      conventions: conventions/graphiant-conventions.yml
      errors: errors/graphiant-problem-types.yml
      lifecycle: lifecycle/graphiant-lifecycle.yml
      changelog: changelog/graphiant-changelog.yml
      data_model: data-model/graphiant-data-model.yml
      conformance: conformance/graphiant-conformance.yml
      packages: packages/graphiant-packages.yml
      cli: cli/graphiant-cli.yml
      webhooks: asyncapi/graphiant-notifications-webhooks.yml
      mcp: mcp/graphiant-mcp.yml
      tool_crosswalk: mcp/graphiant-tool-crosswalk.yml
      skills: skills/_index.yml
- target: $.info
  update:
    x-runtime-semantics:
      auth_model: opaque bearer token in the `authorization` header
      token_endpoint: POST /v1/auth/login
      token_lifetime_seconds: 1800
      token_refresh_endpoint: GET /v1/auth/refresh
      token_revocation_endpoint: POST /v1/auth/logout
      idempotency: none — no Idempotency-Key contract on any unsafe method
      pagination: none — list operations return the full collection
      rate_limit_signalling: none documented
      request_id_header: none
      error_envelope: 'proprietary: {errorCode, displayError, detailedError}'
      timestamp_encoding: protobuf Timestamp objects {seconds, nanos}, UTC — not RFC 3339
      async_writes: device configuration returns {jobId}; HTTP 200 means accepted, not
        applied
      tenancy: session-scoped enterprise context switched via GET /v1/auth/session
- target: $.info
  update:
    x-contract-gaps:
      operation_ids: 0 of 525 operations declare an operationId
      tags: 0 of 525 operations declare a tag; the document declares an empty tags array
      summaries: 0 of 525 operations declare a summary
      descriptions: 340 of 525 operations declare a description
      error_responses: only 24 of 525 operations declare any 4xx or 5xx response
      error_schemas: only 4 error responses reference a schema
      examples: no request or response examples at the operation level
      impact: >-
        Without operationIds the generated SDKs fall back to path-derived method names
        (v1_edges_summary_get), which become the de-facto operation identifiers used by
        the CLI, the SDKs, this catalog and any tool layer built on top. They are stable
        only while the path and method are stable.
      remediation_for_graphiant: >-
        Adding operationId, tags and summary to the source bundle would improve every
        downstream generated artifact at once — SDK method names, docs navigation, MCP
        tool naming — without any behavioural change to the API.
- target: $.servers[0]
  update:
    description: Graphiant Portal production API. Returns 403 to every anonymous
      request, including /.well-known/* paths.
- target: $.components.securitySchemes.jwtAuth
  update:
    x-token-endpoint: POST /v1/auth/login
    x-token-lifetime-seconds: 1800
    x-token-refresh: GET /v1/auth/refresh
    x-token-revocation: POST /v1/auth/logout
    x-token-format: opaque, `gr-auth-` prefix followed by two UUIDs
    x-single-header-warning: >-
      send exactly one Authorization header; the generated clients warn that setting
      both Configuration.api_key and the per-call authorization argument produces
      duplicate headers that some gateways reject with 400

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/graphiant-portal-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.