Ryan Recruit API Documentation

Build powerful recruitment integrations with our comprehensive REST API

REST API
OpenAPI 3.1
Interactive Explorer
JWT Authentication

Getting Started

Follow these steps to start building with Ryan Recruit API

1

Create Account

Sign up for a Ryan Recruit account at $1/month. API access included in all plans.

2

Get API Key

Generate your API credentials from Settings → API Keys. Keep your keys secure.

3

Make Requests

Use our interactive API explorer below to test endpoints and build integrations.

Authentication

Ryan Recruit API uses JWT (JSON Web Tokens) for authentication

1. Login

Authenticate with your email and password to receive access and refresh tokens:

POST /api/v1/auth/login
Content-Type: application/json

{
  "email": "you@example.com",
  "password": "your-password"
}
{
  "success": true,
  "data": {
    "tokens": {
      "accessToken": "eyJhbGc...",
      "refreshToken": "eyJhbGc...",
      "expiresIn": 900
    },
    "user": { ... }
  }
}

2. Use Access Token

Include the access token in the Authorization header for all API requests:

GET /api/v1/jobs
Authorization: Bearer eyJhbGc...

Access tokens expire in 15 minutes for security

Refresh tokens are valid for 7 days

Use POST /api/v1/auth/refresh to get new access token

Rate Limits

API requests are limited to 1,000 requests per hour per account. Headers include remaining quota: X-RateLimit-Remaining

Interactive API Explorer

Browse all endpoints, test requests, and see live responses

Try It Out

Click "Authorize" in the Swagger UI and paste your access token to test API calls directly from your browser. All data is scoped to your company account.

Code Examples

Quick start examples in popular programming languages

JavaScript / Node.js

// Install: npm install node-fetch
const fetch = require('node-fetch');

const API_URL = 'http://localhost:6040';
let accessToken = null;

// Login
async function login() {
  const res = await fetch(`${API_URL}/api/v1/auth/login`, {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      email: 'you@example.com',
      password: 'your-password'
    })
  });

  const data = await res.json();
  accessToken = data.data.tokens.accessToken;
  return accessToken;
}

// Get jobs
async function getJobs() {
  const res = await fetch(`${API_URL}/api/v1/jobs`, {
    headers: {
      'Authorization': `Bearer ${accessToken}`
    }
  });

  const data = await res.json();
  return data.data;
}

// Usage
(async () => {
  await login();
  const jobs = await getJobs();
  console.log('Jobs:', jobs);
})();

Python

# Install: pip install requests
import requests

API_URL = 'http://localhost:6040'
access_token = None

# Login
def login():
    global access_token
    response = requests.post(
        f'{API_URL}/api/v1/auth/login',
        json={
            'email': 'you@example.com',
            'password': 'your-password'
        }
    )

    data = response.json()
    access_token = data['data']['tokens']['accessToken']
    return access_token

# Get jobs
def get_jobs():
    response = requests.get(
        f'{API_URL}/api/v1/jobs',
        headers={
            'Authorization': f'Bearer {access_token}'
        }
    )

    data = response.json()
    return data['data']

# Usage
if __name__ == '__main__':
    login()
    jobs = get_jobs()
    print('Jobs:', jobs)

cURL (Command Line)

# Login
curl -X POST http://localhost:6040/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{
    "email": "you@example.com",
    "password": "your-password"
  }'

# Get jobs (replace YOUR_TOKEN with access token from login)
curl http://localhost:6040/api/v1/jobs \
  -H "Authorization: Bearer YOUR_TOKEN"

# Create job
curl -X POST http://localhost:6040/api/v1/jobs \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Senior Software Engineer",
    "description": "We are looking for...",
    "employmentType": "full_time",
    "status": "published"
  }'

Official SDKs

Coming soon: Type-safe SDKs for popular languages

JavaScript/TypeScript

Coming Q2 2025

npm install @ryanrecruit/sdk

Python

Coming Q2 2025

pip install ryanrecruit

Ruby

Coming Q3 2025

gem install ryanrecruit

PHP

Coming Q3 2025

composer require ryanrecruit/sdk

Want an SDK in a different language? Let us know and we'll prioritize it.

Key API Endpoints

Most commonly used endpoints to get started

Jobs

  • GET/api/v1/jobs
  • POST/api/v1/jobs
  • GET/api/v1/jobs/:id
  • PUT/api/v1/jobs/:id
  • DEL/api/v1/jobs/:id

Candidates

  • GET/api/v1/candidates
  • POST/api/v1/candidates
  • GET/api/v1/candidates/:id
  • PUT/api/v1/candidates/:id
  • DEL/api/v1/candidates/:id

Applications

  • GET/api/v1/applications
  • POST/api/v1/applications
  • GET/api/v1/applications/:id
  • PUT/api/v1/applications/:id
  • DEL/api/v1/applications/:id

Departments

  • GET/api/v1/departments
  • POST/api/v1/departments
  • GET/api/v1/departments/:id
  • PUT/api/v1/departments/:id
  • DEL/api/v1/departments/:id

Users

  • GET/api/v1/users
  • POST/api/v1/users
  • GET/api/v1/users/:id
  • PUT/api/v1/users/:id
  • DEL/api/v1/users/:id

Analytics

  • GET/api/v1/analytics
  • GET/api/v1/analytics/jobs
  • GET/api/v1/analytics/candidates
  • GET/api/v1/analytics/sources

Need Help with the API?

Email Support

api@ryanrecruit.com

Usually responds within 24 hours

Documentation

Browse API Docs

Interactive Swagger UI explorer

API Support is Free: No premium tiers, no hidden fees. All Ryan Recruit customers get full API access and developer support at $1/month.

Loaded in 0.00s
Page Load:0.00s
API Response:0ms
Render Time:0ms
Performance metrics help us deliver fast experiences