A lightweight REST API for agentic and programmatic access to Rebridge. Use it to build AI recruiting agents, integrate with your ATS, or automate candidate discovery — without compromising candidate privacy.
https://rebridge.meAll endpoints are relative to this base URL.
Every request must include your API key in the Authorization header:
Authorization: Bearer rb_live_<your-key>General endpoints: 120 requests / minute per key.
POST /api/v1/connections deducts 1 credit per request unless a company boost is active.
Exceed rate limits → 429 Too Many Requests.
{ "error": "Human-readable error message" }401
Invalid or missing API key
403
Role not permitted for this endpoint
404
Resource not found
402
Insufficient credits
409
Duplicate request
429
Rate limit or max keys exceeded
/api/v1/profilecandidate, companyReturn the authenticated user's own profile.
Response
{
"role": "candidate",
"profile": {
"id": "uuid",
"role_category": "Senior Software Engineer",
"seniority": "Senior",
"skills": ["TypeScript", "React", "Node.js"],
"salary_min": 2000000,
"salary_max": 3000000,
"salary_currency": "INR",
"is_live": true
}
}/api/v1/candidatescompany onlyPaginated list of live, anonymous candidate profiles. No personal identifiers are included — identity is protected until the candidate accepts a request.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| page | number | No | Page number (default 1) |
| per_page | number | No | Results per page (default 20, max 50) |
| skills | string | No | Comma-separated skills filter (OR match). E.g. TypeScript,React |
| domains | string | No | Comma-separated domain filter. E.g. Fintech,B2B SaaS |
| seniority | string | No | Junior | Mid | Senior | Lead | Principal | Director |
| work_mode | string | No | Remote | Hybrid | On-site | Flexible |
| salary_max | number | No | Only return candidates whose minimum salary is ≤ this value |
Response
{
"candidates": [
{
"id": "uuid",
"role_category": "Product Manager",
"seniority": "Senior",
"years_experience_min": 6,
"years_experience_max": 8,
"skills": ["Product strategy", "SQL", "Figma"],
"domains": ["B2B SaaS", "Fintech"],
"salary_min": 3000000,
"salary_max": 5000000,
"salary_currency": "INR",
"work_mode": "Remote"
}
],
"pagination": { "page": 1, "per_page": 20, "total": 84, "total_pages": 5 }
}/api/v1/connectionscandidate, companyList connection requests. Candidates see incoming requests; companies see requests they sent.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| status | string | No | Filter by status: pending | accepted | declined |
| page | number | No | Page number (default 1) |
| per_page | number | No | Results per page (default 20, max 50) |
Response
{
"connections": [
{
"id": "uuid",
"status": "pending",
"note": "We have an exciting backend role...",
"created_at": "2026-05-23T10:00:00Z",
"expires_at": "2026-05-26T10:00:00Z",
"candidate_profile_id": "uuid",
"company_id": "uuid"
}
],
"pagination": { "page": 1, "per_page": 20, "total": 3, "total_pages": 1 }
}/api/v1/connectionscompany onlySend a connection request to a candidate. Deducts 1 credit unless a boost is active. The candidate has 72 hours to respond.
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
| candidate_profile_id | string (uuid) | Yes | ID from GET /api/v1/candidates |
| note | string | Yes | Personal note to the candidate (visible after they accept) |
| job_posting_id | string (uuid) | No | Associate with a specific job posting |
Response
{
"connection": {
"id": "uuid",
"status": "pending",
"created_at": "2026-05-23T10:00:00Z",
"expires_at": "2026-05-26T10:00:00Z"
}
}/api/v1/jobscandidate, companyList job postings. Company keys return only that company's postings (all fields). Candidate keys return all live postings with company identity anonymised.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| page | number | No | Page number (default 1) |
| per_page | number | No | Results per page (default 20, max 50) |
Response
{
"jobs": [
{
"id": "uuid",
"title": "Senior Backend Engineer",
"location": "Bengaluru / Remote",
"work_mode": "Hybrid",
"salary_min": 3000000,
"salary_max": 5000000,
"currency": "INR",
"required_skills": ["Go", "Kubernetes", "PostgreSQL"],
"required_domains": ["Fintech"]
}
],
"pagination": { "page": 1, "per_page": 20, "total": 12, "total_pages": 1 }
}/api/v1/jobscompany onlyCreate a new job posting.
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
| title | string | Yes | Job title |
| work_mode | string | Yes | Remote | Hybrid | On-site | Flexible |
| description | string | No | Full job description |
| location | string | No | Location string, e.g. 'Bengaluru' |
| salary_min | number | No | Minimum annual salary (in currency units) |
| salary_max | number | No | Maximum annual salary |
| currency | string | No | Currency code (default INR) |
| required_skills | string[] | No | Array of required skills |
| required_domains | string[] | No | Array of required industry domains |
| is_live | boolean | No | Publish immediately (default true) |
Response
{
"job": {
"id": "uuid",
"title": "Senior Backend Engineer",
"work_mode": "Hybrid",
"is_live": true,
"created_at": "2026-05-23T10:00:00Z"
}
}/api/keys/generatecandidate, companyGenerate a new API key. The raw key is returned once and never stored — copy it immediately. Maximum 5 keys per account.
Request body (JSON)
| Field | Type | Required | Description |
|---|---|---|---|
| name | string | No | Human-readable label for this key (default 'Default', max 64 chars) |
Response
{
"key": "rb_live_a1b2c3d4e5f6...",
"id": "uuid",
"key_prefix": "rb_live_a1b2",
"name": "My agent",
"role": "company",
"created_at": "2026-05-23T10:00:00Z"
}/api/keyscandidate, companyList your API keys (prefix and metadata only — raw key is never returned after generation).
Response
{
"keys": [
{
"id": "uuid",
"key_prefix": "rb_live_a1b2",
"name": "My agent",
"role": "company",
"created_at": "2026-05-23T10:00:00Z",
"last_used_at": "2026-05-24T08:15:00Z"
}
]
}/api/keys/:idcandidate, companyRevoke an API key immediately. Any agent using this key will lose access.
Response
{ "success": true }Search for remote Senior engineers with React experience:
curl "https://rebridge.me/api/v1/candidates?seniority=Senior&skills=React&work_mode=Remote" \ -H "Authorization: Bearer rb_live_<your-key>"
Send a connection request to a candidate:
curl -X POST "https://rebridge.me/api/v1/connections" \
-H "Authorization: Bearer rb_live_<your-key>" \
-H "Content-Type: application/json" \
-d '{
"candidate_profile_id": "uuid-from-search",
"note": "Hi — we are building a payments platform and your fintech background is a strong match. Would love to share more details if you are open to it."
}'Questions? Email support@rebridge.me