rebridge.me/API Reference

Rebridge REST API

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.

Base URL

https://rebridge.me

All endpoints are relative to this base URL.

Authentication

Every request must include your API key in the Authorization header:

Authorization: Bearer rb_live_<your-key>
Keys are shown once. Generate a key from your account settings → API keys. The full key is displayed once and never stored. If you lose it, revoke and create a new one.

Rate limits & credits

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 format

{ "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

Endpoints

GET
/api/v1/profilecandidate, company

Return 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
  }
}
GET
/api/v1/candidatescompany only

Paginated list of live, anonymous candidate profiles. No personal identifiers are included — identity is protected until the candidate accepts a request.

Query parameters

NameTypeRequiredDescription
pagenumberNoPage number (default 1)
per_pagenumberNoResults per page (default 20, max 50)
skillsstringNoComma-separated skills filter (OR match). E.g. TypeScript,React
domainsstringNoComma-separated domain filter. E.g. Fintech,B2B SaaS
senioritystringNoJunior | Mid | Senior | Lead | Principal | Director
work_modestringNoRemote | Hybrid | On-site | Flexible
salary_maxnumberNoOnly 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 }
}
GET
/api/v1/connectionscandidate, company

List connection requests. Candidates see incoming requests; companies see requests they sent.

Query parameters

NameTypeRequiredDescription
statusstringNoFilter by status: pending | accepted | declined
pagenumberNoPage number (default 1)
per_pagenumberNoResults 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 }
}
POST
/api/v1/connectionscompany only

Send a connection request to a candidate. Deducts 1 credit unless a boost is active. The candidate has 72 hours to respond.

Request body (JSON)

FieldTypeRequiredDescription
candidate_profile_idstring (uuid)YesID from GET /api/v1/candidates
notestringYesPersonal note to the candidate (visible after they accept)
job_posting_idstring (uuid)NoAssociate 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"
  }
}
GET
/api/v1/jobscandidate, company

List job postings. Company keys return only that company's postings (all fields). Candidate keys return all live postings with company identity anonymised.

Query parameters

NameTypeRequiredDescription
pagenumberNoPage number (default 1)
per_pagenumberNoResults 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 }
}
POST
/api/v1/jobscompany only

Create a new job posting.

Request body (JSON)

FieldTypeRequiredDescription
titlestringYesJob title
work_modestringYesRemote | Hybrid | On-site | Flexible
descriptionstringNoFull job description
locationstringNoLocation string, e.g. 'Bengaluru'
salary_minnumberNoMinimum annual salary (in currency units)
salary_maxnumberNoMaximum annual salary
currencystringNoCurrency code (default INR)
required_skillsstring[]NoArray of required skills
required_domainsstring[]NoArray of required industry domains
is_livebooleanNoPublish immediately (default true)

Response

{
  "job": {
    "id": "uuid",
    "title": "Senior Backend Engineer",
    "work_mode": "Hybrid",
    "is_live": true,
    "created_at": "2026-05-23T10:00:00Z"
  }
}
POST
/api/keys/generatecandidate, company

Generate a new API key. The raw key is returned once and never stored — copy it immediately. Maximum 5 keys per account.

Request body (JSON)

FieldTypeRequiredDescription
namestringNoHuman-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"
}
GET
/api/keyscandidate, company

List 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"
    }
  ]
}
DELETE
/api/keys/:idcandidate, company

Revoke an API key immediately. Any agent using this key will lose access.

Response

{ "success": true }

Quick start

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