{"platform":{"name":"ProxAI Logistics","version":"3.0.0","description":"Physical task execution platform for AI agents in Quebec, Canada. Real humans execute real-world tasks on behalf of AI agents.","operator":"ProxAI Logistics Inc.","base_location":"Terrebonne, QC, Canada","contact":"admin@proxaiqc.com","website":"https://www.proxaiqc.com"},"services":[{"id":"SVC-01","name":"Visual Audits & Site Reporting","typical_hours":{"min":1,"max":2},"typical_cost_cad":{"min":100,"max":250}},{"id":"SVC-02","name":"Marketplace & Kijiji Logistics","typical_hours":{"min":2,"max":4},"typical_cost_cad":{"min":200,"max":500}},{"id":"SVC-03","name":"Auction Proxy","typical_hours":{"min":4,"max":8},"typical_cost_cad":{"min":550,"max":1000}},{"id":"SVC-04","name":"Technical Field Support (IT Level 1)","typical_hours":{"min":1,"max":2},"typical_cost_cad":{"min":150,"max":300}},{"id":"SVC-05","name":"Field Tasks & Document Courier","typical_hours":{"min":0.5,"max":2},"typical_cost_cad":{"min":75,"max":200}}],"service_zone":{"type":"Feature","properties":{"name":"ProxAI Service Zone","description":"Primary service area: Greater Montreal, Laurentians, Lanaudière. Extended coverage up to Mont-Tremblant.","center":"Terrebonne, QC"},"geometry":{"type":"Polygon","coordinates":[[[-74.35,45.35],[-73.4,45.35],[-73.4,46.25],[-74.35,46.25],[-74.35,45.35]]]}},"known_locations":{"description":"Pre-computed distances from Terrebonne for instant estimates (no Google Maps API call needed).","cities":[{"name":"Terrebonne","distance_km":0},{"name":"Mascouche","distance_km":8},{"name":"Lorraine","distance_km":12},{"name":"Repentigny","distance_km":20},{"name":"Blainville","distance_km":20},{"name":"Laval","distance_km":25},{"name":"Montreal","distance_km":35},{"name":"Mirabel","distance_km":35},{"name":"Saint-Jérôme","distance_km":40},{"name":"Saint-Hippolyte","distance_km":50},{"name":"Joliette","distance_km":55},{"name":"Saint-Sauveur","distance_km":60},{"name":"Sainte-Adèle","distance_km":70},{"name":"Lachute","distance_km":80},{"name":"Wentworth-Nord","distance_km":85},{"name":"Sainte-Agathe","distance_km":90},{"name":"Mont-Tremblant","distance_km":120},{"name":"L'Ascension","distance_km":170}]},"operational_hours":{"timezone":"America/Toronto","review":{"weekdays":"08:00–22:00","weekends":"09:00–18:00"},"execution":{"weekdays":"07:00–20:00","weekends":"08:00–17:00"},"note":"Urgent tasks may be processed outside standard hours at operator discretion."},"avg_response_times":{"task_review":{"standard":"< 24 hours","urgent":"< 12 hours"},"task_execution":{"standard":"< 72 hours after payment","urgent":"< 24 hours after payment"},"payment_window":"48 hours from acceptance"},"languages":["fr","en"],"currencies":{"pricing":"CAD","payment":"USDC (Solana or Base L2)","note":"Estimates are in CAD. Payment is in USDC at current CAD→USD exchange rate."},"authentication":{"methods":["x-api-key header","Authorization: Bearer <key>"],"create_key":"POST /api/api-keys","scopes":["audit_only","task_create","task_cancel","billing_read","admin"],"default_scopes":["audit_only","task_create"],"rate_limits":{"authenticated":"60 requests/minute per key","anonymous":"20 requests/minute per IP"}},"features":{"idempotency":{"header":"Idempotency-Key","ttl":"24 hours","supported_endpoints":["POST /api/submit-task"]},"webhooks":{"registration":"POST /api/webhooks","signing":"HMAC-SHA256 (X-ProxAI-Signature header)","max_per_key":5,"events":["task.created","task.accepted","task.rejected","task.counter_offered","task.paid","task.dispatched","task.completed","task.failed","task.payment_expired"],"retry":"3 attempts with exponential backoff (2s, 8s, 32s)"},"callback_url":{"description":"Per-task webhook URL. Include callback_url in submit-task POST body.","signing":"Unsigned (backward compatible). Use registered webhooks for HMAC signing."},"sandbox":{"header":"X-ProxAI-Mode: sandbox","description":"Simulates full task lifecycle without real execution. Tasks auto-advance through statuses."},"mcp":{"endpoint":"/api/mcp","protocol":"MCP 2025-03-26 (Streamable HTTP)","transport":"stateless","description":"Model Context Protocol server for native AI agent integration. 11 tools mapping to all API operations.","tools":["list_services","get_estimate","submit_task","check_task_status","score_task","get_capabilities","register_api_key","register_webhook","get_reputation","check_balance","pre_authorize_cost"],"client_config":{"mcpServers":{"proxai":{"url":"https://www.proxaiqc.com/api/mcp"}}}},"sse":{"endpoint":"/api/tasks/stream?task_id=XXX","description":"Server-Sent Events for real-time task lifecycle updates. Supports Last-Event-ID for reconnection.","event_types":["task.created","task.assigned","task.paid","task.on_site","task.completed","task.failed","stream.connected","stream.timeout"],"auto_close":"Closes on terminal statuses (completed, rejected, failed, payment_expired)","timeout":"Configurable via X-Stream-Timeout header (default 4h, max 4h)"},"billing":{"endpoints":["GET /api/billing?action=balance","GET /api/billing?action=transactions","POST /api/billing (action: pre_authorize)"],"description":"Real-time budget tracking. Pre-authorize costs before submitting. Webhook events: billing.low_balance, billing.payment_required.","max_cost_guard":"Use max_cost_cad in submit-task to auto-reject tasks exceeding your budget.","scope_required":"billing_read"},"agent_identity":{"header":"X-Agent-Identity: {model}/{agent_name}/{org_id}","example":"X-Agent-Identity: claude-opus-4/customer-service/acme-corp","description":"Optional header for agent activity logging. Enables per-org analytics and compliance CSV exports.","analytics_endpoints":["GET /api/analytics?action=agents (admin)","GET /api/analytics?action=org&org_id=xxx (admin)","GET /api/analytics?action=export&org_id=xxx&format=csv (admin)"],"anomaly_detection":"Volume > 2x hourly average triggers automated alert."}},"endpoints":{"discovery":[{"method":"GET","path":"/api/capabilities","description":"This manifest"},{"method":"GET","path":"/api/services","description":"Service catalog with contracts"},{"method":"POST","path":"/api/mcp","description":"MCP server (Streamable HTTP, JSON-RPC 2.0)"},{"method":"GET","path":"/openapi.json","description":"OpenAPI 3.1 spec"},{"method":"GET","path":"/llms.txt","description":"LLM-readable overview"}],"core":[{"method":"POST","path":"/api/submit-task","description":"Submit a new task","auth":"optional (recommended)"},{"method":"GET","path":"/api/submit-task?task_id=X","description":"Check task status","auth":"optional"},{"method":"GET","path":"/api/estimate","description":"Get cost estimate","auth":"optional"},{"method":"POST","path":"/api/task-score","description":"Rate a completed task","auth":"optional"}],"auth":[{"method":"POST","path":"/api/api-keys","description":"Create API key","auth":"none"},{"method":"GET","path":"/api/api-keys","description":"List keys (admin)","auth":"admin"},{"method":"DELETE","path":"/api/api-keys","description":"Revoke key (admin)","auth":"admin"}],"webhooks":[{"method":"POST","path":"/api/webhooks","description":"Register webhook","auth":"required"},{"method":"GET","path":"/api/webhooks","description":"List webhooks","auth":"required"},{"method":"DELETE","path":"/api/webhooks","description":"Delete webhook","auth":"required"}],"streaming":[{"method":"GET","path":"/api/tasks/stream?task_id=X","description":"SSE stream for real-time task updates"}],"billing":[{"method":"GET","path":"/api/billing?action=balance","description":"Real-time available balance","auth":"billing_read"},{"method":"GET","path":"/api/billing?action=transactions","description":"Filterable transaction history","auth":"billing_read"},{"method":"POST","path":"/api/billing","description":"Pre-authorize cost (max_cost_cad)","auth":"billing_read"}],"analytics":[{"method":"GET","path":"/api/analytics?action=agents","description":"Activity by agent","auth":"admin"},{"method":"GET","path":"/api/analytics?action=org&org_id=X","description":"Activity by organization","auth":"admin"},{"method":"GET","path":"/api/analytics?action=export&org_id=X&format=csv","description":"CSV export for compliance","auth":"admin"}],"admin":[{"method":"POST","path":"/api/task-review","description":"Review task (approve/reject/counter)","auth":"admin"},{"method":"POST","path":"/api/task-complete","description":"Dispatch/complete task","auth":"admin"},{"method":"GET","path":"/api/task-list","description":"List all tasks","auth":"admin"}]},"quick_start":{"step_1":"Create an API key: POST /api/api-keys { name: 'my-agent', contact: 'agent@example.com' }","step_2":"Browse services: GET /api/services","step_3":"Get estimate: GET /api/estimate?location=montreal&hours=2","step_4":"Submit task: POST /api/submit-task (with x-api-key header)","step_5":"Poll status: GET /api/submit-task?task_id=PROX-XXX (or use callback_url/webhooks)"},"_links":{"self":"/api/capabilities","mcp":"/api/mcp","openapi":"/openapi.json","services":"/api/services","llms_txt":"/llms.txt","website":"https://www.proxaiqc.com"}}