List payment links
Authorization
apiKey AuthorizationBearer <token>
BAGS Agent API key from the dashboard. Standalone agentic keys manage products, payment links, and transaction reads.
In: header
Query Parameters
limit?integer
Maximum number of items to return. Clamped to [1, 100]; defaults to 25.
Range
1 <= value <= 100starting_after?string
Cursor — pass the id of the last item from the previous page.
Match
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Format
uuidcurl -X GET "https://www.getbags.app/api/v1/payment-links"{
"status": "success",
"data": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"productId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"name": "Pro Plan",
"description": "Monthly access to premium features",
"amount": 29.99,
"currency": "USD",
"network": "base",
"networks": [
"base",
"ethereum"
],
"token": "USDC",
"active": true,
"mode": "live",
"livemode": true,
"pricingType": "one_time",
"billingInterval": null,
"billingIntervalCount": null,
"trialDays": null,
"merchantWalletAddress": "0x1111111111111111111111111111111111111111",
"merchantId": "6ba7b810-9dad-11d1-80b4-00c04fd430c8",
"merchantWalletAddresses": {
"base": "0x1111111111111111111111111111111111111111"
},
"merchantName": "Acme Corp",
"totalCollected": 0,
"totalTransactions": 0,
"customFields": [],
"isAgenticProxy": false,
"targetUrl": null,
"targetMethod": null,
"x402Scheme": "exact",
"inputSchema": null,
"inputExample": null,
"successUrl": "https://example.com/success",
"returnUrl": "https://example.com/return",
"cancelUrl": "https://example.com/cancel",
"createdAt": "2026-04-16T12:34:56.000Z",
"updatedAt": "2026-04-16T12:34:56.000Z"
}
],
"hasMore": false
}{
"status": "error",
"code": "AUTH_MISSING_CREDENTIALS",
"message": "No API key or session token was provided.",
"hint": "Include a valid API key in the Authorization header: Bearer bag_live_sk_..."
}{
"status": "error",
"code": "AUTH_TENANT_MISMATCH",
"message": "The credential does not grant access to this resource."
}{
"status": "error",
"code": "RATE_LIMITED",
"message": "Too many requests. Back off and retry.",
"retryAfter": 60
}{
"status": "error",
"code": "INTERNAL_ERROR",
"message": "An unexpected error occurred. The incident has been logged."
}