{"baseUrl":"https://www.apinow.fun","authentication":{"x402":{"description":"Pay-per-call via x402 protocol. Applies to /api/v1/* and /api/endpoints/* routes.","price":"$0.01","network":"base (eip155:8453)","facilitator":"https://x402.dexter.cash"},"adminKey":{"description":"Pass x-admin-key header or Authorization: Bearer <key> to bypass x402 payment on any route.","header":"x-admin-key"},"wallet":{"description":"Some write operations require x-wallet-address header for ownership verification.","header":"x-wallet-address"}},"sections":{"endpoints":{"label":"Endpoints","description":"CRUD, search, discovery, versioning, forking, and execution of marketplace endpoints.","routes":[{"method":"GET","path":"/api/endpoints","description":"List endpoints with pagination, namespace filter, search, sort by popular/newest."},{"method":"POST","path":"/api/endpoints","description":"Register a new endpoint. Requires: namespace, endpointName, url, description, httpMethod, paymentOptions."},{"method":"GET","path":"/api/endpoints/{id}","description":"Get endpoint details by MongoDB ID."},{"method":"PUT","path":"/api/endpoints/{id}","description":"Update endpoint. Owner or admin only."},{"method":"DELETE","path":"/api/endpoints/{id}","description":"Delete endpoint. Owner or admin only."},{"method":"POST","path":"/api/endpoints/{id}/fork","description":"Fork an endpoint. Creates a copy owned by the requesting wallet."},{"method":"GET","path":"/api/endpoints/{id}/versions","description":"List all versions of an endpoint."},{"method":"POST","path":"/api/endpoints/{id}/versions","description":"Create a new version with name, model, prompt, schemas, changelog."},{"method":"GET","path":"/api/endpoints/{id}/versions/{vid}","description":"Get a specific version."},{"method":"PUT","path":"/api/endpoints/{id}/versions/{vid}/default","description":"Set a version as default."},{"method":"GET","path":"/api/endpoints/{id}/versions/{vid}/diff/{vid2}","description":"Diff two versions."},{"method":"GET","path":"/api/endpoints/{id}/examples","description":"Get example input/output pairs."},{"method":"GET","path":"/api/endpoints/{id}/stats","description":"Usage stats: total calls, success/fail, last used."},{"method":"GET","path":"/api/endpoints/{id}/metrics","description":"Quality scores, reliability, engagement metrics."},{"method":"GET","path":"/api/endpoints/{id}/pricing","description":"Get pricing config."},{"method":"PUT","path":"/api/endpoints/{id}/pricing","description":"Update pricing. Owner only."},{"method":"POST","path":"/api/endpoints/{id}/ai-improve","description":"AI-powered improvement suggestions for the endpoint."},{"method":"POST","path":"/api/endpoints/semantic-search","description":"Semantic vector search across all endpoints. Body: { query, limit }."},{"method":"POST","path":"/api/endpoints/by-ids","description":"Batch fetch endpoints by ID array. Body: { ids: [...] }."},{"method":"GET","path":"/api/endpoints/token/{chain}/{address}","description":"Find endpoints accepting a specific payment token."}]},"execution":{"label":"Endpoint Execution (x402 gated)","description":"Call marketplace endpoints. Requires x402 payment or admin key.","routes":[{"method":"GET/POST","path":"/api/v1/{namespace}/{endpoint}","description":"Execute an endpoint. x402 payment required, or pass x-admin-key to skip."},{"method":"GET","path":"/api/endpoints/{namespace}/{endpoint}/details","description":"Get endpoint details (method, schema, pricing) before calling."},{"method":"HEAD","path":"/api/endpoints/{namespace}/{endpoint}","description":"Check if a txHash has already been used."}]},"search":{"label":"Search","description":"Semantic and text-based search across the marketplace.","routes":[{"method":"POST","path":"/api/search/semantic","description":"Vector similarity search. Body: { query, topK }. Returns scored results with endpoint data."},{"method":"POST","path":"/api/endpoints/semantic-search","description":"Alternative semantic search. Body: { query, limit }."},{"method":"GET","path":"/api/endpoints?search=term","description":"Text search by namespace, name, or description."}]},"leaderboard":{"label":"Leaderboard","description":"Usage-based rankings computed from real onchain data.","routes":[{"method":"GET","path":"/api/leaderboard","description":"Get rankings. Query: sort (overall|performance|quality|value), page, limit."},{"method":"GET","path":"/api/leaderboard/trending","description":"Get currently trending endpoints by trend score."},{"method":"GET","path":"/api/leaderboard/compare?keys=a/b,c/d","description":"Compare metrics for multiple endpoints side-by-side."},{"method":"POST","path":"/api/leaderboard/feedback","description":"Submit feedback for an endpoint. Body: { endpointKey, type, rating?, comment? }."}]},"activity":{"label":"Activity","description":"Real-time feed of all platform events.","routes":[{"method":"GET","path":"/api/activity","description":"Activity feed with pagination. Query: type (feed|count|heatmap), endpoint, limit, offset."},{"method":"POST","path":"/api/activity","description":"Log an activity event."},{"method":"GET","path":"/api/activity/heatmap","description":"Aggregated daily activity counts for the last year."}]},"lists":{"label":"Lists","description":"Curated collections of endpoints.","routes":[{"method":"GET","path":"/api/lists","description":"Browse lists. Query: tag, sort (popular|recent), limit, offset."},{"method":"POST","path":"/api/lists","description":"Create a list. Body: { name, slug, description, tags, visibility }."},{"method":"GET","path":"/api/lists/{slug}","description":"Get list with its endpoints."},{"method":"PUT","path":"/api/lists/{slug}","description":"Update list metadata. Owner or admin only."},{"method":"DELETE","path":"/api/lists/{slug}","description":"Delete a list. Owner or admin only."},{"method":"POST","path":"/api/lists/{slug}/fork","description":"Fork a list."},{"method":"POST","path":"/api/lists/{slug}/endpoints","description":"Add endpoint to list. Body: { endpointId, note? }."},{"method":"DELETE","path":"/api/lists/{slug}/endpoints","description":"Remove endpoint from list. Body: { endpointId }."}]},"evals":{"label":"Evals & Judge","description":"Evaluate and benchmark endpoints programmatically. AI judge scores responses for quality.","routes":[{"method":"POST","path":"/api/judge","description":"Stateless AI judge. Send responses to score, or endpoint names to call + score. Body: { testInput, responses?, endpoints?, judgeModel?, criteria? }."},{"method":"GET","path":"/api/evals","description":"List all eval runs."},{"method":"POST","path":"/api/evals","description":"Create an eval run. Body: { name, testInput, endpoints: [{ namespace, endpointName, label }], judgeModel? }."},{"method":"POST","path":"/api/evals/{id}/run","description":"Execute an eval: call all endpoints, judge responses, store results."},{"method":"POST","path":"/api/evals/{id}/iterate","description":"Run N iterations and aggregate scores. Body: { iterations?, batchSize? }."},{"method":"GET","path":"/api/evals/{id}","description":"Get eval run details and results."},{"method":"POST","path":"/api/endpoints/{id}/ai-eval","description":"Full pipeline: AI improve → create version → eval → auto-promote if better. Body: { testInput, guidance? }."}]},"providers":{"label":"Providers","description":"Service provider management — onboarding, syncing, pricing.","routes":[{"method":"GET","path":"/api/providers","description":"List all active providers."},{"method":"POST","path":"/api/providers","description":"Register a provider. Body: { name, displayName, defaultWalletAddress, baseUrl, namespace }."},{"method":"GET","path":"/api/providers/{id}","description":"Get provider details."},{"method":"PUT","path":"/api/providers/{id}","description":"Update provider."},{"method":"DELETE","path":"/api/providers/{id}","description":"Delete provider."},{"method":"GET","path":"/api/providers/{id}/endpoints","description":"List all endpoints in provider's namespace."},{"method":"POST","path":"/api/providers/onboard","description":"Onboard via cURL. Auto-detects API structure, auth, schema."},{"method":"POST","path":"/api/providers/parse-curl","description":"Parse a cURL command without persisting."},{"method":"POST","path":"/api/providers/validate","description":"Validate endpoint config before registering."},{"method":"POST","path":"/api/providers/{id}/sync","description":"Sync endpoints from OpenAPI spec."},{"method":"POST","path":"/api/providers/{id}/pricing","description":"Bulk update pricing for provider endpoints."},{"method":"POST","path":"/api/providers/{id}/wallets","description":"Bulk update wallet addresses for provider endpoints."}]},"ai":{"label":"AI","description":"AI-powered tools for the platform.","routes":[{"method":"POST","path":"/api/ai/chat","description":"Chat with AI assistant about APINow.fun. Body: { messages, conversationId? }."},{"method":"POST","path":"/api/ai/generate-endpoint","description":"Generate endpoint ideas via vector similarity. Body: { guidance?, category? }."},{"method":"POST","path":"/api/ai/enhance-llm","description":"Generate a PRD from endpoint data for AI developer agents."}]},"stats":{"label":"Stats & Meta","description":"Platform-level stats, health, model info.","routes":[{"method":"GET","path":"/api/stats","description":"Total API calls and total endpoints."},{"method":"GET","path":"/api/health","description":"Health check — ok, timestamp, node version."},{"method":"GET","path":"/api/models","description":"Available AI model configurations."},{"method":"GET","path":"/api/models/pricing","description":"AI model pricing per million tokens."},{"method":"GET","path":"/api/tokens","description":"List launched endpoint tokens."},{"method":"GET","path":"/.well-known/x402","description":"x402 discovery — all payable resources, facilitator URL, pricing."}]}}}