Salesgraph · OpenAPI Overlay 1.0.0

API Evangelist enhancements for Salesgraph REST API

6 actions 6 updates update extends openapi/_original/salesgraph-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Salesgraph's API. It is a proposal applied on top of the contract, not a document Salesgraph publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-agent-notex-apievangelist-provenancex-mcp-serverx-agent-cardx-status-apix-response-media-typex-async-modelx-idempotency

Targets 5

$.info
$.paths['/api/status'].get
$.paths['/api/v1/oms/watches'].post
$.paths['/api/v1/oms/actions'].post
$.paths['/api/v1/oms/get'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for Salesgraph REST API
  version: 1.1.0
extends: openapi/_original/salesgraph-openapi.yml
x-provenance:
  generated: '2026-08-13'
  method: generated
  source: openapi/_original/salesgraph-openapi.yml
  applies_to:
    - openapi/salesgraph-commands-api-openapi.yml
    - openapi/salesgraph-runs-api-openapi.yml
    - openapi/salesgraph-audit-api-openapi.yml
    - openapi/salesgraph-oms-api-openapi.yml
    - openapi/salesgraph-status-api-openapi.yml
actions:
  - target: $.info
    update:
      x-apievangelist-provenance: >
        Spec generated by the API Evangelist enrichment pipeline from the published Salesgraph
        REST API reference (docs.salesgraph.com/reference/rest-api) and the provider's Agent
        Skill at docs.salesgraph.com/.well-known/agent-skills/salesgraph/skill.md; the provider's
        own /api-reference/openapi.json is still a Mintlify "OpenAPI Plant Store" placeholder
        (re-probed 2026-08-13).
      x-mcp-server: https://salesgraph.com/api/mcp
      x-agent-card: https://docs.salesgraph.com/.well-known/agent-card.json
      x-status-api: https://salesgraph.com/api/status
  - target: $.info
    update:
      x-response-media-type: >
        text/markdown on command endpoints; application/json on OMS endpoints and on /api/status
      x-async-model: run-and-poll (X-Run-Id / X-Run-Status headers; poll /api/v1/runs/{kind}/{id})
      x-idempotency: >
        idempotencyKey body field on OMS watch creation only; no Idempotency-Key header and no
        idempotency contract on the command endpoints
      x-pagination: >
        opaque cursor; pageToken/nextPageToken on OMS object pages, cursor/nextCursor on OMS
        watch pages, null terminates
      x-rate-limit-signal: >
        HTTP 429 per organization; no limit, window, Retry-After or RateLimit-* header is
        published
  - target: $.paths['/api/status'].get
    update:
      x-unauthenticated: true
      x-agent-note: >
        The only Salesgraph operation callable without an API key. An agent should read it before
        reporting a Salesgraph outage, since the MCP server itself cannot answer when it is down.
  - target: $.paths['/api/v1/oms/watches'].post
    update:
      x-idempotency-field: idempotencyKey
      x-cost-cap-field: monthlyCostCapMicros
      x-agent-note: >
        Always send idempotencyKey — this is the single idempotency contract Salesgraph
        publishes, and a retry without it creates a duplicate watch.
  - target: $.paths['/api/v1/oms/actions'].post
    update:
      x-human-in-the-loop: required
      x-agent-note: >
        The 202 means the request is queued for a person to approve, not that the write
        succeeded. Nothing is applied to the organization's records until approval.
  - target: $.paths['/api/v1/oms/get'].post
    update:
      x-key-form: 'public key (e.g. domain:acme.com), never an internal primary key'