Pynt · OpenAPI Overlay 1.0.0

API Evangelist enhancements for the Pynt API

8 actions 8 updates servers extends ../openapi/pynt-openapi.json
Derived by API Evangelist Built from the contracts Pynt publishes. Pynt did not publish this file.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-api-evangelist-notedescriptionx-reversibilitycontacttermsOfServicex-privacy-policyx-trust-centerx-documentation

Targets 7

$.info
$
$.components.securitySchemes['Bearer Token']
$.paths['/v1/scan/run-remote-scan'].post
$.paths['/v1/application/{application_id}'].delete
$.paths['/v1/notification-rules'].post
$.paths['/v1/postman/webhook'].post

OpenAPI Overlay

Raw ↑
overlay: 1.0.0
info:
  title: API Evangelist enhancements for the Pynt API
  version: 1.0.0
extends: ../openapi/pynt-openapi.json
x-provenance:
  generated: '2026-08-27'
  method: generated
  source: >-
    Authored by the API Evangelist enrichment pipeline from artifacts in this
    repo. Every value below is either an observed fact (base URL, live 401
    behavior, deprecated flags already in the spec) or a pointer to a repo
    artifact. Nothing here invents provider behavior.
  note: >-
    The upstream document at https://api.pynt.io/openapi.json is a FastAPI
    auto-generated spec with no servers[], no description, no contact, no
    licence, no tag descriptions, and only 422 declared on its error responses.
    This overlay records what would have to be added to make it usable by an
    agent, WITHOUT mutating openapi/_original/pynt-openapi.json.
actions:
  - target: $.info
    description: Give the contract a real description, contact and terms.
    update:
      description: >-
        The Pynt API drives the Pynt API security testing platform: register
        applications (API estates), attach discovery sources, run and schedule
        security scans, and read findings, risk scores, LLM false-positive and
        business-impact analyses, and generated pentest reports.
      contact:
        name: Pynt Support
        email: support@pynt.io
        url: https://www.pynt.io/contact-us
      termsOfService: https://www.pynt.io/terms
      x-privacy-policy: https://www.pynt.io/privacy-policy
      x-trust-center: https://www.pynt.io/trust-center
      x-documentation: https://docs.pynt.io/documentation
      x-api-evangelist-note: >-
        info.version "0.1.0" is the FastAPI application version, not a published
        API version. The API version is v1, carried in every path.
  - target: $
    description: >-
      Declare the production server. The upstream document ships no servers[]
      block at all, which leaves a consumer with a spec they cannot call.
    update:
      servers:
        - url: https://api.pynt.io
          description: >-
            Pynt production API. Confirmed live 2026-08-27: GET
            /v1/auth/check, /v1/application and /v1/scan/summary all return HTTP
            401 {"detail":"Unauthorized"} anonymously, and the spec itself is
            served from this host at /openapi.json with Swagger UI at /docs.
  - target: $
    description: Apply a default security requirement — the upstream spec has none at the root.
    update:
      x-api-evangelist-security-note: >-
        Every operation probed rejects anonymous requests with 401, so the API
        is effectively secured by default even though the root `security` key is
        absent. Operations declare their accepted schemes individually.
  - target: $.components.securitySchemes['Bearer Token']
    description: >-
      Flag a modelling defect. The Bearer Token scheme is declared as
      `apiKey in: header name: Authorization` rather than `http scheme: bearer`,
      so generated clients and scanners will not treat it as a bearer token.
    update:
      description: >-
        Modelled as an apiKey on the Authorization header. Semantically this is
        an HTTP bearer token; declaring it as `type: http, scheme: bearer` would
        let tooling handle it correctly.
  - target: $.paths['/v1/scan/run-remote-scan'].post
    description: Record reversibility, since scans are active tests against a live target.
    update:
      x-reversibility:
        reversal: abort_scan_v1_scan__scan_id__abort_post
        reversal_path: POST /v1/scan/{scan_id}/abort
        kind: cancel
        window: null
        grade: documented
        note: >-
          An in-flight scan can be aborted. No window and no statement about
          what a partially completed active security test leaves behind on the
          target is published. See conventions/pynt-conventions.yml.
  - target: $.paths['/v1/application/{application_id}'].delete
    description: Record that this write has no reversal.
    update:
      x-reversibility:
        reversal: null
        kind: irreversible
        note: >-
          No restore or undelete operation exists anywhere in the contract.
          Deleting an application is permanent as far as the published API is
          concerned.
  - target: $.paths['/v1/notification-rules'].post
    description: Record the delivery-target gap in the notification surface.
    update:
      x-api-evangelist-note: >-
        NotificationRuleCreate declares WHEN to notify (scan_status_triggers
        FAILED/SUCCESS, severity_levels) but carries no target URL, channel or
        transport field, and NotificationRuleOut returns only a rule_id. The
        delivery destination is owned by the Pynt web portal, outside this API,
        so an agent cannot subscribe an endpoint of its own. See
        asyncapi/pynt-webhooks.yml.
  - target: $.paths['/v1/postman/webhook'].post
    description: Clarify webhook direction.
    update:
      x-webhook-direction: inbound
      x-api-evangelist-note: >-
        This is a RECEIVER — Postman calls Pynt here with a RUN_SCAN event to
        trigger a collection scan. It is not a webhook an integrator subscribes
        to.
x-artifact-index:
  authentication: ../authentication/pynt-authentication.yml
  conventions: ../conventions/pynt-conventions.yml
  errors: ../errors/pynt-problem-types.yml
  lifecycle: ../lifecycle/pynt-lifecycle.yml
  data_model: ../data-model/pynt-data-model.yml
  conformance: ../conformance/pynt-conformance.yml
  webhooks: ../asyncapi/pynt-webhooks.yml
  rate_limits: ../rate-limits/pynt-rate-limits.yml
  plans: ../plans/pynt-plans-pricing.yml
  packages: ../packages/pynt-packages.yml
  cli: ../cli/pynt-cli.yml
  mcp: ../mcp/pynt-mcp.yml
  skills: ../skills/_index.yml

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/pynt-openapi-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.