api.odilelabs.com/a2a/v1/x402/test-call
Answeringour last check, 2026-11-04
3 of 3checks answered this week
970 msmedian answer time
$1.00listed price per call
$1.00price it asked us
Paid test badge: not yet. The checks above are free: we call the tool without paying and read the payment request it sends back. The Verified badge needs paid calls whose answers match the promised output, and nobody can buy a badge.
Endpoint
POST https://api.odilelabs.com/a2a/v1/x402/test-call
| Category | Everything else |
|---|---|
| Provider host | api.odilelabs.com |
| Networks | eip155:8453 |
| Payment schemes | exact |
| Self-reported calls, 30 days | 1 from 1 payers (the provider's figure, not ours) |
Our checks, last 30 days
| Day | Result | HTTP | Asked | Time |
|---|---|---|---|---|
| 2026-11-04 | valid payment request | 402 | $1.00 | 905 ms |
| 2026-11-03 | valid payment request | 402 | $1.00 | 970 ms |
| 2026-11-02 | valid payment request | 402 | $1.00 | 1015 ms |
Example input (from the provider)
{
"body": {
"number": "+12025550123",
"owner_attests": true,
"scenario": "disclosure"
},
"bodyType": "json",
"method": "POST",
"type": "http"
}
Promised output schema (from the provider)
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"input": {
"properties": {
"body": {
"additionalProperties": false,
"properties": {
"configuration": {
"additionalProperties": false,
"description": "Optional A2A push configuration. It is bound to this payment with the call data; reuse the same configuration on retries.",
"properties": {
"pushNotificationConfig": {
"additionalProperties": false,
"properties": {
"token": {
"description": "Optional token returned in X-A2A-Notification-Token. authentication is not supported.",
"maxLength": 256,
"minLength": 1,
"pattern": "^[^\\x00-\\x1f\\x7f]+$",
"type": "string"
},
"url": {
"description": "Public HTTPS URL for the final A2A Task; redirects and private hosts are refused.",
"format": "uri",
"maxLength": 500,
"pattern": "^https://",
"type": "string"
}
},
"required": [
"url"
],
"type": "object"
}
},
"type": "object"
},
"language": {
"description": "Optional name or code matching the selected language scenario.",
"enum": [
"spanish",
"chinese",
"vietnamese",
"filipino",
"arabic",
"polish",
"es",
"zh",
"vi",
"tl",
"ar",
"pl"
],
"type": "string"
},
"number": {
"description": "E.164 line owned by the person requesting this test. Twilio Lookup must confirm landline, fixedVoip or nonFixedVoip; mobile and unknown are refused.",
"pattern": "^\\+[1-9]\\d{6,14}$",
"type": "string"
},
"owner_attests": {
"const": true,
"description": "True only when the owner of this line requested the automated test call.",
"type": "boolean"
},
"scenario": {
"enum": [
"emergency",
"booking",
"price",
"disclosure",
"spanish",
"chinese",
"vietnamese",
"filipino",
"arabic",
"polish",
"unavailable",
"cancel",
"handoff",
"interrupt"
],
"type": "string"
}
},
"required": [
"number",
"scenario",
"owner_attests"
],
"type": "object"
},
"bodyType": {
"enum": [
"json"
],
"type": "string"
},
"method": {
"enum": [
"POST"
],
"type": "string"
},
"type": {
"const": "http",
"type": "string"
}
},
"required": [
"type",
"method",
"bodyType",
"body"
],
"type": "object"
},
"output": {
"properties": {
"example": {
"properties": {
"result": {
"properties": {
"task": {
"properties": {
"artifacts": {
"items": {
"properties": {
"parts": {
"items": {
"properties": {
"data": {
"properties": {
"status_url": {
"description": "Signed URL to poll for the final result and settlement. Keep it private.",
"format": "uri",
"type": "string"
}
},
"required": [
"status_url"
],
"type": "object"
}
},
"required": [
"data"
],
"type": "object"
},
"minItems": 1,
"type": "array"
}
},
"required": [
"parts"
],
"type": "object"
},
"minItems": 1,
"type": "array"
},
"id": {
"type": "string"
},
"status": {
"properties": {
"state": {
"const": "TASK_STATE_WORKING"
}
},
"required": [
"state"
],
"type": "object"
}
},
"required": [
"id",
"status",
"artifacts"
],
"type": "ob