ToolAssay

Decide whether two GraphQL schemas are compatible, with every finding attributed

Decide whether two GraphQL schemas are compatible, with every finding attributed to the audience it affects. Clients break on a removed field, a removed enum value that is returned, a new required argument, a non-null output turned nullable and a new required input field. Servers break on a new field to resolve, a new interface obligation and an output turned non-null. An enum removal is attributed by where the enum actually flows, computed from the roots.

Answeringour last check, 2026-10-04
1 of 1checks answered this week
2476 msmedian answer time
$0.22listed price per call
$0.22price 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://api.zfinia.com/x402/v1/graphql-schema-compatibility

CategoryEverything else
Provider hostapi.zfinia.com
Networkseip155:8453
Payment schemesexact
Self-reported calls, 30 days1 from 1 payers (the provider's figure, not ours)

Our checks, last 30 days

DayResultHTTPAskedTime
2026-10-04 valid payment request 402$0.22 2476 ms

Example input (from the provider)

{
  "body": {
    "after": "type Query {\n  order(id: ID!, tenant: ID!): Order\n  orders(first: Int = 50): [Order!]!\n}\n\ntype Mutation {\n  createOrder(input: OrderInput!): Order!\n}\n\nenum Status { OPEN ARCHIVED }\n\ninput OrderInput {\n  status: Status\n  note: String\n  tenant: ID!\n}\n\ntype Order {\n  id: ID!\n  status: Status!\n  totalCents: Int\n  channel: String!\n}\n",
    "before": "type Query {\n  order(id: ID!): Order\n  orders(first: Int = 20): [Order!]!\n}\n\ntype Mutation {\n  createOrder(input: OrderInput!): Order!\n}\n\nenum Status { OPEN CLOSED }\n\ninput OrderInput {\n  status: Status\n  note: String\n}\n\ntype Order {\n  id: ID!\n  status: Status!\n  totalCents: Int!\n  note: String\n}\n"
  },
  "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": {
              "maxLength": 262144,
              "type": "string"
            },
            "before": {
              "maxLength": 262144,
              "type": "string"
            }
          },
          "required": [
            "before",
            "after"
          ],
          "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": {
          "type": "object"
        },
        "type": {
          "type": "string"
        }
      },
      "required": [
        "type"
      ],
      "type": "object"
    }
  },
  "required": [
    "input"
  ],
  "type": "object"
}

This page as JSON