Rabota.ru 数据 API:职位、简历与投递
Rabota.ru 的 Android 客户端在 /v1/auth/password 登录(login、password、recaptchaResponse → token、tokenV3.accessToken)或在 /v1/auth/code 登录(accessCode),然后用 /v1/account/profile 注水“我的”资料——id、first_name、last_name、email、phones 与 has_resume。后续登录调用把该令牌作为 X-Token 头携带。
搜索提交到 /v1/jobs/query(total、relevant、vacancies、similarVacancies、facets),详情卡片来自 /v1/jobs/cards。投递走 /v1/applications/create 与 /v1/applications;简历、浏览与统计是 /v1/cv、/v1/cv/viewers 与 /v1/cv/stats。收藏、职位提醒订阅与招聘方聊天位于 /v1/jobs/saved、/v1/alerts 与 /v1/messages。
Rabota.ru 职位搜索应用(包名 ru.rabota.app2,版本 6.7.2)是 Работа.ру 招聘板的 Android 客户端,覆盖职位搜索、简历、投递与招聘方聊天,背后是第一方 JSON API。多数调用以 {request: ...} 包裹 POST JSON;登录签发 token 与 tokenV3.accessToken,后续以 X-Token 头携带。职位卡片暴露 title、salary、company 与 places,简历暴露 full_name、position 等字段。
应用截图
API 端点一览
密码登录并签发 X-Token
POST
/v1/auth/passwordosint用邮箱或手机号加密码(含 recaptchaResponse)认证,返回后续每个登录调用作为 X-Token 携带的会话令牌,以及 tokenV3 的 accessToken、expiresIn 与 signature。
认证方式: 无需认证。响应中的令牌在后续登录调用中作为 X-Token 头发送。
- login
- password
- recaptchaResponse
- success
- token
- tokenV3
- accessToken
- expiresIn
- signature
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/password HTTP/1.1 Content-Type: application/json Accept: application/json { "login": "[email protected]", "password": "********", "recaptchaResponse": "03AGdBq25..." }{ "success": true, "token": "xt_7f3a9c2e1b", "tokenV3": { "accessToken": "at_9c1d4e77", "expiresIn": 2592000, "signature": "sig_b41e02" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据邮箱/手机号密码登录界面重建会话载荷携带 token、tokenV3.accessToken、expiresIn 与 signature
一次性验证码登录
POST
/v1/auth/codeosint完成短信或邮箱验证码登录,签发与密码登录相同的 X-Token 会话。
认证方式: 无需认证。使用短信/邮箱验证码流程的 login 与 accessCode,返回与密码登录相同的 token / tokenV3 对。
- login
- accessCode
- success
- token
- tokenV3
- accessToken
- expiresIn
- signature
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/auth/code HTTP/1.1 Content-Type: application/json Accept: application/json { "login": "+79991234567", "accessCode": "482913" }{ "success": true, "token": "xt_8a21c0", "tokenV3": { "accessToken": "at_c0ffee", "expiresIn": 2592000, "signature": "sig_91ab" } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据短信/邮箱一次性验证码登录界面重建令牌 / tokenV3 结构与密码登录响应相同
获取已登录资料
POST
/v1/account/profileosint返回已登录求职者资料(id、first_name、last_name、email、phones、has_resume、status、photo),供“我的”标签页与简历编辑器使用。
认证方式: 使用密码或一次性验证码登录返回的 X-Token 头。
- id
- first_name
- middle_name
- last_name
- value
- confirmed
- phones
- numberInternational
- extension
- isAccepted
- isMain
- isConfirmed
- has_resume
- status
- photo
- region
- birth_at
- is_available_autoresponse
- fields
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/account/profile HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "fields": ["id", "first_name", "last_name", "email", "phones", "has_resume", "status", "photo"] }{ "id": 4412001, "first_name": "Ivan", "middle_name": "Sergeevich", "last_name": "Petrov", "email": {"value": "[email protected]", "confirmed": true}, "phones": [{ "numberInternational": "+79991234567", "extension": null, "isAccepted": true, "isMain": true, "isConfirmed": true }], "has_resume": true, "status": {"id": "active"}, "photo": {"url": "https://cdn.example.org/photo/4412001.jpg"}, "region": {"id": 1, "name": "Москва"}, "birth_at": "1992-04-12", "is_available_autoresponse": true }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“我的”标签页与简历编辑器流程重建字段名取自已登录资料载荷
搜索职位并返回相似结果
POST
/v1/jobs/queryopendata为搜索结果页返回分页职位列表及 similarVacancies 与 facets(title、salary.from/to/currencySign、company、places)。
认证方式: 可选 X-Token。登录调用会在每张职位卡片上填充 is_favourite 与 response。
- query
- location
- regionId
- filters
- salary
- disallowRelocation
- hasPhone
- offset
- limit
- fields
- total
- relevant
- vacancies
- similarVacancies
- facets
- id
- title
- from
- to
- currencySign
- short_description
- is_promoted
- is_favourite
- company
- name
- isVerified
- isInBlacklist
- isSbbol
- places
- address
- places_summary
- publish_start_at
- status
- contact_person
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/jobs/query HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "query": "product manager", "location": {"type": "region", "name": "Москва", "regionId": 1}, "filters": {"salary": 180000, "disallowRelocation": true, "hasPhone": true}, "offset": 0, "limit": 20, "fields": [ "vacancies.id", "vacancies.title", "vacancies.salary", "vacancies.short_description", "vacancies.is_promoted", "vacancies.is_favourite", "vacancies.company", "vacancies.places", "vacancies.response", "vacancies.places_summary", "facets", "vacancies.publish_start_at", "vacancies.status", "vacancies.contact_person" ] } }{ "response": { "total": 1284, "relevant": 412, "vacancies": [{ "id": 55102113, "title": "Product Manager", "salary": {"from": 180000, "to": 250000, "currencySign": "₽"}, "short_description": "Own the candidate experience squad.", "is_promoted": true, "is_favourite": false, "company": {"id": 1337, "name": "Example Corp", "type": "direct", "isVerified": true, "isInBlacklist": false, "isSbbol": false}, "places": [{"id": 1, "name": "Москва", "address": "Тверская 1"}], "places_summary": "Москва", "publish_start_at": "2026-09-20T10:15:00+03:00", "status": "published", "contact_person": {"name": "Anna Petrova"} }], "similarVacancies": [], "facets": {} } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据搜索结果页流程及其相似职位行重建线上字段名取自职位列表、薪资与公司载荷
按 id 获取职位卡片
POST
/v1/jobs/cardsopendata按 vacancyIds 为职位页与深链接注水职位详情卡片(description、salary、company、places、skills、experience)。
认证方式: 可选 X-Token。登录后的附加字段包括 is_favourite 与 response。
- vacancyIds
- regionId
- fields
- vacancies
- id
- title
- description
- salary
- from
- to
- currencySign
- company
- places
- skills
- experience
- is_allow_express_resume
- operating_schedule
- work_schedule_id
- publish_start_at
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/jobs/cards HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "vacancyIds": [55102113, 55102114], "regionId": 1, "fields": ["id", "title", "salary", "description", "company", "places", "skills", "experience"] } }{ "response": { "vacancies": [{ "id": 55102113, "title": "Product Manager", "description": "Lead the candidate experience squad.", "salary": {"from": 180000, "to": 250000, "currencySign": "₽"}, "company": {"id": 1337, "name": "Example Corp", "isVerified": true}, "places": [{"id": 1, "name": "Москва", "address": "Тверская 1"}], "skills": ["SQL", "product management"], "experience": {"id": 3}, "is_allow_express_resume": true, "operating_schedule": {"id": "fullDay"}, "work_schedule_id": 1, "publish_start_at": "2026-09-20T10:15:00+03:00" }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位详情页与深链接处理重建字段名取自完整职位、薪资与公司载荷
投递职位
POST
/v1/applications/createopendata用选定的简历向职位提交投递,当 isSucceed 为 true 时返回 responseId。
认证方式: 需要 X-Token。
- vacancyId
- resumeId
- needCreateResponse
- responseId
- isSucceed
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/applications/create HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "vacancyId": 55102113, "resumeId": 88012, "needCreateResponse": true } }{ "response": { "responseId": 901334, "resumeId": 88012, "isSucceed": true } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据简历投递确认界面重建响应载荷携带 responseId、resumeId 与 isSucceed
列出投递
POST
/v1/applicationsopendata为“投递”标签页分页返回已登录求职者的投递(id、createdAt、vacancy、status、hasNew、isAutoresponse、resume)。
认证方式: 需要 X-Token。
- offset
- limit
- total
- rows
- id
- createdAt
- lastModifiedAt
- status
- hasNew
- isAutoresponse
- sentBy
- vacancy
- resume
- full_name
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/applications HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "offset": 0, "limit": 20 } }{ "response": { "total": 14, "rows": [{ "id": 901334, "createdAt": "2026-09-21T08:30:00+03:00", "lastModifiedAt": "2026-09-22T11:00:00+03:00", "status": "in_progress", "hasNew": true, "isAutoresponse": false, "sentBy": "applicant", "vacancy": {"id": 55102113, "title": "Product Manager"}, "resume": {"id": 88012, "full_name": "Ivan Petrov"} }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“投递”标签页流程及其逐项状态载荷重建字段名取自投递列表行(status、hasNew、isAutoresponse)
列出我的简历
POST
/v1/cvosint返回已登录求职者的简历(full_name、position、salary、is_published、skills、experiences),供“我的简历”与投递选择器使用。
认证方式: 需要 X-Token。
- resumes
- id
- full_name
- first_name
- last_name
- middle_name
- position
- phone
- salary
- is_published
- published_at
- visibility
- skills
- experiences
- educations
- region
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/cv HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": {} }{ "response": { "resumes": [{ "id": 88012, "full_name": "Ivan Petrov", "first_name": "Ivan", "last_name": "Petrov", "middle_name": "Sergeevich", "position": "Product Manager", "phone": "+79991234567", "email": "[email protected]", "salary": {"from": 220000, "currencySign": "₽"}, "is_published": true, "published_at": "2026-09-01T12:00:00+03:00", "visibility": "everyone", "skills": ["SQL", "product management"], "experiences": [{"company": "Example Corp", "position": "Product Manager"}], "educations": [{"organization": "MGU"}], "region": {"id": 1, "name": "Москва"} }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“我的简历”界面与投递简历选择器重建字段名取自简历列表载荷
列出雇主对简历的浏览
POST
/v1/cv/viewersosint为简历浏览页列出打开过简历的雇主(viewDate、isNew、company.id/name/url)。
认证方式: 需要 X-Token。
- resumeId
- offset
- limit
- total
- views
- viewDate
- isNew
- company
- id
- name
- url
- offerBranches
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/cv/viewers HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "resumeId": 88012, "offset": 0, "limit": 20 } }{ "response": { "total": 128, "views": [{ "viewDate": "2026-09-22T09:14:00+03:00", "isNew": true, "company": { "id": 1337, "name": "Example Corp", "url": "https://example.org/company/1337", "offerBranches": [] } }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“谁看过我的简历”界面及其雇主载荷重建
简历统计
POST
/v1/cv/statsopendata返回“我的简历”仪表盘上每份简历的计数器(views、viewsNew、responses、responsesNew、vacancies、vacanciesNew)。
认证方式: 需要 X-Token。
- statistics
- id
- views
- viewsNew
- responses
- responsesNew
- vacancies
- vacanciesNew
- query
- location
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/cv/stats HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": {} }{ "response": { "statistics": [{ "id": 88012, "views": 128, "viewsNew": 7, "responses": 14, "responsesNew": 2, "vacancies": 42, "vacanciesNew": 5, "query": "product manager", "location": {"type": "region", "name": "Москва", "regionId": 1} }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“我的简历”仪表盘计数器重建字段名取自每份简历的统计载荷
列出收藏的职位
POST
/v1/jobs/savedopendata为“收藏”标签页分页返回已保存的职位(title、salary、company、is_favourite、responded_recently)。
认证方式: 需要 X-Token。
- fields
- sort
- offset
- limit
- vacancies
- id
- title
- is_favourite
- salary
- company
- short_description
- publish_start_at
- responded_recently
- is_allow_express_resume
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/jobs/saved HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "fields": ["id", "places", "is_favourite", "title", "salary", "is_promoted", "company", "short_description", "response", "places_summary", "contact_person", "status", "publish_start_at", "responded_recently", "is_allow_express_resume"], "sort": "add_to_fav", "offset": 0, "limit": 20 } }{ "response": { "vacancies": [{ "id": 55102113, "title": "Product Manager", "is_favourite": true, "salary": {"from": 180000, "to": 250000, "currencySign": "₽"}, "company": {"id": 1337, "name": "Example Corp"}, "short_description": "Own the candidate experience squad.", "publish_start_at": "2026-09-20T10:15:00+03:00", "responded_recently": false }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据“收藏”标签页列表重建字段名取自收藏职位卡片载荷
列出职位提醒订阅
POST
/v1/alertsopendata为“提醒”界面列出已保存的职位提醒订阅(id、isReceiveEmails、searchParams、newVacanciesQuantity)。
认证方式: 需要 X-Token。
- total
- subscriptions
- id
- isReceiveEmails
- newVacanciesQuantity
- searchParams
- query
- location
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/alerts HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": {} }{ "response": { "total": 3, "subscriptions": [{ "id": 77401, "isReceiveEmails": true, "newVacanciesQuantity": 12, "searchParams": { "query": "product manager", "location": {"type": "region", "name": "Москва", "regionId": 1} } }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位提醒/订阅界面重建字段名取自订阅行载荷
投递的招聘方聊天
POST
/v1/messagesopendata分页返回某次投递的招聘方/求职者消息(authorName、text、isEmployerMessage、sentAt)。配套的 POST /v1/messages/send 接受 responseId 与 text。
认证方式: 需要 X-Token。
- responseId
- limit
- offset
- messages
- id
- authorId
- sentAt
- authorName
- authorSurname
- text
- isEmployerMessage
- isNewMessage
- updatedAt
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/messages HTTP/1.1 X-Token: xt_7f3a9c2e1b Content-Type: application/json Accept: application/json { "request": { "responseId": 901334, "limit": 50, "offset": 0 } }{ "response": { "messages": [{ "id": 4401, "authorId": 1337, "sentAt": "2026-09-22T11:04:00+03:00", "authorName": "Anna", "authorSurname": "Petrova", "text": "When can you start?", "isEmployerMessage": true, "isNewMessage": true, "updatedAt": "2026-09-22T11:04:00+03:00" }] } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据投递聊天会话界面重建配套的发送变体接受 responseId 与 text
职业薪资聚合
POST
/v1/insights/salaryopendata为与职位关联的职业/薪资洞察界面返回职业薪资分桶(salary、vacancyCount)以及 name 与 slug。
认证方式: 可选 X-Token。
- vacancyId
- id
- name
- slug
- specialization
- salaries
- salary
- vacancyCount
依据应用界面重构的示意示例,并非实时抓包。
POST /v1/insights/salary HTTP/1.1 Content-Type: application/json Accept: application/json { "request": { "vacancyId": 55102113 } }{ "response": { "id": 73, "name": "Менеджер продукта", "slug": "product-manager", "specialization": {"id": 12, "name": "IT"}, "salaries": { "salaries": [ {"salary": 150000, "vacancyCount": 80}, {"salary": 220000, "vacancyCount": 40} ] } } }依据应用界面推导;端点细节为示意说明,并非实际抓包。
依据职位卡片上的职业/薪资洞察界面重建字段名取自职业薪资分桶载荷
数据类别
- 会话令牌
- 求职者资料
- 职位列表
- 雇主卡片
- 投递
- 简历
- 简历浏览
- 收藏的职位
- 职位提醒
- 招聘方聊天
- 薪资聚合
数据使用场景与案例
区域职位普查
用 POST /v1/jobs/query 传入 location.regionId 与 filters.salary,拉取 title、salary.from/to/currencySign、company.name 与 places,再经 /v1/jobs/cards 注水完整描述——无需抓取搜索 HTML 即可得到劳动力市场叠加层。
投递流程叠加层
轮询 /v1/applications 获取 status、hasNew 与 isAutoresponse,再分页 /v1/messages(authorName、text、isEmployerMessage、sentAt),让辅助收件箱只浮现含新雇主消息的会话。
简历可见性仪表盘
结合 /v1/cv/stats(views、viewsNew、responses、vacancies)与 /v1/cv/viewers(viewDate、isNew、company.name/url),绘制哪些雇主打开过已发布简历的图表。
薪资区间查询
用 vacancyId 调用 /v1/insights/salary,读取职业 name、slug 与 salaries[].salary/vacancyCount,将一份报价与该招聘板自身的分布对比。
常见问题
Rabota.ru 安卓应用如何对 API 调用鉴权?
无需认证的 POST /v1/auth/password(login、password、recaptchaResponse)或 /v1/auth/code(login、accessCode)返回 token 及 tokenV3.accessToken、expiresIn 与 signature。之后每个登录调用都把该令牌作为 X-Token 头发送。
哪些端点驱动职位搜索?
POST /v1/jobs/query 接受 query、location.regionId、filters.salary 与 fields 列表,返回 total、relevant、vacancies[]、similarVacancies[] 与 facets。职位详情卡片由 POST /v1/jobs/cards 按 vacancyIds 注水。
简历与投递位于哪些端点?
POST /v1/cv 列出简历(full_name、position、is_published)。用 POST /v1/applications/create(vacancyId、resumeId)投递。“投递”标签页分页 /v1/applications;招聘方聊天是 /v1/messages。
请求体如何组织?
Android 客户端提交 JSON,多数 v1 职位/简历/投递调用把载荷包裹为 {request: ...}。配套的较旧网页流程独立于这套原生接口面。
相关主题
- rabota.ru api
- rabota.ru 安卓数据 api
- X-Token
- 职位搜索
- 简历浏览
- 招聘方聊天
- 薪资聚合
- rabota.ru 职位搜索
需要集成这个 App 的数据 API?
我们可为任意指定 App 交付定制集成——源码交付 USD 500 起,或托管 API 按调用计费。告诉我们您需要的数据即可。
- 每个项目均签 NDA 与 SOW
- 3–7 天交付
- 验收通过后才付款
- 仅在授权范围内作业