{"openapi":"3.1.0","info":{"title":"Jobero Agent API","version":"1.0.0","description":"Paid programmatic access to Jobero job search. Buy prepaid credit packs (pack1: 1 search / EUR 9.99, pack3: 3 searches / EUR 24.99) via Stripe Checkout. Searches are paid only — no free runs. See https://jobero.ai/auth.md.","contact":{"email":"support@jobero.com"}},"servers":[{"url":"https://jobero.ai"}],"x-x402":{"version_supported":[1,2],"scheme":"exact","network":"eip155:84532","network_v1":"base-sepolia","asset":"0x036CbD53842c5426634e7929541eC2318f3dCF7e","pay_to":"0x768C6248B6c12801838b3d7AbF24Ae5d51EF8fb3","facilitator":"https://x402.org/facilitator","prices":[{"pack":"pack1","credits":1,"amount_atomic":"11500000","amount_usdc":"11.50"},{"pack":"pack3","credits":3,"amount_atomic":"28750000","amount_usdc":"28.75"}],"request_header":"PAYMENT-SIGNATURE (v2) or X-PAYMENT (v1)","challenge_header":"PAYMENT-REQUIRED","receipt_header":"PAYMENT-RESPONSE","payable_operations":["startSearch","createCheckout"],"note":"Settles on Base Sepolia (testnet) while x402 support is in preview."},"x-service-info":{"categories":["jobs","ai"],"docs":{"homepage":"https://jobero.ai/agents","apiReference":"https://jobero.ai/auth.md","llms":"https://jobero.ai/llms.txt"}},"paths":{"/api/v1":{"get":{"summary":"Agent API payment challenge","operationId":"apiRoot","responses":{"402":{"description":"Payment required — register, buy credits via POST /api/v1/checkout","content":{"application/json":{"schema":{"type":"object","required":["error","message","credits_available","offers","docs"],"properties":{"error":{"type":"string","const":"payment_required"},"message":{"type":"string"},"credits_available":{"type":"integer","minimum":0},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["pack1","pack3"]},"credits":{"type":"integer"},"amount":{"type":"integer","description":"Amount in cents"},"currency":{"type":"string","example":"eur"},"label":{"type":"string"},"recommended":{"type":"boolean"},"checkout_path":{"type":"string","example":"/api/v1/checkout"},"checkout_body":{"type":"object","properties":{"pack":{"type":"string","enum":["pack1","pack3"]}}}}}},"docs":{"type":"string","format":"uri"}}}}}}},"x-payment-info":{"offers":[{"id":"pack1","amount":"999","currency":"eur","description":"One Jobero search — 7 matched roles with tailored CV + cover letter","intent":"charge","method":"stripe"},{"id":"pack3","amount":"2499","currency":"eur","description":"Three Jobero search credits — best value (~€8.33 per search)","intent":"charge","method":"stripe"}]}},"post":{"summary":"Agent API payment challenge","operationId":"apiRootPost","responses":{"402":{"description":"Payment required — register, buy credits via POST /api/v1/checkout","content":{"application/json":{"schema":{"type":"object","required":["error","message","credits_available","offers","docs"],"properties":{"error":{"type":"string","const":"payment_required"},"message":{"type":"string"},"credits_available":{"type":"integer","minimum":0},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["pack1","pack3"]},"credits":{"type":"integer"},"amount":{"type":"integer","description":"Amount in cents"},"currency":{"type":"string","example":"eur"},"label":{"type":"string"},"recommended":{"type":"boolean"},"checkout_path":{"type":"string","example":"/api/v1/checkout"},"checkout_body":{"type":"object","properties":{"pack":{"type":"string","enum":["pack1","pack3"]}}}}}},"docs":{"type":"string","format":"uri"}}}}}}},"x-payment-info":{"offers":[{"id":"pack1","amount":"999","currency":"eur","description":"One Jobero search — 7 matched roles with tailored CV + cover letter","intent":"charge","method":"stripe"},{"id":"pack3","amount":"2499","currency":"eur","description":"Three Jobero search credits — best value (~€8.33 per search)","intent":"charge","method":"stripe"}]}}},"/api/v1/health":{"get":{"summary":"Health check","operationId":"health","responses":{"200":{"description":"OK"}}}},"/api/v1/register":{"post":{"summary":"Register agent and receive API key (0 credits)","operationId":"register","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["email"],"properties":{"email":{"type":"string","format":"email"},"name":{"type":"string"},"key_name":{"type":"string"}}}}}},"responses":{"201":{"description":"Created — api_key returned once; credits_available is 0","content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string"},"email":{"type":"string","format":"email"},"api_key":{"type":"string"},"key_id":{"type":"string"},"key_prefix":{"type":"string"}}}}}},"409":{"description":"Email already belongs to a Jobero web account — create a key at POST /api/v1/keys while signed in"}}}},"/api/v1/checkout":{"post":{"summary":"Create Stripe Checkout for prepaid search credits","operationId":"createCheckout","security":[{"bearerAuth":[]}],"x-payment-info":{"offers":[{"id":"pack1","amount":"999","currency":"eur","description":"One Jobero search — 7 matched roles with tailored CV + cover letter","intent":"charge","method":"stripe"},{"id":"pack3","amount":"2499","currency":"eur","description":"Three Jobero search credits — best value (~€8.33 per search)","intent":"charge","method":"stripe"}]},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"pack":{"type":"string","enum":["pack1","pack3"],"default":"pack3","description":"Credit pack SKU. Defaults to pack3 when omitted."}}}}}},"responses":{"200":{"description":"checkout_url for payment","content":{"application/json":{"schema":{"type":"object","properties":{"checkout_url":{"type":"string","format":"uri"},"session_id":{"type":"string"},"pack":{"type":"string","enum":["pack1","pack3"]},"credits":{"type":"integer"},"amount_cents":{"type":"integer"},"currency":{"type":"string","example":"eur"},"credits_available":{"type":"integer","minimum":0}}}}}},"402":{"description":"Payment required","content":{"application/json":{"schema":{"type":"object","required":["error","message","credits_available","offers","docs"],"properties":{"error":{"type":"string","const":"payment_required"},"message":{"type":"string"},"credits_available":{"type":"integer","minimum":0},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["pack1","pack3"]},"credits":{"type":"integer"},"amount":{"type":"integer","description":"Amount in cents"},"currency":{"type":"string","example":"eur"},"label":{"type":"string"},"recommended":{"type":"boolean"},"checkout_path":{"type":"string","example":"/api/v1/checkout"},"checkout_body":{"type":"object","properties":{"pack":{"type":"string","enum":["pack1","pack3"]}}}}}},"docs":{"type":"string","format":"uri"}}}}}}}},"get":{"summary":"List credits, recent orders, and available packs","operationId":"getCredits","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Credits summary","content":{"application/json":{"schema":{"type":"object","properties":{"credits_available":{"type":"integer","minimum":0},"paid_order_id":{"type":"string","nullable":true},"recent_orders":{"type":"array","items":{"type":"object"}},"packs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["pack1","pack3"]},"credits":{"type":"integer"},"amount_cents":{"type":"integer"},"label":{"type":"string"},"recommended":{"type":"boolean"}}}}}}}}}}}},"/api/v1/checkout/success":{"get":{"summary":"Confirm payment when Stripe webhook is delayed","operationId":"checkoutSuccess","security":[{"bearerAuth":[]}],"parameters":[{"name":"session_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Payment confirmed","content":{"application/json":{"schema":{"type":"object","properties":{"credits_available":{"type":"integer","minimum":0}}}}}}}}},"/api/v1/searches":{"post":{"summary":"Start a paid search (consumes one credit)","operationId":"startSearch","security":[{"bearerAuth":[]}],"x-payment-info":{"offers":[{"id":"pack1","amount":"999","currency":"eur","description":"One Jobero search — 7 matched roles with tailored CV + cover letter","intent":"charge","method":"stripe"},{"id":"pack3","amount":"2499","currency":"eur","description":"Three Jobero search credits — best value (~€8.33 per search)","intent":"charge","method":"stripe"}]},"parameters":[{"name":"Idempotency-Key","in":"header","required":false,"schema":{"type":"string"},"description":"Optional. Same key replays the original response instead of consuming a second credit."}],"requestBody":{"required":true,"content":{"multipart/form-data":{"schema":{"type":"object","required":["profile","cv"],"properties":{"profile":{"type":"string","description":"JSON profile string"},"cv":{"type":"string","format":"binary"}}}},"application/json":{"schema":{"type":"object","description":"Profile fields plus cv_base64 and cv_type"}}}},"responses":{"201":{"description":"Search queued","content":{"application/json":{"schema":{"type":"object","properties":{"ok":{"type":"boolean"},"run_id":{"type":"string"},"status":{"type":"string"},"credits_remaining":{"type":"integer","minimum":0},"order_id":{"type":"string"}}}}}},"402":{"description":"Payment required — no paid credit","content":{"application/json":{"schema":{"type":"object","required":["error","message","credits_available","offers","docs"],"properties":{"error":{"type":"string","const":"payment_required"},"message":{"type":"string"},"credits_available":{"type":"integer","minimum":0},"offers":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","enum":["pack1","pack3"]},"credits":{"type":"integer"},"amount":{"type":"integer","description":"Amount in cents"},"currency":{"type":"string","example":"eur"},"label":{"type":"string"},"recommended":{"type":"boolean"},"checkout_path":{"type":"string","example":"/api/v1/checkout"},"checkout_body":{"type":"object","properties":{"pack":{"type":"string","enum":["pack1","pack3"]}}}}}},"docs":{"type":"string","format":"uri"}}}}}},"429":{"description":"A search is already running — poll it until terminal before starting another"}}},"get":{"summary":"Get search run status and matches","operationId":"getSearch","security":[{"bearerAuth":[]}],"parameters":[{"name":"run_id","in":"query","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Run status; matches present on terminal success","content":{"application/json":{"schema":{"type":"object","properties":{"run":{"type":"object","properties":{"run_id":{"type":"string"},"status":{"type":"string"},"deliveries":{"type":"integer"},"target_jobs":{"type":"integer"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":"string","format":"date-time","nullable":true},"terminal":{"type":"boolean"},"progress":{"type":"number"},"stage":{"type":"string"},"user_message":{"type":"string"}}},"matches":{"type":"array","description":"Present on terminal success","items":{"type":"object","properties":{"title":{"type":"string"},"company":{"type":"string"},"url":{"type":"string","format":"uri"},"score":{"type":"number"},"rank":{"type":"integer"},"source":{"type":"string"},"match_reason":{"type":"string","nullable":true,"description":"Why the candidate fits this role, from scoring. Null for runs completed before 31 Jul 2026."},"delivered_at":{"type":"string","format":"date-time"}}}},"documents_note":{"type":"string"}}}}}}}}},"/api/v1/keys":{"get":{"summary":"List API keys","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Key list (prefixes only)"}}},"post":{"summary":"Create additional API key (Bearer key or signed-in session)","security":[{"bearerAuth":[]}],"responses":{"201":{"description":"New api_key"}}},"delete":{"summary":"Revoke API key","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Revoked"}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"API key from POST /api/v1/register (jbr_live_…)"}}}}