{"openapi":"3.1.0","info":{"title":"AI Training Jobs API","version":"1.0.0","description":"Every open AI training job from 14 platforms we have joined and applied to ourselves, refreshed daily. Pay is as the platform states it. Eligibility says which countries a listing names; a listing that only says \"Remote\" is \"unstated\", which does not mean worldwide. Link people to each job's page (`/jobs/{slug}`), which carries the pay explanation, eligibility and the referral disclosure. Free, no key, read-only.","contact":{"url":"https://aitrainingjobs.xyz/about"}},"servers":[{"url":"https://aitrainingjobs.xyz"}],"security":[],"externalDocs":{"description":"llms.txt: what the site is, with live numbers","url":"https://aitrainingjobs.xyz/llms.txt"},"paths":{"/api/jobs":{"get":{"operationId":"searchJobs","summary":"Search open AI training jobs","description":"Returns 24 jobs per call, newest first unless sort=pay, plus the total matching. Page with offset. All filters are optional and combine.","parameters":[{"name":"q","in":"query","schema":{"type":"string","description":"Words in the job title or platform name, e.g. \"radiologist\", \"Spanish\", \"Python\". Max 80 characters.","maxLength":80}},{"name":"field","in":"query","schema":{"type":"string","description":"Field of expertise.","enum":["software","medicine","science","math","finance","law","language","audio","writing","design","humanities","general"]}},{"name":"task","in":"query","schema":{"type":"string","description":"Kind of data work the title names. \"data\" = any of them (data annotation jobs). Most expert roles name no task.","enum":["data","rating","annotation","collection","transcription"]}},{"name":"country","in":"query","schema":{"type":"string","description":"Country the applicant lives in. By default keeps listings that don't rule it out: those naming it, saying worldwide, or only saying \"Remote\". Add named=1 for only those naming it or saying worldwide. \"all\" turns the filter off.","enum":["all","united-states","india","united-kingdom","canada","australia","philippines","pakistan","bangladesh","nigeria","kenya","egypt","ghana","south-africa","brazil","mexico","argentina","colombia","chile","peru","germany","france","spain","portugal","italy","netherlands","belgium","austria","switzerland","ireland","poland","czechia","slovakia","slovenia","hungary","romania","bulgaria","croatia","serbia","greece","cyprus","malta","estonia","latvia","lithuania","finland","sweden","norway","denmark","iceland","luxembourg","liechtenstein","monaco","gibraltar","ukraine","turkey","israel","united-arab-emirates","saudi-arabia","qatar","japan","south-korea","china","taiwan","hong-kong","singapore","malaysia","indonesia","thailand","vietnam","cambodia","nepal","sri-lanka","bhutan","timor-leste","new-zealand","kazakhstan","tajikistan","uruguay","costa-rica","ecuador","venezuela","morocco","ethiopia"]}},{"name":"named","in":"query","schema":{"type":"string","description":"With country: \"1\" keeps only listings that name the country or say worldwide.","enum":["1"]}},{"name":"min","in":"query","schema":{"type":"number","minimum":1,"description":"Minimum top hourly rate in USD, e.g. 60. Excludes listings without an hourly rate."}},{"name":"platform","in":"query","schema":{"type":"string","description":"Platform slug.","enum":["mercor","micro1","sme-careers","afterquery","handshake-ai","turing","ethos","babel-audio","mindrift","outlier","anyone-ai","braintrust","terac","sovrano-ai"]}},{"name":"level","in":"query","schema":{"type":"string","description":"\"beginner\": only listings with no degree or specialist requirement.","enum":["beginner"]}},{"name":"lang","in":"query","schema":{"type":"string","description":"Language the work needs, case-insensitive.","examples":["Arabic","Bengali","Bulgarian","Cantonese","Chinese","Croatian"]}},{"name":"sort","in":"query","schema":{"type":"string","description":"\"pay\" sorts by top hourly rate, highest first. Default newest first. Never sorted by referral value.","enum":["new","pay"]}},{"name":"offset","in":"query","schema":{"type":"integer","minimum":0,"default":0,"description":"Skip this many results (pages of 24)."}}],"responses":{"200":{"description":"Matching jobs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/JobList"}}}}}}}},"components":{"schemas":{"JobList":{"type":"object","required":["jobs","total"],"properties":{"jobs":{"type":"array","items":{"$ref":"#/components/schemas/Job"},"maxItems":24},"total":{"type":"integer","description":"All jobs matching the filters."}}},"Eligibility":{"type":"object","required":["kind","countries"],"properties":{"kind":{"type":"string","description":"\"worldwide\": the listing says so. \"list\": it names countries. \"unstated\": it only says \"Remote\" (not the same as worldwide; check on the platform).","enum":["worldwide","list","unstated"]},"countries":{"type":"array","items":{"type":"string","description":"Country slug","enum":["united-states","india","united-kingdom","canada","australia","philippines","pakistan","bangladesh","nigeria","kenya","egypt","ghana","south-africa","brazil","mexico","argentina","colombia","chile","peru","germany","france","spain","portugal","italy","netherlands","belgium","austria","switzerland","ireland","poland","czechia","slovakia","slovenia","hungary","romania","bulgaria","croatia","serbia","greece","cyprus","malta","estonia","latvia","lithuania","finland","sweden","norway","denmark","iceland","luxembourg","liechtenstein","monaco","gibraltar","ukraine","turkey","israel","united-arab-emirates","saudi-arabia","qatar","japan","south-korea","china","taiwan","hong-kong","singapore","malaysia","indonesia","thailand","vietnam","cambodia","nepal","sri-lanka","bhutan","timor-leste","new-zealand","kazakhstan","tajikistan","uruguay","costa-rica","ecuador","venezuela","morocco","ethiopia"]},"description":"Countries named; empty unless kind is \"list\"."},"fromTitle":{"type":"boolean","description":"With kind \"list\": the countries come from the job title, not a location field."}}},"Job":{"type":"object","required":["id","slug","title","platform","payModel","field","elig"],"properties":{"id":{"type":"string","description":"Stable job id (UUID)."},"slug":{"type":"string","description":"Job page path: https://aitrainingjobs.xyz/jobs/{slug}. Send people there."},"title":{"type":"string","description":"Job title as the platform posts it."},"platform":{"type":"string","description":"Platform name."},"partnerSlug":{"type":"string","description":"Platform slug; its page is /platforms/{partnerSlug}.","enum":["mercor","micro1","sme-careers","afterquery","handshake-ai","turing","ethos","babel-audio","mindrift","outlier","anyone-ai","braintrust","terac","sovrano-ai"]},"source":{"type":"string","description":"Feed the listing came from (internal name)."},"logo":{"type":"string","description":"Platform logo path on this site."},"payModel":{"type":"string","description":"\"hourly\": payMin/payMax are USD per hour. \"per_audio\": paid per recording or transcript. \"unlisted\": no pay stated.","enum":["hourly","per_audio","unlisted"]},"payMin":{"type":["number","null"],"description":"Bottom of the stated hourly range, USD. Often null (\"up to\" rates)."},"payMax":{"type":["number","null"],"description":"Top of the stated hourly range, USD."},"top":{"type":["number","null"],"description":"The listing's top hourly rate, used for pay comparisons."},"payRank":{"type":["string","null"],"enum":["top10","top25","bottom25",null],"description":"Top rate vs open hourly listings in the same field (needs 20+ rates). Never compared across fields."},"field":{"type":"string","description":"Field of expertise.","enum":["software","medicine","science","math","finance","law","language","audio","writing","design","humanities","general"]},"task":{"type":["string","null"],"enum":["rating","annotation","collection","transcription",null],"description":"Kind of data work the title names, or null."},"languages":{"type":"array","items":{"type":"string"},"description":"Languages the work needs."},"beginner":{"type":"boolean","description":"No degree or specialist experience required."},"elig":{"$ref":"#/components/schemas/Eligibility"},"location":{"type":["string","null"],"description":"Location text exactly as the platform states it."},"postedAt":{"type":["string","null"],"format":"date-time"},"applyUrl":{"type":["string","null"],"description":"Our referral link to apply on the platform (disclosed at /disclosure). Prefer linking the job page."}}}}}}