> ## Documentation Index
> Fetch the complete documentation index at: https://docs.taptalent.io/llms.txt
> Use this file to discover all available pages before exploring further.

# API Reference Overview

> Complete reference for all Taptalent Partner API endpoints

This section provides detailed documentation for all available endpoints in the Taptalent Partner API.

## Base URL

All API requests should be made to:

**Production:**

```
https://partner-api.taptalent.io/v1/partner
```

**Staging/Sandbox:**

```
https://sandbox.partner-api.taptalent.io/v1/partner
```

## Authentication

All API requests require authentication using an API key. Include your API key in the `Authorization` header:

```
Authorization: Bearer YOUR_API_KEY
```

See [API Keys](/authentication/api-keys) for more information.

## Request Format

### Headers

All requests must include:

* `Authorization: Bearer YOUR_API_KEY` - Your API key
* `Content-Type: application/json` - For POST/PUT requests

### Query Parameters

Some endpoints support query parameters for filtering and pagination. See individual endpoint documentation for details.

## Response Format

### Success Response

Successful requests return a `200 OK` status with JSON data. The response structure varies by endpoint:

**Job Creation Response**:

```json theme={null}
{
  "id": 12345,
  "title": "Senior Software Engineer",
  "description": "...",
  "status": "DRAFT",
  ...
}
```

**Job Retrieval Response**:

```json theme={null}
{
  "id": 12345,
  "title": "Senior Software Engineer",
  "city": "San Francisco",
  "state": "California",
  "country": "United States",
  ...
}
```

### Error Response

Errors return appropriate HTTP status codes with a structured error format:

```json theme={null}
{
  "error": {
    "code": "ERROR_CODE",
    "type": "error_type",
    "message": "Human-readable error message",
    "details": {
      "field": "Specific validation error message"
    }
  }
}
```

**Example Validation Error**:

```json theme={null}
{
  "error": {
    "code": "INVALID_REQUEST",
    "type": "validation_error",
    "message": "One or more fields are invalid.",
    "details": {
      "title": "\"title\" length must be at least 3 characters long"
    }
  }
}
```

## HTTP Status Codes

| Code | Description                                                   |
| ---- | ------------------------------------------------------------- |
| 200  | Success                                                       |
| 400  | Bad Request - Invalid request data or validation error        |
| 401  | Unauthorized - Missing or invalid API key                     |
| 403  | Forbidden - Inactive subscription or insufficient permissions |
| 404  | Not Found - Resource doesn't exist                            |
| 500  | Internal Server Error                                         |

## Rate Limiting

Rate limiting information will be available in future API versions. Currently, rate limits are applied at the company level to ensure fair usage.

## Available Endpoints

### Jobs

* [Jobs API](/api-reference/jobs) - Create and retrieve job postings
  * `GET /jobs` - List all jobs with pagination
  * `GET /jobs/:jobId` - Get job details
  * `POST /jobs` - Create a new job

### Candidates

* [Candidates API](/api-reference/candidates) - Manage and retrieve candidate data
  * `GET /candidates/list` - List candidates with advanced filtering and pagination
  * `GET /candidates/:candidateId` - Get detailed candidate information
  * `POST /candidates/bulk/resume` - Bulk upload resumes for parsing
  * `GET /candidates/batch/:batchId` - Get candidates from a batch with pagination
  * `POST /candidates/bulk-fetch` - Bulk fetch candidates by IDs

### Job Candidates

* [Job Candidates API](/api-reference/job-candidates) - Manage job-specific candidate operations
  * `GET /job-candidates/job/:jobId/candidates` - Get candidates for a job with pagination and filters
  * `POST /job-candidates/bulk-fetch` - Bulk fetch job candidates by IDs
  * `POST /job-candidates/bulk/resume` - Bulk upload resumes for a specific job

### Assessments

* [Assessments API](/api-reference/assessments) - Create and manage voice-based interviews and assessments
  * `GET /assessment` - List assessments with pagination
  * `POST /assessment/audio-interviews` - Create a voice-interview assessment
  * `GET /assessment/:assessmentId` - Get assessment details and questions
  * `PUT /assessment/:assessmentId` - Update assessment
  * `POST /assessment/:assessmentId/questions` - Add a question
  * `PUT /assessment/:assessmentId/questions/:questionId` - Update a question
  * `DELETE /assessment/:assessmentId/questions/:questionId` - Delete a question
  * `POST /assessment/auto-generate` - Create assessment with auto-generated questions (from job or role/purpose)
  * `POST /assessment/:assessmentId/generate-questions` - Generate questions for an existing assessment
  * `POST /assessment/:assessmentId/invite` - Invite a candidate to take the assessment
  * `GET /assessment/:assessmentId/candidates` - List candidates who completed the assessment

### Webhook Logs

* [Webhook Logs](/api-reference/logs) - Monitor and debug webhook deliveries through the dashboard
  * View all webhook deliveries sent to your configured endpoint
  * Filter by event type, status code, and date range
  * Review delivery status, retry attempts, and response data

## Next Steps

* Explore the [Jobs API](/api-reference/jobs) documentation
* Set up [Webhooks](/webhooks/overview) for real-time updates
* Review [Integration Notes](/integration-notes/overview) for best practices
