Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.prudra.dev/llms.txt

Use this file to discover all available pages before exploring further.

Query routes

AI agents can query the route registry to discover what endpoints are available, what they cost, and which payment protocols they support — before making any requests.

Query all routes for an organisation

curl "https://api.prudra.dev/registry?orgId=org_clx1abc123" \
  -H "Authorization: Bearer prv_test_sk_..."
Response:
[
  {
    "route":       "/api/generate",
    "method":      "POST",
    "price":       "0.10",
    "token":       "USDC",
    "chain":       "base",
    "protocols":   ["x402", "mpp"],
    "description": "Generate a report from uploaded data",
    "snapshotAt":  "2026-04-30T09:00:00.000Z"
  },
  {
    "route":       "/api/analyse",
    "method":      "POST",
    "price":       "0.05",
    "token":       "USDC",
    "chain":       "base",
    "protocols":   ["x402"],
    "description": "Analyse a CSV file",
    "snapshotAt":  "2026-04-30T08:00:00.000Z"
  }
]

Query a specific route

curl "https://api.prudra.dev/registry?orgId=org_clx1abc123&route=/api/generate&method=POST" \
  -H "Authorization: Bearer prv_test_sk_..."

From an AI agent (TypeScript)

async function discoverRoutes(orgId: string) {
  const response = await fetch(
    `https://api.prudra.dev/registry?orgId=${orgId}`,
    { headers: { Authorization: `Bearer ${process.env.PRUDRA_API_KEY}` } }
  );

  const routes = await response.json();

  for (const route of routes) {
    console.log(`${route.method} ${route.route}`);
    console.log(`  Price: ${route.price} ${route.token} on ${route.chain}`);
    console.log(`  Protocols: ${route.protocols.join(', ')}`);
    console.log(`  ${route.description}`);
  }
}

Agent-driven payment selection

Agents can use registry data to select the cheapest or most compatible route:
const routes = await fetchRegistry(orgId);

// Find a route that supports MPP (for Tempo/USDC.e)
const mppRoute = routes.find(r => r.protocols.includes('mpp'));

// Find the cheapest route
const cheapest = routes.sort((a, b) =>
  parseFloat(a.price) - parseFloat(b.price)
)[0];

// Check if we can afford to call a route
const balance = await getBalance();
const canAfford = routes.filter(r => parseFloat(r.price) <= balance);