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-messaging-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: 3.2.0
info:
title: Anygas Xyz Messaging 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 messaging 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: Messaging
description: Wallet-to-wallet messaging (v2 sealed + unlinkable; v1 plaintext)
paths:
/api/messages/v2/info:
get:
summary: Messaging v2 status + parameters (suite, buckets, release grid, kContribution)
tags:
- Messaging
responses:
'200':
description: Info
operationId: getApiMessagesV2Info
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/mailbox/{addressOrName}:
get:
summary: 'Recipient mailbox: stealth meta-address + hybrid ML-KEM public key'
tags:
- Messaging
parameters:
- name: addressOrName
in: path
required: true
schema:
type: string
description: 0x address or Robyn name (label.robyn.id / .robynchain.eth / .rhood.eth)
responses:
'200':
description: Mailbox
'404':
description: No v2 mailbox; fall back to v1
operationId: getApiMessagesV2MailboxByAddressOrName
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/mailbox:
post:
summary: Publish or rotate your mailbox (EIP-191 signed, monotonic by ts)
tags:
- Messaging
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- address
- metaAddress
- kemPub
- ts
- sig
properties:
address:
type: string
metaAddress:
type: string
example: st:eth:0x02…
kemPub:
type: string
description: base64 hybrid ML-KEM-768+X25519 public key (1216 bytes)
ts:
type: integer
description: unix seconds, ±10 min
sig:
type: string
description: 'personal_sign of "robyn-messaging v2\naction: mailbox\naddress: …\nmeta: …\nkem: <sha256 of kemPub bytes>\nts: …"'
pass:
type: object
description: optional Plus pass {preparedMsg, sig} (base64) — rate-limit exempt, unlinkable
properties:
preparedMsg:
type: string
sig:
type: string
responses:
'200':
description: '{ok, address, since} or {ok, unchanged:true}'
'403':
description: signature does not match address
operationId: postApiMessagesV2Mailbox
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/send:
post:
summary: Deliver a sealed message (server stores only ephemeralPubKey, viewTag, ct).
tags:
- Messaging
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- ephemeralPubKey
- viewTag
- ct
properties:
ephemeralPubKey:
type: string
description: 33-byte compressed secp256k1 point, one-time
viewTag:
type: string
example: '0x3a'
ct:
type: string
description: base64; suite 0x51; must be one of the fixed ciphertext sizes (see /info)
pass:
type: object
description: optional Plus pass {preparedMsg, sig} (base64) — rate-limit exempt, unlinkable
properties:
preparedMsg:
type: string
sig:
type: string
responses:
'200':
description: '{ok, id, releaseAt} or {ok, id, duplicate:true}'
'400':
description: not a bucket-sized v2 seal
operationId: postApiMessagesV2Send
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/feed:
get:
summary: Public feed (identical for every reader); scan with your viewing key
tags:
- Messaging
parameters:
- name: since
in: query
schema:
type: integer
description: releaseAt cursor (ms)
- name: limit
in: query
schema:
type: integer
maximum: 200
responses:
'200':
description: '{total, count, nextSince, truncated, messages:[{id, ephemeralPubKey, viewTag, ct, releaseAt}]}'
operationId: getApiMessagesV2Feed
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/send:
post:
summary: '[RETIRED 2026-08-20] v1 send — returns 410; use /api/messages/v2/send'
tags:
- Messaging
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- from
- to
- message
- sig
properties:
from:
type: string
to:
type: string
description: address or Robyn name
message:
type: string
sig:
type: string
description: personal_sign of "robyn-msg:<toLower>:<message>"
responses:
'410':
description: GONE — messaging v1 writes are retired; use sealed v2 (POST /api/messages/v2/send)
deprecated: true
operationId: postApiMessagesSend
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/inbox/{address}:
get:
summary: v1 inbox (plaintext) — prefer v2
tags:
- Messaging
parameters:
- name: address
in: path
required: true
schema:
type: string
responses:
'200':
description: messages
operationId: getApiMessagesInboxByAddress
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/resolve/{addressOrName}:
get:
summary: Resolve a Robyn name or address
tags:
- Messaging
parameters:
- name: addressOrName
in: path
required: true
schema:
type: string
responses:
'200':
description: '{resolved: address|null}'
operationId: getApiMessagesResolveByAddressOrName
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/directory:
get:
summary: All v2 mailboxes, identical for every reader (oblivious lookup)
tags:
- Messaging
responses:
'200':
description: '{count, mailboxes:[{address, metaAddress, kemPub, since}]}'
operationId: getApiMessagesV2Directory
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/plus/cover:
post:
summary: 'Spend a pass: one funded cover row within 24 h'
tags:
- Messaging
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- pass
properties:
pass:
type: object
description: optional Plus pass {preparedMsg, sig} (base64) — rate-limit exempt, unlinkable
properties:
preparedMsg:
type: string
sig:
type: string
responses:
'200':
description: scheduled
'402':
description: pass required
operationId: postApiMessagesV2PlusCover
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/plus/anchor:
post:
summary: 'Spend a pass: anchor a feed row id in the next signed Merkle batch'
tags:
- Messaging
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- pass
- id
properties:
pass:
type: object
description: optional Plus pass {preparedMsg, sig} (base64) — rate-limit exempt, unlinkable
properties:
preparedMsg:
type: string
sig:
type: string
id:
type: string
responses:
'200':
description: queued
'402':
description: pass required
operationId: postApiMessagesV2PlusAnchor
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/anchor/{id}:
get:
summary: Anchoring proof for a row id
tags:
- Messaging
parameters:
- name: id
in: path
required: true
schema:
type: string
responses:
'200':
description: '{leaf, path, root, signer, signature, message, onchain}'
'404':
description: not anchored
operationId: getApiMessagesV2AnchorById
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/anchors:
get:
summary: Recent anchor batches
tags:
- Messaging
responses:
'200':
description: batches
operationId: getApiMessagesV2Anchors
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/messages/v2/erasure:
get:
summary: Signed proof-of-erasure statement (last purge + cumulative)
tags:
- Messaging
responses:
'200':
description: statement
operationId: getApiMessagesV2Erasure
x-operation-id-source: derived
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
/api/receipt/deliver:
post:
tags:
- Messaging
summary: Deliver a relayer-signed receipt to a counterparty's sealed v2 mailbox
operationId: receiptDeliver
description: Seals the receipt (ML-KEM-768+X25519, one-time handle) to the recipient's messaging-v2 mailbox and stores it on the same wire shape as any message, so the counterparty gets verifiable proof without contacting Robyn. Only receipts signed by this relayer are accepted. Content-hash idempotent (replay is a no-op); reachable over OHTTP.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
to:
type: string
description: address or Robyn name with a v2 mailbox
receipt:
type: object
pass:
type: object
description: optional Plus pass
required:
- to
- receipt
example:
to: sphynx.robynchain.eth
receipt:
version: anygas-receipt/1
responses:
'200':
description: '{delivered, id, releaseAt, receiptDigest}'
content:
application/json:
schema:
type: object
'400':
description: receipt does not verify / missing field
'403':
description: not signed by this relayer
'404':
description: recipient has no v2 mailbox
servers:
- url: https://api.anygas.xyz/svc
description: Production gateway (also https://anygas.xyz/svc)
x-refined-from:
- anygas-openapi.json
- anygas-xyz-openapi.json