AnyGas Transparency API

Where every unit went, what it would have cost elsewhere, how long delivery really takes, and signed proof of spend.

Operations 5

GET /api/forensics/fee/{id} Account for every unit of a fee on a settled transfer #
GET /api/forensics/counterfactual/{id} What the same transfer would have cost on the alternative rail #
GET /api/statement/spend A SIGNED statement of what an address spent (proof for a principal) #
POST /api/statement/verify Verify a signed spend statement #
GET /api/delivery/stats MEASURED delivery times per rail and corridor #

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-transparency-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-transparency-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Anygas Xyz Transparency 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 transparency 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: Transparency
  description: Where every unit went, what it would have cost elsewhere, how long delivery really takes, and signed proof of spend.
paths:
  /api/forensics/fee/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      example: fl_reconproof_msaxh1ls
    get:
      tags:
      - Transparency
      summary: Account for every unit of a fee on a settled transfer
      operationId: explainFee
      description: Everyone quotes a fee; nobody says where it WENT. This reconstructs a completed transfer unit by unit — what was sent, what arrived, and every component of the difference, each labelled with who it was paid to and how the figure was derived (destination payout gas, Robyn margin, or a Robyn SUBSIDY when we absorbed a loss, which is reported as such). Anything that cannot be attributed is returned as `unattributed` rather than folded into another line to make the arithmetic look tidy — a breakdown that always sums perfectly is one that is hiding something.
      responses:
        '200':
          description: Unit-by-unit fee breakdown with payee and basis per component
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Unknown transfer id — no breakdown is invented
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/forensics/counterfactual/{id}:
    parameters:
    - name: id
      in: path
      required: true
      schema:
        type: string
      example: fl_reconproof_msaxh1ls
    get:
      tags:
      - Transparency
      summary: What the same transfer would have cost on the alternative rail
      operationId: routeCounterfactual
      description: 'Answers "was this actually the better route?" with evidence rather than marketing: it applies the published standard-bridge fee model to this exact amount and destination and reports the difference against what you really received. Stated plainly in the response: this is a like-for-like MODEL comparison, not a claim about what a specific third-party bridge would have quoted at that second.'
      responses:
        '200':
          description: Actual vs modelled-alternative delivery, with the difference and a verdict
          content:
            application/json:
              schema:
                type: object
        '404':
          description: Unknown transfer id
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/statement/spend:
    get:
      tags:
      - Transparency
      summary: A SIGNED statement of what an address spent (proof for a principal)
      operationId: spendStatement
      description: An AI agent that spends on someone's behalf cannot currently PROVE what it spent — its own summary is a claim by the party being audited, and a dashboard screenshot proves nothing. This returns every transfer in the window with the fee on each broken down, SIGNED by Robyn's relayer key. The principal verifies the signature against the published signer address and knows the numbers came from us, unmodified — without trusting the agent and without trusting a web page. NOW COVERS EVERY RAIL — the float lane plus routed settlements (CCTP, Stellar, Solana, Tron, Chainflip, aggregators) — with a `byRail` split so a merged total cannot hide which rails were used. It previously covered the float lane only; that was declared as a limitation, but an honest limitation was still a hole. Third-party bridge fees taken inside a routed leg are not itemised and are excluded, which `limitations` states.
      parameters:
      - name: address
        in: query
        required: false
        schema:
          type: string
        description: Restrict to transfers whose record names this sender. Transfers with no sender recorded are EXCLUDED rather than assumed to be yours.
      - name: days
        in: query
        required: false
        schema:
          type: integer
          default: 30
          maximum: 365
      responses:
        '200':
          description: 'Signed statement: entries, per-entry fee breakdown, totals, digest, signature, limitations'
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/statement/verify:
    post:
      tags:
      - Transparency
      summary: Verify a signed spend statement
      operationId: verifyStatement
      description: 'POST a statement back to check it. The digest is RECOMPUTED from the rows you submit and never taken from the submitted `digest` field — otherwise a genuine signature could be paired with fabricated numbers. Alter any amount and verification fails. You do not need this endpoint to trust the result: the signature is a standard EIP-191 personal_sign over the digest, so you can verify it entirely offline against the published signer address.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: valid true/false, recomputed digest, recovered signer, and why
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
  /api/delivery/stats:
    get:
      tags:
      - Transparency
      summary: MEASURED delivery times per rail and corridor
      operationId: deliveryStats
      description: 'Quotes used to advertise a constant duration — the same number for an instant float payout and a Stellar burn waiting on Circle attestation. An agent planning a workflow needs to know whether value lands in fifteen seconds or twenty-five minutes; one marketing number is worse than useless because it is confidently wrong for most corridors. This publishes what settlements ACTUALLY took, per corridor. HONESTY RULE: below the sample threshold it returns `insufficient-data` and hands back the static estimate LABELLED as an estimate (`basis: "estimate"` vs `basis: "measured"`). It never invents a percentile from three observations.'
      responses:
        '200':
          description: Per-rail and per-corridor p50/p90 where measured, explicit insufficient-data otherwise
          content:
            application/json:
              schema:
                type: object
    servers:
    - url: https://api.anygas.xyz/svc
      description: Production gateway (also https://anygas.xyz/svc)
components:
  schemas:
    Error:
      type: object
      description: Every error carries a stable errorCode plus recovery metadata. The legacy `error` string is retained for backward compatibility - branch on errorCode.
      properties:
        error:
          type: string
          description: human-readable message (legacy field)
        errorCode:
          type: string
          example: INSUFFICIENT_FLOAT
          description: stable machine code; see GET /api/errors for the full catalogue
        retryable:
          type: boolean
        retryAfterMs:
          type: integer
          description: present when the failure is transient
        suggestedAction:
          type: string
          description: what the caller should actually do next
        docs:
          type: string
      required:
      - error
x-refined-from:
- anygas-openapi.json
- anygas-xyz-openapi.json