AnyGas Discovery API

Health, mesh and gasless config

Operations 11

GET /api/status Operational status #
GET /api/route/chains The gasless mesh / route graph #
GET /api/gasless/info Same-chain gasless config #
GET /api/capabilities Everything this service can do, as structured data #
GET /api/capability/snapshot Signed record of what Robyn can actually do right now #
POST /api/capability/verify Verify a capability snapshot #
GET /api/changelog What changed since you integrated #
GET /api/recipes Ordered playbooks for real goals #
GET /api/recipes/{name} One playbook #
POST /api/integration/lint Is the request I am about to send safe? #
GET /api/integration/rules Every lint rule #

Work with this as data

Every API 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 apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • 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 API
curl "https://apis.io/api/v1/apis/anygas-xyz:anygas-xyz-discovery-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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.

OpenAPI Specification

anygas-xyz-discovery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anygas Xyz Discovery API
  version: 3.28.2
  contact:
    name: Robyn AnyGas
    url: https://anygas.xyz
  license:
    name: Service terms
    url: https://anygas.xyz/svc/api/terms
  x-lastUpdated: '2026-07-29'
  description: 'Operations tagged discovery across 2 of this provider''s published API definitions: anygas-openapi.json, anygas-xyz-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.anygas.xyz/svc
  description: Production gateway (also https://anygas.xyz/svc)
tags:
- name: Discovery
  description: Health, mesh and gasless config
paths:
  /api/status:
    get:
      tags:
      - Discovery
      summary: Operational status
      description: 'Sanitized public health: overall state, per-node up/down (22 EVM + Stellar/Solana/Bitcoin), bridge rails, endpoint probes and route count. Cached ~30s. Rate limit 60/min.'
      operationId: getStatus
      responses:
        '200':
          description: Status snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Status'
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/route/chains:
    get:
      tags:
      - Discovery
      summary: The gasless mesh / route graph
      description: Supported chain ids, node/route counts, the Permit2 spender (relayer) your SDK signs for, the routing engine, and per-node metadata for the non-EVM legs. Source of truth for what is routable. No key required.
      operationId: getMesh
      responses:
        '200':
          description: Mesh snapshot
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Mesh'
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/gasless/info:
    get:
      tags:
      - Discovery
      summary: Same-chain gasless config
      description: Deployed router / anyGas / tokenPaymaster / Permit2 / EntryPoint addresses, the EIP-712 domain, the per-chain deployment map and accepted fee tokens. No key required.
      operationId: gaslessInfo
      responses:
        '200':
          description: Config
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GaslessInfo'
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/capabilities:
    get:
      tags:
      - Discovery
      summary: Everything this service can do, as structured data
      description: 'The machine-readable capability surface: which rails serve which lanes, which corridors can execute versus only quote (with the reason), the real fee model, and the feature list. Read this first to decide what is possible before quoting. Rails include aggregators (EVMEVM best-of-N), allbridge-core (Solana/Sui), cctp (Circle CCTP V2 native burn-and-mint, serves EVM->Stellar), chainflip (native BTC) and sponsor7702 (same-chain sponsored execution).'
      operationId: getCapabilities
      responses:
        '200':
          description: Capability surface
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/capability/snapshot:
    get:
      tags:
      - Discovery
      summary: Signed record of what Robyn can actually do right now
      operationId: capabilitySnapshot
      description: 'An agent deciding whether to depend on a corridor has only a status page — a claim about NOW that is gone by the time anything goes wrong. When a workflow later fails, nobody can reconstruct what the provider said it could do at the moment the decision was made. This is a signed, timestamped record: `serviceableNow` (chains that can ACTUALLY be paid out on, from live inventory), `policyEligible` (the marketing list), `notServiceable` (the difference), per-rail `executeReady`, node health, and whether delivery figures are measured or estimated. USE `serviceableNow`, NOT `policyEligible`, when choosing a destination. It is a RECORD, not a guarantee: it states what was true at that instant, does not promise the same capability a minute later, and the signature does not make it an SLA — `whatThisIsNot` says so in the payload.'
      responses:
        '200':
          description: Signed capability snapshot
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/capability/verify:
    post:
      tags:
      - Discovery
      summary: Verify a capability snapshot
      operationId: verifyCapability
      description: 'Recomputes the digest from the submitted claims, so inflating `serviceableNow` to the full policy list — the tempting lie — invalidates it. Also reports `ageMinutes` and warns when a snapshot is stale: still authentic, but no longer a description of the present.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: valid, recovered signer, age and staleness warning
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/changelog:
    get:
      tags:
      - Discovery
      summary: What changed since you integrated
      operationId: changelog
      parameters:
      - name: since
        in: query
        required: false
        schema:
          type: string
        example: 3.9.0
        description: the API version your integration was built against
      description: 'An agent that generated a client last week has no way to learn what changed. Human changelogs are prose on a marketing page — unparseable, usually stale, and silent about the only thing a running integration cares about: whether something it depends on has BROKEN. So integrators either pin forever and miss every improvement, or re-fetch the whole spec on a schedule and diff it themselves. Both are the provider''s failure pushed onto the consumer. Pass `since` and you get only what changed after that version. CHECK `mustAct` FIRST — if true, there are breaking changes and your integration may already be failing; each such entry carries an `action`. `breaking:true` means an existing CORRECT integration could stop working. It is a compatibility claim, not a measure of importance, and nothing that qualifies is downgraded because it looks bad. Every path claimed here is cross-checked against the live spec on each request; drift is reported rather than hidden, because a changelog is believed.'
      responses:
        '200':
          description: Change history, filtered
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/recipes:
    get:
      tags:
      - Discovery
      summary: Ordered playbooks for real goals
      operationId: recipes
      description: 'There are 100+ endpoints here. The spec tells you WHAT exists; it cannot tell you what order to call things in, or which checks it would be reckless to skip. That knowledge otherwise lives in prose written for humans, so every agent re-derives it badly and differently — quoting without checking serviceability, paying without confirming a recipient, reporting success when verification said `undetermined`. Each recipe is an ordered sequence: which endpoint, what it answers, what to do with the answer, whether it is optional, and what skipping it actually costs. Every referenced endpoint is checked against the live spec on each request — a recipe naming an endpoint that no longer exists is worse than none, because it will be followed.'
      responses:
        '200':
          description: All recipes, with drift flags
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/recipes/{name}:
    parameters:
    - name: name
      in: path
      required: true
      schema:
        type: string
      example: pay-someone-safely
    get:
      tags:
      - Discovery
      summary: One playbook
      operationId: recipe
      responses:
        '200':
          description: The recipe
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Unknown name, with the available list
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/integration/lint:
    post:
      tags:
      - Discovery
      summary: Is the request I am about to send safe?
      operationId: lintIntegration
      description: 'Every provider documents the safe way to integrate and then has no idea whether anyone followed it. Integrators discover they skipped something when it costs them. Post the request you INTEND to send and get the missing/unsafe fields with the concrete consequence of each. Severity is honest: `unsafe` means you can lose money or report a falsehood; `suboptimal` means it will cost you. IT LINTS THE REQUEST ONLY. It cannot see whether you branch on all three verification verdicts, treat `undetermined` as success, or use `serviceableNow` rather than `policyEligible` — a clean lint is NOT a correct integration, and an endpoint with no rules returns "unchecked", never "clean".'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: findings with severity, field, consequence and fix
          content:
            application/json:
              schema:
                type: object
        '400':
          description: endpoint required
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/integration/rules:
    get:
      tags:
      - Discovery
      summary: Every lint rule
      operationId: lintRules
      responses:
        '200':
          description: the rule set
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
components:
  schemas:
    Mesh:
      type: object
      properties:
        nodes:
          type: integer
          example: 25
        chains:
          type: array
          items:
            type: integer
          description: EVM chain ids
          example:
          - 1
          - 10
          - 56
          - 100
          - 130
          - 137
          - 146
          - 480
          - 999
          - 1135
          - 1868
          - 4663
          - 5000
          - 8453
          - 33139
          - 34443
          - 42161
          - 43114
          - 57073
          - 59144
          - 81457
          - 7777777
        routableNonEvm:
          type: array
          items:
            type: string
          example:
          - stellar
          - solana
          - bitcoin
        directedRoutes:
          type: integer
          example: 500
        relayer:
          type: string
          description: Permit2 spender the SDK signs for
          example: '0x1253D25A0B6a757CfD65CDf441E2d91DBeCeE6c5'
        permit2:
          type: string
          example: '0x000000000022D473030F116dDEE9F6B43aC78BA3'
        engine:
          type: string
          example: LI.FI aggregation (Across / Gas.zip / Near / Squid / Symbiosis / Relay + ~15 bridges); Stellar + Solana via Allbridge Core; Bitcoin via Chainflip
        nonEvmNodes:
          type: object
          additionalProperties: true
          description: Per-node metadata; quote-only nodes carry executeReady:false
        comparatorQuoteOnly:
          type: object
          additionalProperties: true
          description: Scroll, extra Chainflip asset lanes and Sui — quotable but NOT execute-ready
      additionalProperties: true
    GaslessInfo:
      type: object
      properties:
        service:
          type: string
          example: Robyn Gasless Pay
        router:
          type: string
          example: '0x8f4a466435264A2D56Bc80e6749Ea351d567D141'
        anyGasRouter:
          type: string
          example: '0x298ab4Be2B3a8f1A2dB3650f578407AA1f952487'
        tokenPaymaster:
          type: string
          example: '0x4afc3DD9143bC75fCfFDA52e9E5e50dA4Cb3A635'
        permit2:
          type: string
          example: '0x000000000022D473030F116dDEE9F6B43aC78BA3'
        entryPoint:
          type: string
          example: '0x0000000071727De22E5E9d8BAf0edAc6f37da032'
        chainId:
          type: integer
          example: 4663
        routes:
          type: array
          items:
            type: string
          example:
          - direct
          - cheapest
          - fastest
        recommended:
          type: string
          example: direct
        gaslessChains:
          type: object
          additionalProperties: true
          description: Per-chain deployment map keyed by chain id
        acceptedTokens:
          type: array
          items:
            type: object
            additionalProperties: true
        domain:
          type: object
          additionalProperties: true
          description: EIP-712 domain
      additionalProperties: true
    Status:
      type: object
      properties:
        status:
          type: string
          enum:
          - operational
          - degraded
          - down
          - unknown
          example: operational
        ts:
          type: integer
          example: 1784012730722
        nodes:
          type: object
          properties:
            up:
              type: integer
              example: 25
            total:
              type: integer
              example: 25
            evm:
              type: array
              items:
                type: object
                properties:
                  chainId:
                    type: integer
                  name:
                    type: string
                  up:
                    type: boolean
            nonEvm:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  up:
                    type: boolean
        rails:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              up:
                type: boolean
        routes:
          type: integer
          nullable: true
          example: 500
        endpoints:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
              up:
                type: boolean
x-refined-from:
- anygas-openapi.json
- anygas-xyz-openapi.json