ToolAssay

Compare two public OpenAPI or Swagger contracts and determine whether the API up

Compare two public OpenAPI or Swagger contracts and determine whether the API update contains directly observable breaking compatibility changes. Detects removed operations, newly required request inputs, narrowed inline enums, removed content types or successful responses and tightened authentication; unsupported compatibility questions remain unknown. No API operation is executed. Base mainnet USDC

Answeringour last check, 2026-10-10
1 of 1checks answered this week
925 msmedian answer time
$0.004listed price per call
$0.004price it asked us

Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.

Endpoint

POST https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/openapi/breaking-change

CategoryCode and developer
Provider hosthttp--forest-gas-station-mainnet--lcjl27p8lmjs.code.run
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days2 from 2 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-10 valid payment request 402$0.004 925 ms

Example input (from the provider)

{
  "body": {
    "after_url": "https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/openapi.json",
    "before_url": "https://http--forest-gas-station-mainnet--lcjl27p8lmjs.code.run/openapi.json"
  },
  "bodyType": "json",
  "method": "POST",
  "type": "http"
}

Promised output schema (from the provider)

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "properties": {
    "input": {
      "additionalProperties": false,
      "properties": {
        "body": {
          "additionalProperties": false,
          "properties": {
            "after_url": {
              "description": "Public after url value used to scope this lookup.",
              "maxLength": 2048,
              "minLength": 1,
              "pattern": "^https?://",
              "type": "string"
            },
            "before_url": {
              "description": "Public before url value used to scope this lookup.",
              "maxLength": 2048,
              "minLength": 1,
              "pattern": "^https?://",
              "type": "string"
            }
          },
          "required": [
            "before_url",
            "after_url"
          ],
          "type": "object"
        },
        "bodyType": {
          "enum": [
            "json",
            "form-data",
            "text"
          ],
          "type": "string"
        },
        "method": {
          "enum": [
            "POST"
          ],
          "type": "string"
        },
        "type": {
          "const": "http",
          "type": "string"
        }
      },
      "required": [
        "type",
        "method",
        "bodyType",
        "body"
      ],
      "type": "object"
    },
    "output": {
      "properties": {
        "example": {
          "additionalProperties": false,
          "properties": {
            "capability": {
              "const": "openapi.breaking-change",
              "description": "Public capability value used to scope this lookup."
            },
            "data": {
              "additionalProperties": false,
              "description": "Public data value used to scope this lookup.",
              "properties": {
                "after_fingerprint_scope": {
                  "description": "Public after fingerprint scope value used to scope this lookup.",
                  "enum": [
                    "machine_contract_structure",
                    "simple_yaml_operation_summary",
                    "unavailable"
                  ]
                },
                "after_hash": {
                  "description": "Public before hash value used to scope this lookup.",
                  "pattern": "^[a-fA-F0-9]{64}$",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "after_operation_count": {
                  "description": "Public after operation count value used to scope this lookup.",
                  "minimum": 0,
                  "type": "integer"
                },
                "after_url": {
                  "description": "Public after url value used to scope this lookup.",
                  "type": "string"
                },
                "before_fingerprint_scope": {
                  "description": "Public before fingerprint scope value used to scope this lookup.",
                  "enum": [
                    "machine_contract_structure",
                    "simple_yaml_operation_summary",
                    "unavailable"
                  ]
                },
                "before_hash": {
                  "description": "Public before hash value used to scope this lookup.",
                  "pattern": "^[a-fA-F0-9]{64}$",
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "before_operation_count": {
                  "description": "Public before operation count value used to scope this lookup.",
                  "minimum": 0,
                  "type": "integer"
                },
                "before_url": {
                  "description": "Public before url value used to scope this lookup.",
                  "type": "string"
                },
                "breaking_changes": {
                  "description": "Public breaking changes value used to scope this lookup.",
                  "items": {
                    "type": "string"
                  },
                  "maxItems": 200,
                  "type": "array"
                },
                "comparison_complete": {
                  "description": "Public comparison complete value used to scope this lookup.",
                  "type": "boolean"
                },
                "comparison_truncated": {
                  "description": "Public comparison truncated value used to scope this lookup.",
                  "type": "boolean"
                },
                "local_ref_count": {
                  "description": "Public local ref count value used to scope this lookup.",
                  "minimum": 0,
                  "type": "integer"
                },
                "non_breaking_changes": {
                  "description": "Public breaking changes value used to scope this lookup.",
                  "items": {
                    "type": "string"
                  },
                  "maxItems": 200,
                  "type": "array"
                },
                "provider_request_count": {
                  "const": 2,
                  "description": "Public provider request count value used to scope this lookup."
                },
                "remote_ref_count": {
                  "description": "Public remote ref count value used to scope this lookup.",
                  "minimum": 0,
                  "type": "integer"
                },
                "scope": {
                  "const": "two_bounded_openapi_documents_no_operation_execution_no_ref_resolution",
                  "description": "Public scope value used to scope this lookup."
                },
                "unknown_changes": {
                  "description": "Public breaking changes value used to scope this lookup.",
                  "items": {
                    "type": "string"
    

This page as JSON