OpenAPI $ref resolver · Openapi Resolve Refs

by OpenAPI $ref resolver

POSTBaseSolanaArbitrumPolygonMonadAvalancheeip155:1329OptimismFraxtaleip155:42220stellar:pubnetalgorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=

$0.002

per call · USD Coin on Base

Inline every local `$ref` in an OpenAPI 3.x or Swagger 2.x document so downstream tools see a self-contained spec. Resolves `#/components/...` (OpenAPI) and `#/definitions/...` (Swagger) JSON-pointer refs anywhere in the document, including inside components themselves. Per-branch cycle detection: if A→B→A, the second A is left as a `$ref` and recorded under `circular`. External refs (http://, file://, ./other.yaml) are never fetched - they're reported under `external` and left as-is.

Endpoint

POST https://agent402.tools/api/openapi-resolve-refs

4

Calls / 30d

1

Unique payers / 30d

Aug 31

Last called

exact

Payment scheme

Call this service

TypeScript · @x402/fetch
import { wrapFetchWithPayment } from "@x402/fetch";
import { privateKeyToAccount } from "viem/accounts";

const account = privateKeyToAccount(process.env.PRIVATE_KEY);
const fetchWithPay = wrapFetchWithPayment(fetch, account);

const res = await fetchWithPay("https://agent402.tools/api/openapi-resolve-refs", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    "spec": {
      "components": {
        "parameters": {
          "UserId": {
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        },
        "schemas": {
          "User": {
            "properties": {
              "id": {
                "type": "string"
              },
              "name": {
                "type": "string"
              }
            },
            "type": "object"
          }
        }
      },
      "info": {
        "title": "Demo",
        "version": "1.0.0"
      },
      "openapi": "3.0.0",
      "paths": {
        "/users/{id}": {
          "get": {
            "parameters": [
              {
                "$ref": "#/components/parameters/UserId"
              }
            ],
            "responses": {
              "200": {
                "content": {
                  "application/json": {
                    "schema": {
                      "$ref": "#/components/schemas/User"
                    }
                  }
                },
                "description": "ok"
              }
            }
          }
        }
      }
    }
  }),
});
const data = await res.json();
cURL
curl -X POST \
  "https://agent402.tools/api/openapi-resolve-refs" \
  -H "Content-Type: application/json" \
  -d '{"spec":{"components":{"parameters":{"UserId":{"in":"path","name":"id","required":true,"schema":{"type":"string"}}},"schemas":{"User":{"properties":{"id":{"type":"string"},"name":{"type":"string"}},"type":"object"}}},"info":{"title":"Demo","version":"1.0.0"},"openapi":"3.0.0","paths":{"/users/{id}":{"get":{"parameters":[{"$ref":"#/components/parameters/UserId"}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/User"}}},"description":"ok"}}}}}}}' \
  -H "X-PAYMENT: <signed x402 payment>"

Example response

{
  "circular": [],
  "external": [],
  "resolved": 2,
  "spec": {
    "components": {
      "parameters": {
        "UserId": {
          "in": "path",
          "name": "id",
          "required": true,
          "schema": {
            "type": "string"
          }
        }
      },
      "schemas": {
        "User": {
          "properties": {
            "id": {
              "type": "string"
            },
            "name": {
              "type": "string"
            }
          },
          "type": "object"
        }
      }
    },
    "info": {
      "title": "Demo",
      "version": "1.0.0"
    },
    "openapi": "3.0.0",
    "paths": {
      "/users/{id}": {
        "get": {
          "parameters": [
            {
              "in": "path",
              "name": "id",
              "required": true,
              "schema": {
                "type": "string"
              }
            }
          ],
          "responses": {
            "200": {
              "content": {
                "application/json": {
                  "schema": {
                    "properties": {
                      "id": {
                        "type": "string"
                      },
                      "name": {
                        "type": "string"
                      }
                    },
                    "type": "object"
                  }
                }
              },
              "description": "ok"
            }
          }
        }
      }
    }
  },
  "unresolved": []
}

Payment details

Pay to0xabf4fabd7c416fb67202e5f9002389fc75e2a9d0
AssetUSD Coin · 0x833589fcd6edb6e08f4c7c32d4f71b54bda02913
NetworksBase, Solana, Arbitrum, Polygon, Monad, Avalanche, eip155:1329, Optimism, Fraxtal, eip155:42220, stellar:pubnet, algorand:wGHE2Pwdvd7S12BL5FaOP20EGYesN73ktiC1qzkkit8=
Schemesexact, upto

Is this your API?

Pin it to the top of Developer Tools and the homepage with a featured placement.

Get featured →

More from OpenAPI $ref resolver & similar services