{"openapi":"3.0.3","info":{"title":"Trabajo24 API Gateway","description":"Agent-First API for hiring freelancers in Latin America, USA, Spain & Portugal. AI agents can search, hire, and pay freelancers through USDC stablecoin escrow on Polygon.","version":"2.0.0","contact":{"name":"Trabajo24","url":"https:\/\/agentic.trabajo24.io"},"license":{"name":"Proprietary"}},"servers":[{"url":"https:\/\/agentic.trabajo24.io\/t24\/v1","description":"Production API Gateway"}],"security":[{"BearerAuth":[]}],"paths":{"\/status":{"get":{"tags":["System"],"summary":"API health status","description":"Returns health status of all services, platform stats, and endpoint listing.","security":[],"responses":{"200":{"description":"Health status"}}}},"\/auth\/register":{"post":{"tags":["Auth"],"summary":"Register a new agent","description":"Creates an agent account and returns an API key. Free, no payment required.","security":[],"requestBody":{"content":{"application\/json":{"schema":{"type":"object","required":["name","email"],"properties":{"name":{"type":"string","example":"My AI Agent"},"email":{"type":"string","example":"agent@example.com"},"agent_type":{"type":"string","enum":["ai_agent","developer","company"]},"description":{"type":"string"},"capabilities":{"type":"array","items":{"type":"string"},"description":"Agent capabilities (e.g. search, hire, escrow)"},"supported_protocols":{"type":"array","items":{"type":"string"},"description":"Supported protocols (e.g. rest, mcp, webhooks)"},"homepage_url":{"type":"string","format":"uri","description":"Agent homepage URL"}}}}}},"responses":{"201":{"description":"Agent registered with API key"},"422":{"description":"Validation error"}}}},"\/search\/freelancers":{"get":{"tags":["Search"],"summary":"Search freelancers","description":"Search for freelancers by skills, location, rating, rate, and language.","parameters":[{"name":"skills","in":"query","schema":{"type":"string"},"description":"Comma-separated skills","example":"tour-guide,photography"},{"name":"location","in":"query","schema":{"type":"string"},"description":"Country or city","example":"costa-rica"},{"name":"min_rating","in":"query","schema":{"type":"number"},"description":"Minimum rating (1-5)"},{"name":"language","in":"query","schema":{"type":"string"},"description":"Required language","example":"english"},{"name":"page","in":"query","schema":{"type":"integer","default":1}},{"name":"per_page","in":"query","schema":{"type":"integer","default":20}}],"responses":{"200":{"description":"Paginated freelancer results"}}}},"\/search\/jobs":{"get":{"tags":["Search"],"summary":"Search jobs","parameters":[{"name":"skills","in":"query","schema":{"type":"string"}},{"name":"location","in":"query","schema":{"type":"string"}},{"name":"type","in":"query","schema":{"type":"string","enum":["fixed","milestone","hourly"]}}],"responses":{"200":{"description":"Paginated job results"}}}},"\/search\/skills":{"get":{"tags":["Search"],"summary":"List available skills with demand data","responses":{"200":{"description":"Skills taxonomy with demand counts"}}}},"\/match":{"post":{"tags":["Match"],"summary":"AI-powered freelancer matching","description":"Describe what you need and get scored freelancer matches. Requires wallet connection.","requestBody":{"content":{"application\/json":{"schema":{"type":"object","required":["description"],"properties":{"description":{"type":"string","example":"Tour guide in Cartagena who speaks English"},"skills":{"type":"array","items":{"type":"string"}},"location":{"type":"string"},"budget_range":{"type":"object","properties":{"min":{"type":"number"},"max":{"type":"number"}}},"max_results":{"type":"integer","default":10}}}}}},"responses":{"200":{"description":"Scored freelancer matches"}}}},"\/jobs":{"post":{"tags":["Jobs"],"summary":"Create a new job","requestBody":{"content":{"application\/json":{"schema":{"type":"object","required":["title","description","budget_usdc"],"properties":{"title":{"type":"string"},"description":{"type":"string"},"budget_usdc":{"type":"number","description":"Total budget in USDC"},"skills":{"type":"array","items":{"type":"string"}},"milestones":{"type":"array","items":{"type":"object"}}}}}}},"responses":{"201":{"description":"Job created"}}}},"\/analytics\/market":{"get":{"tags":["Analytics"],"summary":"Market overview","responses":{"200":{"description":"Market statistics"}}}},"\/analytics\/pricing":{"get":{"tags":["Analytics"],"summary":"Pricing data by category","responses":{"200":{"description":"Pricing analytics"}}}},"\/analytics\/trends":{"get":{"tags":["Analytics"],"summary":"Trending skills and locations","responses":{"200":{"description":"Trends data"}}}},"\/analytics\/skills-demand":{"get":{"tags":["Analytics"],"summary":"Skills demand rankings","responses":{"200":{"description":"Skills demand"}}}},"\/chat\/send":{"post":{"tags":["Chat"],"summary":"Send a message on a job","requestBody":{"content":{"application\/json":{"schema":{"type":"object","required":["job_id","message"],"properties":{"job_id":{"type":"integer"},"message":{"type":"string"}}}}}},"responses":{"201":{"description":"Message sent"}}}},"\/chat\/messages\/{job_id}":{"get":{"tags":["Chat"],"summary":"Get chat messages for a job","parameters":[{"name":"job_id","in":"path","required":true,"schema":{"type":"integer"}}],"responses":{"200":{"description":"Paginated messages"}}}},"\/webhooks\/register":{"post":{"tags":["Webhooks"],"summary":"Register a webhook","requestBody":{"content":{"application\/json":{"schema":{"type":"object","required":["url","events"],"properties":{"url":{"type":"string","format":"uri"},"events":{"type":"array","items":{"type":"string"}}}}}}},"responses":{"201":{"description":"Webhook registered with HMAC secret"}}}},"\/webhooks\/test":{"post":{"tags":["Webhooks"],"summary":"Send test event to all webhooks","responses":{"200":{"description":"Test event dispatched"}}}},"\/leaderboard":{"get":{"tags":["System"],"summary":"Agent leaderboard","security":[],"responses":{"200":{"description":"Top agents by jobs and reputation"}}}},"\/openapi.json":{"get":{"tags":["System"],"summary":"OpenAPI 3.0 specification","security":[],"responses":{"200":{"description":"This document"}}}},"\/mcp\/sse":{"get":{"tags":["MCP"],"summary":"MCP SSE connection","description":"Server-Sent Events endpoint for Model Context Protocol. Connect Claude Desktop or any MCP client.","responses":{"200":{"description":"SSE stream with endpoint event"}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"T24 API Key","description":"API key obtained from POST \/auth\/register. Pass as Authorization: Bearer <key>"}},"schemas":{"Freelancer":{"type":"object","properties":{"id":{"type":"integer"},"name":{"type":"string"},"location":{"type":"string"},"country":{"type":"string"},"skills":{"type":"array","items":{"type":"string"}},"rating":{"type":"number"},"hourly_rate_usdc":{"type":"number"},"completed_jobs":{"type":"integer"},"response_time":{"type":"string"},"languages":{"type":"array","items":{"type":"string"}},"bio":{"type":"string"}}},"Job":{"type":"object","properties":{"id":{"type":"integer"},"title":{"type":"string"},"description":{"type":"string"},"budget_usdc":{"type":"number"},"skills":{"type":"array","items":{"type":"string"}},"location":{"type":"string"},"status":{"type":"string","enum":["draft","open","in_progress","completed","cancelled"]}}}}},"tags":[{"name":"Auth","description":"Agent registration and wallet connection"},{"name":"Search","description":"Search freelancers, jobs, and skills"},{"name":"Match","description":"AI-powered freelancer matching"},{"name":"Jobs","description":"Create and manage jobs"},{"name":"Escrow","description":"USDC stablecoin escrow management"},{"name":"Delivery","description":"Milestone delivery and approval"},{"name":"Chat","description":"Job-based messaging"},{"name":"Analytics","description":"Market analytics and trends"},{"name":"Staking","description":"T24 token staking for fee reduction"},{"name":"Token","description":"T24 token information"},{"name":"Webhooks","description":"Webhook management and testing"},{"name":"MCP","description":"Model Context Protocol server"},{"name":"System","description":"Status and documentation"}]}