API Overview
Quick Reference
| Surface | URL |
|---|
| Base URL | https://api.neus.network |
| OpenAPI Spec | /openapi/public-api.json |
| Verifier Catalog | GET /api/v1/verification/verifiers |
Authentication
Most read endpoints are public. Write operations require request-bound wallet signatures.
For manual signing, use POST /api/v1/verification/standardize to get the exact signing string.
Core Endpoints
Endpoint Reference
| Operation | Method | Path |
|---|
| Create verification | POST | /api/v1/verification |
| Standardize signing string | POST | /api/v1/verification/standardize |
| Poll status | GET | /api/v1/verification/status/{qHash} |
| Gate check | GET | /api/v1/proofs/check |
| Revoke proof | POST | /api/v1/proofs/revoke-self/{qHash} |
| Verifier catalog | GET | /api/v1/verification/verifiers |
Proof Receipt ID
Treat the proof receipt ID as opaque and stable.
Use timestamps/status fields for freshness, not the ID itself.
SDKs expose this value as proofId. In raw HTTP path templates and the generated OpenAPI file, the same value may appear as {qHash}.
Poll Status
GET /api/v1/verification/status/{qHash}
SDK: client.getStatus(...) or client.pollProofStatus(...)
Pass the returned receipt identifier as the path parameter.
Revoke a Proof (Owner-Signed)
POST /api/v1/proofs/revoke-self/{qHash}
SDK: client.revokeOwnProof(...)
Pass the returned receipt identifier as the path parameter.
Gate Check (Minimal Eligibility)
For server-side gating without pulling full proof payloads:
GET /api/v1/proofs/check?address=0x...&verifierIds=ownership-basic
SDK: client.gateCheck({ address, verifierIds, since, ... })
For point-in-time verifiers, always include since or sinceDays for freshness enforcement.
OpenAPI Reference
The full API spec is available at /openapi/public-api.json.
Rate Limits
Public endpoints have generous rate limits. Contact NEUS for higher limits or enterprise SLAs.
Errors
All errors follow a consistent structure:
{
"success": false,
"error": {
"code": "ERROR_CODE",
"message": "Human-readable message",
"type": "error_type"
}
}