POST /v1/x402-endpoints/probe
Probe an x402 endpoint to get its payment requirements

Request Body required

Endpoint URL to probe

application/json
One of:
Option 1
Option 2
body string
Optional body to send with the probe request. Some endpoints require valid input before returning 402.
method string
Optional HTTP method to use. If not specified, tries POST then GET. Valid values: GET, POST, PUT, PATCH, DELETE
Enum: GET, POST, PUT, PATCH, DELETE
resourceUrl string REQUIRED

Responses

200 OK
application/json
code integer
data object
accepts object[]
Full accepts array for reference
Array of:
amount string
Amount is the v2 equivalent of MaxAmountRequired. During normalization, Amount is copied to MaxAmountRequired if MaxAmountRequired is empty.
asset string
description string
extra object
chainId integer
ChainID is the chain ID for EIP-712 domain (from quote)
facilitatorAddress string
FacilitatorAddress is the facilitator's address that will be approved as spender
name string
Name is the ERC20 token name (used in EIP-712 domain)
signatureType string
SignatureType specifies the signature method: "authorization" (EIP-3009) or "permit" (ERC-2612)
verifyingContract string
VerifyingContract is the token contract address for EIP-712 domain (from quote)
version string
Version is the ERC20 token version (used in EIP-712 domain)
maxAmountRequired string
maxTimeoutSeconds integer
mimeType string
network string
outputSchema object
OutputSchema for discovery registration (matches TypeScript SDK format)
discoveryOutput object
example unknown
Example provides a sample value for documentation and testing
schema object
Schema is a JSON Schema definition for validation
input object
body object
Body contains JSON Schema for body parameters (used by some x402 providers)
bodyFields object
BodyFields contains body field definitions in alternative CDP format
bodyParams object
BodyParams contains body param definitions in CDP format
discoverable boolean
discoveryInput object
example unknown
Example provides a sample value for documentation and testing
schema object
Schema is a JSON Schema definition for validation
method string
query object
Query contains JSON Schema for query parameters (used by some x402 providers)
queryParams object
QueryParams contains query param definitions in CDP format
type string
metadata object
category string
Category groups workflows (e.g., "data", "automation", "ai")
description string
Description provides details about what the workflow does
documentation string
Documentation URL for additional documentation
logo string
Logo URL for the workflow/provider logo
name string
Name is the display name for the workflow
provider string
Provider is the name of the entity providing this workflow
tags string[]
Tags for searchable keywords
Array of: ...
output unknown
payTo string
resource string
scheme string
srcAmountRequired string
srcNetwork string
srcTokenAddress string
Cross-token payment fields (set when buyer uses X-PREFERRED-TOKEN)
baseUrl string
=== PARSED FROM URL ===
bodyParams object
description string
detectedParams object
Query params found in URL
error string
Error message if probe failed
headerParams object
method string
=== OPTIONAL (from 402 response) ===
mimeType string
network string
outputSchema object
payTo string
price string
=== ALWAYS AVAILABLE (core protocol) ===
queryParams object
=== EXTRACTED FROM outputSchema (normalized) ===
success boolean
Whether the probe succeeded
tokenAddress string
tokenDecimals integer
tokenName string
tokenSymbol string
message string
requestId string
400 Bad Request
curl -X POST 'https://api.example.com/v1/x402-endpoints/probe' \  -H 'Authorization: Bearer YOUR_API_TOKEN' \  -H 'Content-Type: application/json' \  -d '{}'
const response = await fetch('https://api.example.com/v1/x402-endpoints/probe', {  method: 'POST',  headers: {      "Authorization": "Bearer YOUR_API_TOKEN",      "Content-Type": "application/json"  },  body: JSON.stringify({})});const data = await response.json();console.log(data);
import requestsheaders = {    'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.post('https://api.example.com/v1/x402-endpoints/probe', headers=headers, json={})print(response.json())
package mainimport (	"fmt"	"io"	"net/http"	"strings")func main() {	body := strings.NewReader(`{}`)	req, _ := http.NewRequest("POST", "https://api.example.com/v1/x402-endpoints/probe", body)	req.Header.Set("Authorization", "Bearer YOUR_API_TOKEN")	req.Header.Set("Content-Type", "application/json")	resp, _ := http.DefaultClient.Do(req)	defer resp.Body.Close()	result, _ := io.ReadAll(resp.Body)	fmt.Println(string(result))}
200 Response
{  "code": 200,  "data": {    "accepts": [      {        "amount": "<string>",        "asset": "<string>",        "description": "<string>",        "extra": {          "chainId": 123,          "facilitatorAddress": "<string>",          "name": "<string>",          "signatureType": "<string>",          "verifyingContract": "<string>",          "version": "<string>"        },        "maxAmountRequired": "<string>",        "maxTimeoutSeconds": 123,        "mimeType": "<string>",        "network": "<string>",        "outputSchema": {          "discoveryOutput": {            "example": {},            "schema": {}          },          "input": {            "body": {},            "bodyFields": {},            "bodyParams": {},            "discoverable": {},            "discoveryInput": {},            "method": {},            "query": {},            "queryParams": {},            "type": {}          },          "metadata": {            "category": {},            "description": {},            "documentation": {},            "logo": {},            "name": {},            "provider": {},            "tags": {}          },          "output": "<unknown>"        },        "payTo": "<string>",        "resource": "<string>",        "scheme": "<string>",        "srcAmountRequired": "<string>",        "srcNetwork": "<string>",        "srcTokenAddress": "<string>"      }    ],    "baseUrl": "<string>",    "bodyParams": "<object>",    "description": "<string>",    "detectedParams": "<object>",    "error": "<string>",    "headerParams": "<object>",    "method": "<string>",    "mimeType": "<string>",    "network": "<string>",    "outputSchema": "<object>",    "payTo": "<string>",    "price": "<string>",    "queryParams": "<object>",    "success": true,    "tokenAddress": "<string>",    "tokenDecimals": 123,    "tokenName": "<string>",    "tokenSymbol": "<string>"  },  "message": "success",  "requestId": "abc-123"}