{"openapi":"3.1.0","info":{"title":"Company Jobs API (ATS job boards)","version":"1.0.0","description":"Current job openings straight from a company's own career site, normalized into one schema: title, department, locations, ISO country, remote/hybrid/onsite, employment type, salary range (from the ATS or read from the description), posting date, job and apply URLs, and optionally the description. Give a company website and the API finds its applicant tracking system; or give the board URL directly. Reads only the official public job-board feeds of Greenhouse, Lever, Ashby, Workday, SmartRecruiters, Workable, Recruitee, Personio, Breezy HR, Teamtailor, BambooHR, Rippling, Pinpoint, Gem, JazzHR, Homerun and Freshteam. No aggregators and no scraped job sites: every job is live on the employer's own board.\n\nAll endpoints accept GET (query string) or POST (JSON body). Errors use one shape: `{\"success\": false, \"error\": {\"code\", \"message\", \"retryable\"}}`. When a numeric `Retry-After` header is present, `error.retryAfterSeconds` is included.","contact":{"name":"TidyTools","url":"https://apify.com/tidytools"}},"servers":[{"url":"https://webcapture-api.yukailin.workers.dev","description":"Origin (reachable only through the marketplace gateway)"}],"tags":[{"name":"Jobs"}],"paths":{"/api/v1/jobs":{"get":{"operationId":"jobsGet","summary":"Get a company's open jobs (GET)","description":"Finds the company's job board (links and embeds on its site, its careers page, then verified name guesses) and returns its jobs, filtered and normalized. Per-job descriptions are fetched only for the jobs returned. `hasMore` tells you when more jobs match than `limit`; `notes` explain partial scans of very large boards.","tags":["Jobs"],"parameters":[{"name":"company","schema":{"type":"string"},"description":"The company: its website or careers page (`stripe.com`, `https://careers.airbnb.com`), an ATS job board URL (`https://jobs.lever.co/leverdemo`, `https://job-boards.greenhouse.io/airbnb`, a Workday site) or `ats:slug` (`greenhouse:airbnb`, `lever:leverdemo`, `ashby:notion`). Aliases: `url`, `domain`, `board`.","required":true,"example":"greenhouse:airbnb","in":"query"},{"name":"keyword","schema":{"type":"string"},"description":"Title keywords, comma-separated (any of). Short words (`US`, `QA`) match whole words.","required":false,"example":"engineer","in":"query"},{"name":"excludeKeyword","schema":{"type":"string"},"description":"Drop jobs whose title contains any of these comma-separated words.","required":false,"example":"intern","in":"query"},{"name":"location","schema":{"type":"string"},"description":"Location words, comma-separated (any of), matched against city, region, country and workplace type.","required":false,"example":"london, remote","in":"query"},{"name":"department","schema":{"type":"string"},"description":"Department or team words, comma-separated (any of).","required":false,"in":"query"},{"name":"remote","schema":{"type":"boolean","default":false},"description":"Only remote jobs.","required":false,"in":"query"},{"name":"postedWithinDays","schema":{"type":"integer","default":0,"minimum":0,"maximum":365},"description":"Only jobs posted in the last N days (0 = any).","required":false,"in":"query"},{"name":"description","schema":{"type":"string","default":"none","enum":["none","text","html","both"]},"description":"Include the job description as plain text, HTML or both.","required":false,"in":"query"},{"name":"limit","schema":{"type":"integer","default":50,"minimum":1,"maximum":200},"description":"Maximum jobs returned (at most 50 with descriptions).","required":false,"in":"query"},{"name":"guessBoard","schema":{"type":"boolean","default":true},"description":"When the website links no job board, try boards named after the domain (used only when the company name or website matches).","required":false,"in":"query"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"company":{"type":"string"},"companyWebsite":{"type":"string","nullable":true},"ats":{"type":"string"},"atsSlug":{"type":"string"},"boardUrl":{"type":"string"},"detectionMethod":{"type":"string"},"foundOn":{"type":"string","nullable":true},"totalJobs":{"type":"integer"},"matchedJobs":{"type":"integer"},"returned":{"type":"integer"},"hasMore":{"type":"boolean"},"jobs":{"type":"array","items":{"type":"object","properties":{"jobKey":{"type":"string"},"jobId":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"department":{"type":"string"},"team":{"type":"string","nullable":true},"location":{"type":"string"},"locations":{"type":"array","items":{"type":"string"}},"country":{"type":"string"},"workplaceType":{"type":"string"},"remote":{"type":"boolean"},"employmentType":{"type":"string","nullable":true},"employmentTypeText":{"type":"string","nullable":true},"salaryMin":{"type":"string","nullable":true},"salaryMax":{"type":"string","nullable":true},"salaryCurrency":{"type":"string","nullable":true},"salaryPeriod":{"type":"string","nullable":true},"salaryText":{"type":"string","nullable":true},"salarySource":{"type":"string","nullable":true},"postedAt":{"type":"string"},"postedAtApproximate":{"type":"boolean"},"updatedAt":{"type":"string"},"jobUrl":{"type":"string"},"applyUrl":{"type":"string"},"requisitionId":{"type":"string","nullable":true}}}},"notes":{"type":"array","items":{}}}},"example":{"success":true,"company":"Airbnb","companyWebsite":null,"ats":"greenhouse","atsSlug":"airbnb","boardUrl":"https://job-boards.greenhouse.io/airbnb","detectionMethod":"input","foundOn":null,"totalJobs":158,"matchedJobs":50,"returned":3,"hasMore":true,"jobs":[{"jobKey":"greenhouse:airbnb:8214444","jobId":"8214444","title":"Business Systems Engineer, Tech Foundations","company":"Airbnb","department":"Information Technology","team":null,"location":"San Francisco, CA","locations":["San Francisco, CA"],"country":"US","workplaceType":"remote","remote":true,"employmentType":null,"employmentTypeText":null,"salaryMin":null,"salaryMax":null,"salaryCurrency":null,"salaryPeriod":null,"salaryText":null,"salarySource":null,"postedAt":"2026-09-18T20:54:20.000Z","postedAtApproximate":false,"updatedAt":"2026-09-30T00:00:54.000Z","jobUrl":"https://careers.airbnb.com/positions/8214444?gh_jid=8214444","applyUrl":"https://careers.airbnb.com/positions/8214444?gh_jid=8214444","requisitionId":null},{"jobKey":"greenhouse:airbnb:8154749","jobId":"8154749","title":"Early Career Software Engineer, Quality Engineering","company":"Airbnb","department":"Software Engineering","team":null,"location":"Sao Paulo - Brazil","locations":["Sao Paulo - Brazil"],"country":"BR","workplaceType":"remote","remote":true,"employmentType":null,"employmentTypeText":null,"salaryMin":null,"salaryMax":null,"salaryCurrency":null,"salaryPeriod":null,"salaryText":null,"salarySource":null,"postedAt":"2026-08-24T19:41:54.000Z","postedAtApproximate":false,"updatedAt":"2026-09-30T00:00:54.000Z","jobUrl":"https://careers.airbnb.com/positions/8154749?gh_jid=8154749","applyUrl":"https://careers.airbnb.com/positions/8154749?gh_jid=8154749","requisitionId":null},{"jobKey":"greenhouse:airbnb:7532824","jobId":"7532824","title":"Engineering Manager, Guest & Host","company":"Airbnb","department":"Software Engineering","team":null,"location":"London, United Kingdom","locations":["London, United Kingdom"],"country":"GB","workplaceType":"hybrid","remote":false,"employmentType":null,"employmentTypeText":null,"salaryMin":null,"salaryMax":null,"salaryCurrency":null,"salaryPeriod":null,"salaryText":null,"salarySource":null,"postedAt":"2026-01-23T16:33:08.000Z","postedAtApproximate":false,"updatedAt":"2026-09-30T00:00:54.000Z","jobUrl":"https://careers.airbnb.com/positions/7532824?gh_jid=7532824","applyUrl":"https://careers.airbnb.com/positions/7532824?gh_jid=7532824","requisitionId":null}],"notes":[]}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"No readable job board was found (`board_not_found`: the company uses an ATS without a public feed, or none was found), or the site could not be reached (`target_unreachable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"board_not_found","message":"https://www.example.com uses icims, which has no public job feed (supported: greenhouse, lever, ...).","details":{"atsDetected":["icims"]}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"jobs","summary":"Get a company's open jobs","description":"Finds the company's job board (links and embeds on its site, its careers page, then verified name guesses) and returns its jobs, filtered and normalized. Per-job descriptions are fetched only for the jobs returned. `hasMore` tells you when more jobs match than `limit`; `notes` explain partial scans of very large boards.\n\nThe same parameters as the GET form, sent as a JSON body.","tags":["Jobs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","description":"The company: its website or careers page (`stripe.com`, `https://careers.airbnb.com`), an ATS job board URL (`https://jobs.lever.co/leverdemo`, `https://job-boards.greenhouse.io/airbnb`, a Workday site) or `ats:slug` (`greenhouse:airbnb`, `lever:leverdemo`, `ashby:notion`). Aliases: `url`, `domain`, `board`."},"keyword":{"type":"string","description":"Title keywords, comma-separated (any of). Short words (`US`, `QA`) match whole words."},"excludeKeyword":{"type":"string","description":"Drop jobs whose title contains any of these comma-separated words."},"location":{"type":"string","description":"Location words, comma-separated (any of), matched against city, region, country and workplace type."},"department":{"type":"string","description":"Department or team words, comma-separated (any of)."},"remote":{"type":"boolean","default":false,"description":"Only remote jobs."},"postedWithinDays":{"type":"integer","default":0,"minimum":0,"maximum":365,"description":"Only jobs posted in the last N days (0 = any)."},"description":{"type":"string","default":"none","enum":["none","text","html","both"],"description":"Include the job description as plain text, HTML or both."},"limit":{"type":"integer","default":50,"minimum":1,"maximum":200,"description":"Maximum jobs returned (at most 50 with descriptions)."},"guessBoard":{"type":"boolean","default":true,"description":"When the website links no job board, try boards named after the domain (used only when the company name or website matches)."}},"required":["company"]}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"company":{"type":"string"},"companyWebsite":{"type":"string","nullable":true},"ats":{"type":"string"},"atsSlug":{"type":"string"},"boardUrl":{"type":"string"},"detectionMethod":{"type":"string"},"foundOn":{"type":"string","nullable":true},"totalJobs":{"type":"integer"},"matchedJobs":{"type":"integer"},"returned":{"type":"integer"},"hasMore":{"type":"boolean"},"jobs":{"type":"array","items":{"type":"object","properties":{"jobKey":{"type":"string"},"jobId":{"type":"string"},"title":{"type":"string"},"company":{"type":"string"},"department":{"type":"string"},"team":{"type":"string","nullable":true},"location":{"type":"string"},"locations":{"type":"array","items":{"type":"string"}},"country":{"type":"string"},"workplaceType":{"type":"string"},"remote":{"type":"boolean"},"employmentType":{"type":"string","nullable":true},"employmentTypeText":{"type":"string","nullable":true},"salaryMin":{"type":"string","nullable":true},"salaryMax":{"type":"string","nullable":true},"salaryCurrency":{"type":"string","nullable":true},"salaryPeriod":{"type":"string","nullable":true},"salaryText":{"type":"string","nullable":true},"salarySource":{"type":"string","nullable":true},"postedAt":{"type":"string"},"postedAtApproximate":{"type":"boolean"},"updatedAt":{"type":"string"},"jobUrl":{"type":"string"},"applyUrl":{"type":"string"},"requisitionId":{"type":"string","nullable":true}}}},"notes":{"type":"array","items":{}}}},"example":{"success":true,"company":"Airbnb","companyWebsite":null,"ats":"greenhouse","atsSlug":"airbnb","boardUrl":"https://job-boards.greenhouse.io/airbnb","detectionMethod":"input","foundOn":null,"totalJobs":158,"matchedJobs":50,"returned":3,"hasMore":true,"jobs":[{"jobKey":"greenhouse:airbnb:8214444","jobId":"8214444","title":"Business Systems Engineer, Tech Foundations","company":"Airbnb","department":"Information Technology","team":null,"location":"San Francisco, CA","locations":["San Francisco, CA"],"country":"US","workplaceType":"remote","remote":true,"employmentType":null,"employmentTypeText":null,"salaryMin":null,"salaryMax":null,"salaryCurrency":null,"salaryPeriod":null,"salaryText":null,"salarySource":null,"postedAt":"2026-09-18T20:54:20.000Z","postedAtApproximate":false,"updatedAt":"2026-09-30T00:00:54.000Z","jobUrl":"https://careers.airbnb.com/positions/8214444?gh_jid=8214444","applyUrl":"https://careers.airbnb.com/positions/8214444?gh_jid=8214444","requisitionId":null},{"jobKey":"greenhouse:airbnb:8154749","jobId":"8154749","title":"Early Career Software Engineer, Quality Engineering","company":"Airbnb","department":"Software Engineering","team":null,"location":"Sao Paulo - Brazil","locations":["Sao Paulo - Brazil"],"country":"BR","workplaceType":"remote","remote":true,"employmentType":null,"employmentTypeText":null,"salaryMin":null,"salaryMax":null,"salaryCurrency":null,"salaryPeriod":null,"salaryText":null,"salarySource":null,"postedAt":"2026-08-24T19:41:54.000Z","postedAtApproximate":false,"updatedAt":"2026-09-30T00:00:54.000Z","jobUrl":"https://careers.airbnb.com/positions/8154749?gh_jid=8154749","applyUrl":"https://careers.airbnb.com/positions/8154749?gh_jid=8154749","requisitionId":null},{"jobKey":"greenhouse:airbnb:7532824","jobId":"7532824","title":"Engineering Manager, Guest & Host","company":"Airbnb","department":"Software Engineering","team":null,"location":"London, United Kingdom","locations":["London, United Kingdom"],"country":"GB","workplaceType":"hybrid","remote":false,"employmentType":null,"employmentTypeText":null,"salaryMin":null,"salaryMax":null,"salaryCurrency":null,"salaryPeriod":null,"salaryText":null,"salarySource":null,"postedAt":"2026-01-23T16:33:08.000Z","postedAtApproximate":false,"updatedAt":"2026-09-30T00:00:54.000Z","jobUrl":"https://careers.airbnb.com/positions/7532824?gh_jid=7532824","applyUrl":"https://careers.airbnb.com/positions/7532824?gh_jid=7532824","requisitionId":null}],"notes":[]}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"No readable job board was found (`board_not_found`: the company uses an ATS without a public feed, or none was found), or the site could not be reached (`target_unreachable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"board_not_found","message":"https://www.example.com uses icims, which has no public job feed (supported: greenhouse, lever, ...).","details":{"atsDetected":["icims"]}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/jobs/detect":{"get":{"operationId":"detectAtsGet","summary":"Detect which ATS a company uses (GET)","description":"Which applicant tracking system a company uses, its board URL and slug, open job count, remote jobs, newest and oldest posting dates, top departments and locations. ATSs without a public feed (iCIMS, Taleo, SuccessFactors, Jobvite, ADP, Oracle, UKG and others) are reported with `atsSupported: false`; `found: false` when nothing was found.","tags":["Jobs"],"parameters":[{"name":"company","schema":{"type":"string"},"description":"The company: its website or careers page (`stripe.com`, `https://careers.airbnb.com`), an ATS job board URL (`https://jobs.lever.co/leverdemo`, `https://job-boards.greenhouse.io/airbnb`, a Workday site) or `ats:slug` (`greenhouse:airbnb`, `lever:leverdemo`, `ashby:notion`). Aliases: `url`, `domain`, `board`.","required":true,"example":"greenhouse:airbnb","in":"query"},{"name":"guessBoard","schema":{"type":"boolean","default":true},"description":"Try boards named after the domain when the site links none.","required":false,"in":"query"}],"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"input":{"type":"string"},"found":{"type":"boolean"},"ats":{"type":"string"},"atsSupported":{"type":"boolean"},"atsSlug":{"type":"string"},"boardUrl":{"type":"string"},"company":{"type":"string"},"companyWebsite":{"type":"string","nullable":true},"jobCount":{"type":"integer"},"remoteJobs":{"type":"integer"},"newestJobPostedAt":{"type":"string"},"oldestJobPostedAt":{"type":"string"},"topDepartments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"jobs":{"type":"integer"}}}},"topLocations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"jobs":{"type":"integer"}}}},"detectionMethod":{"type":"string"},"foundOn":{"type":"string","nullable":true},"notes":{"type":"array","items":{}}}},"example":{"success":true,"input":"stripe.com","found":true,"ats":"greenhouse","atsSupported":true,"atsSlug":"stripe","boardUrl":"https://job-boards.greenhouse.io/stripe","company":"Stripe","companyWebsite":null,"jobCount":715,"remoteJobs":112,"newestJobPostedAt":"2026-09-30T15:40:42.000Z","oldestJobPostedAt":"2023-11-01T17:50:50.000Z","topDepartments":[{"name":"1185 Account Executives (EMEA)","jobs":25},{"name":"Global Operations","jobs":22},{"name":"8611 Security Analytics","jobs":19},{"name":"1642 Product Sales - MaaS","jobs":19}],"topLocations":[{"name":"Singapore","jobs":51},{"name":"Dublin","jobs":41},{"name":"London","jobs":31},{"name":"Bengaluru","jobs":30}],"detectionMethod":"slug-guess","foundOn":null,"notes":[]}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"No readable job board was found (`board_not_found`: the company uses an ATS without a public feed, or none was found), or the site could not be reached (`target_unreachable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"board_not_found","message":"https://www.example.com uses icims, which has no public job feed (supported: greenhouse, lever, ...).","details":{"atsDetected":["icims"]}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"detectAts","summary":"Detect which ATS a company uses","description":"Which applicant tracking system a company uses, its board URL and slug, open job count, remote jobs, newest and oldest posting dates, top departments and locations. ATSs without a public feed (iCIMS, Taleo, SuccessFactors, Jobvite, ADP, Oracle, UKG and others) are reported with `atsSupported: false`; `found: false` when nothing was found.\n\nThe same parameters as the GET form, sent as a JSON body.","tags":["Jobs"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"company":{"type":"string","description":"The company: its website or careers page (`stripe.com`, `https://careers.airbnb.com`), an ATS job board URL (`https://jobs.lever.co/leverdemo`, `https://job-boards.greenhouse.io/airbnb`, a Workday site) or `ats:slug` (`greenhouse:airbnb`, `lever:leverdemo`, `ashby:notion`). Aliases: `url`, `domain`, `board`."},"guessBoard":{"type":"boolean","default":true,"description":"Try boards named after the domain when the site links none."}},"required":["company"]}}}},"responses":{"200":{"description":"Success.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"input":{"type":"string"},"found":{"type":"boolean"},"ats":{"type":"string"},"atsSupported":{"type":"boolean"},"atsSlug":{"type":"string"},"boardUrl":{"type":"string"},"company":{"type":"string"},"companyWebsite":{"type":"string","nullable":true},"jobCount":{"type":"integer"},"remoteJobs":{"type":"integer"},"newestJobPostedAt":{"type":"string"},"oldestJobPostedAt":{"type":"string"},"topDepartments":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"jobs":{"type":"integer"}}}},"topLocations":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"jobs":{"type":"integer"}}}},"detectionMethod":{"type":"string"},"foundOn":{"type":"string","nullable":true},"notes":{"type":"array","items":{}}}},"example":{"success":true,"input":"stripe.com","found":true,"ats":"greenhouse","atsSupported":true,"atsSlug":"stripe","boardUrl":"https://job-boards.greenhouse.io/stripe","company":"Stripe","companyWebsite":null,"jobCount":715,"remoteJobs":112,"newestJobPostedAt":"2026-09-30T15:40:42.000Z","oldestJobPostedAt":"2023-11-01T17:50:50.000Z","topDepartments":[{"name":"1185 Account Executives (EMEA)","jobs":25},{"name":"Global Operations","jobs":22},{"name":"8611 Security Analytics","jobs":19},{"name":"1642 Product Sales - MaaS","jobs":19}],"topLocations":[{"name":"Singapore","jobs":51},{"name":"Dublin","jobs":41},{"name":"London","jobs":31},{"name":"Bengaluru","jobs":30}],"detectionMethod":"slug-guess","foundOn":null,"notes":[]}}}},"400":{"description":"Invalid parameter (`invalid_request`) or a private/local target (`url_not_allowed`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"url_not_allowed","message":"private, local and reserved hosts are not allowed"}}}}},"413":{"description":"Request body or target document too large (`too_large`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"422":{"description":"No readable job board was found (`board_not_found`: the company uses an ATS without a public feed, or none was found), or the site could not be reached (`target_unreachable`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"},"example":{"success":false,"error":{"code":"board_not_found","message":"https://www.example.com uses icims, which has no public job feed (supported: greenhouse, lever, ...).","details":{"atsDetected":["icims"]}}}}}},"502":{"description":"Temporary failure on our side (`upstream_error`); safe to retry.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"504":{"description":"The target did not respond in time (`timeout`).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Error":{"type":"object","required":["success","error"],"properties":{"success":{"const":false},"error":{"type":"object","required":["code","message"],"properties":{"code":{"type":"string","enum":["not_configured","unauthorized","not_found","method_not_allowed","invalid_request","rate_limited","url_not_allowed","target_blocked","target_unreachable","target_error","unsupported_content","too_large","timeout","upstream_error","board_not_found","app_not_found"]},"message":{"type":"string"},"retryable":{"type":"boolean","description":"true for rate_limited, timeout, upstream_error and browser_busy; false for other errors."},"retryAfterSeconds":{"type":"integer","description":"Seconds to wait before retrying, when a numeric Retry-After header is present."},"details":{"type":"object","additionalProperties":true}}}}}}}}