# Zoho Recruit Routing Reference

**App name:** `zoho-recruit`
**Base URL proxied:** `recruit.zoho.com`

## API Path Pattern

```
/zoho-recruit/recruit/v2/{module_api_name}
```

## Common Endpoints

### Modules

```bash
# List all modules
GET /zoho-recruit/recruit/v2/settings/modules

# Get specific module
GET /zoho-recruit/recruit/v2/settings/modules/{module_api_name}
```

### Records

```bash
# List records
GET /zoho-recruit/recruit/v2/{module_api_name}?page=1&per_page=200

# Get single record
GET /zoho-recruit/recruit/v2/{module_api_name}/{record_id}

# Create records (max 100)
POST /zoho-recruit/recruit/v2/{module_api_name}
Content-Type: application/json

{
  "data": [
    {"field_api_name": "value"}
  ]
}

# Update single record
PUT /zoho-recruit/recruit/v2/{module_api_name}/{record_id}
Content-Type: application/json

{
  "data": [
    {"field_api_name": "new_value"}
  ]
}

# Update multiple records (max 100)
PUT /zoho-recruit/recruit/v2/{module_api_name}
Content-Type: application/json

{
  "data": [
    {"id": "record_id", "field_api_name": "value"}
  ]
}

# Delete records (max 100)
DELETE /zoho-recruit/recruit/v2/{module_api_name}?ids={id1},{id2}
```

### Search

```bash
# Search by criteria
GET /zoho-recruit/recruit/v2/{module_api_name}/search?criteria=(field:operator:value)

# Search by email
GET /zoho-recruit/recruit/v2/{module_api_name}/search?email=user@example.com

# Search by phone
GET /zoho-recruit/recruit/v2/{module_api_name}/search?phone=555-1234

# Global word search
GET /zoho-recruit/recruit/v2/{module_api_name}/search?word=keyword
```

## Available Modules

| Module | API Name |
|--------|----------|
| Candidates | `Candidates` |
| Job Openings | `Job_Openings` |
| Applications | `Applications` |
| Interviews | `Interviews` |
| Departments | `Departments` |
| Clients | `Clients` |
| Contacts | `Contacts` |
| Campaigns | `Campaigns` |
| Referrals | `Referrals` |
| Tasks | `Tasks` |
| Events | `Events` |
| Vendors | `Vendors` |

## Query Parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `fields` | string | Comma-separated field API names |
| `sort_order` | string | `asc` or `desc` |
| `sort_by` | string | Field API name |
| `converted` | string | `true`, `false`, or `both` |
| `approved` | string | `true`, `false`, or `both` |
| `page` | integer | Page number (default: 1) |
| `per_page` | integer | Records per page (max 200) |

## Search Operators

**Text fields:**
- `equals`, `not_equal`, `starts_with`, `ends_with`, `contains`, `not_contains`, `in`

**Date/Number fields:**
- `equals`, `not_equal`, `greater_than`, `less_than`, `greater_equal`, `less_equal`, `between`

## Pagination

Uses page-based pagination:
- `page`: Page number (default: 1)
- `per_page`: Records per page (max: 200)

Response includes:
```json
{
  "data": [...],
  "info": {
    "per_page": 200,
    "count": 50,
    "page": 1,
    "more_records": false
  }
}
```

## Notes

- Module API names are case-sensitive (e.g., `Job_Openings`)
- Maximum 200 records per GET request
- Maximum 100 records per POST/PUT/DELETE request
- `Last_Name` is mandatory for Candidates
- Date format: `yyyy-MM-dd`
- DateTime format: `yyyy-MM-ddTHH:mm:ss±HH:mm` (ISO 8601)
- Lookup fields use JSON objects with `id`

## Resources

- [Zoho Recruit API v2 Overview](https://www.zoho.com/recruit/developer-guide/apiv2/)
- [Get Records API](https://www.zoho.com/recruit/developer-guide/apiv2/get-records.html)
- [Search Records API](https://www.zoho.com/recruit/developer-guide/apiv2/search-records.html)
