Secureframe · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Secureframe Public API

11 actions 11 updates documentation extends ../openapi/secureframe-public-api-openapi.yml
Derived by API Evangelist Built from the contracts Secureframe publishes. Secureframe did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

deprecatedx-replaced-byx-reversibilityx-api-version-schemex-api-dated-versionx-mcp-serverx-mcp-documentationx-status-page

Targets 11

$.info
$.servers
$.components.securitySchemes.header_authorization
$
$.paths['/vendors'].get
$.paths['/vendors/{id}'].get
$.paths['/vendors/{id}/archive'].put
$.paths['/tprm/vendors/{id}/archive'].put
$.paths['/poam_items/{id}/discard'].put
$.paths['/file_uploads'].post
$.tags

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Secureframe Public API
  version: 1.0.0
extends: ../openapi/secureframe-public-api-openapi.yml
x-provenance:
  generated: '2026-08-27'
  method: generated
  source: >-
    Authored by API Evangelist from findings recorded in conventions/, lifecycle/,
    errors/, rate-limits/ and mcp/secureframe-tool-crosswalk.yml. Applies our
    enhancements without mutating the harvested Secureframe contract.
  note: >-
    Every action below corrects something the published spec states in PROSE but not
    in the machine-readable contract. Nothing here invents behaviour; each action cites
    where Secureframe already says it.
actions:
  - target: $.info
    description: >-
      Record the machine-readable contact and licence facts the spec omits, and pin the
      dated API version Secureframe's own versioning table names.
    update:
      x-api-version-scheme: dated
      x-api-dated-version: '2023-10-18'
      x-mcp-server: https://mcp.secureframe.com/
      x-mcp-documentation: https://mcp.secureframe.com/mcp_docs
      x-status-page: https://status.secureframe.com/
      x-trust-center: https://trust.secureframe.com/

  - target: $.servers
    description: >-
      Label the two published regional servers. Secureframe's MCP docs and its archived
      SDK both name the UK host as a data-residency peer of the US host, but the spec
      lists them bare.
    update:
      - url: https://api.secureframe.com
        description: United States data region (default)
        x-region: us
      - url: https://api-uk.secureframe.com
        description: United Kingdom data region
        x-region: uk

  - target: $.components.securitySchemes.header_authorization
    description: >-
      The scheme is declared as a bare apiKey in the Authorization header, which leads
      every generator to emit a single opaque value. The reference prose specifies TWO
      space-separated values.
    update:
      description: >-
        Send the API key and its secret in one header, separated by a single space:
        `Authorization: <YOUR_API_KEY> <YOUR_KEY_SECRET>`. This is NOT a Bearer token and
        NOT Basic auth. Keys are issued per company <> user in Console -> Your Profile ->
        Company settings -> API keys; the secret is displayed once at creation. The key
        inherits the RBAC role of the user it belongs to, so a valid key can still return
        403 on a resource that user cannot see.
      x-format: '<api_key> <api_secret>'
      x-issued-per: company-user pair
      x-permission-model: rbac-inherited

  - target: $
    description: >-
      Apply the security scheme globally. The harvested spec declares the scheme but sets
      no top-level `security`, so a generated client is free to call every operation
      anonymously — which returns 401 on all 112.
    update:
      security:
        - header_authorization: []

  - target: $.paths['/vendors'].get
    description: >-
      Mark deprecated in the contract, not only in the description prose. Secureframe's own
      text reads "[DEPRECATED - Use the Third Party Risk Management Vendor endpoint]".
    update:
      deprecated: true
      x-replaced-by: tprmVendorRiskDetailsIndex

  - target: $.paths['/vendors/{id}'].get
    description: Mark deprecated in the contract; superseded by the TPRM vendor surface.
    update:
      deprecated: true
      x-replaced-by: tprmVendorRiskDetailsShow

  - target: $.paths['/vendors/{id}/archive'].put
    description: Mark deprecated in the contract; superseded by the TPRM vendor surface.
    update:
      deprecated: true
      x-replaced-by: tprmVendorRiskDetailsArchive

  - target: $.paths['/tprm/vendors/{id}/archive'].put
    description: >-
      Record reversibility semantics. Archiving is a soft removal — GET /tprm/vendors
      accepts an `archived` filter, so the record stays queryable — but Secureframe
      publishes no un-archive operation and no retention window.
    update:
      x-reversibility:
        kind: soft-archive
        reversible-via-api: false
        window: null
        recoverable-evidence: 'GET /tprm/vendors?archived=true still returns the record'

  - target: $.paths['/poam_items/{id}/discard'].put
    description: >-
      Record reversibility semantics for the POA&M register. Discard is soft — GET
      /poam_items accepts a `discarded` filter — but no un-discard operation is published.
    update:
      x-reversibility:
        kind: soft-discard
        reversible-via-api: false
        window: null
        recoverable-evidence: 'GET /poam_items?discarded=true still returns the item'

  - target: $.paths['/file_uploads'].post
    description: >-
      Carry the two expiry windows and the size ceiling into the contract. Secureframe
      publishes them in the create_file_upload MCP tool description, not in the OpenAPI.
    update:
      x-upload-handshake:
        steps: 3
        max-size-bytes: 33554432
        url-expires-after: 15 minutes
        id-expires-after: 1 hour
        id-redeemable: once
        redeemed-by:
          - companyTestsEvidencesCreate
          - companyUsersEvidencesCreate
          - trustCenterRequestsUpdate
        source: https://mcp.secureframe.com/mcp_docs

  - target: $.tags
    description: >-
      Flag the legacy Vendor tag so tooling that groups by tag can surface the
      supersession rather than presenting two equal vendor surfaces.
    update:
      - name: Vendor
        description: >-
          DEPRECATED. Legacy vendor surface, superseded by the Third Party Risk Management
          Vendor tag. Retained for existing integrations.
        x-deprecated: true
        x-replaced-by: Third Party Risk Management Vendor

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/secureframe-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.