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

# Overview

> Introduction to the Gather API and its capabilities

## What is the Gather API?

The Gather API is Qualifi's REST API that enables you to programmatically create and manage phone interviews. It transforms Qualifi into a developer-friendly, API-first platform for voice interviews, allowing you to seamlessly integrate phone interview capabilities into your existing systems, workflows, and applications.

### Product Vision

Qualifi aims to become the go-to solution for drop-in voice interviews, similar to how Twilio/Nexmo are seen as no-brainer options for SMS and voice functionality. The Gather API establishes a universal integration API that allows customers to initiate phone interviews programmatically via REST API.

### Core Capabilities

* **Create and manage questions** with optional text-to-speech audio generation
* **Create and configure interviews** with multiple question types
* **Manage candidates** and their information
* **Schedule and send interview invites** programmatically
* **Retrieve interview results** and candidate responses
* **Configure webhooks** for real-time event notifications
* **Customize branding** and message groups
* **Manage score cards** for interview evaluation

### API Architecture

The Gather API follows RESTful principles:

* **Base URLs**:
  * Production: `https://api.prod.qualifi.hr`
  * Staging: `https://api.dev.qualifi.hr`
* **Route Prefix**: All endpoints are prefixed with `/qsi/gather/`

<Note>
  For Humanly's internal integration layer (Connect), see the **Connect** tab. Shared auth and scopes are on the **Platform** tab.
</Note>

* **Authentication**: API Key via `x-api-key` header (see [Platform authentication](/platform/authentication))
* **Response Format**: JSON with consistent `data` and `meta` structure
* **Rate Limiting**: 1000 requests/hour per API key

### Response Format

All API responses follow a consistent structure:

<CodeGroup>
  ```json Success Response theme={null}
  {
    "data": {
      // Response data here
    },
    "meta": {
      "requestId": "uuid",
      "timestamp": "2024-01-01T00:00:00Z"
    }
  }
  ```

  ```json Error Response theme={null}
  {
    "error": {
      "code": "ERROR_CODE",
      "message": "Human-readable error message",
      "details": {
        // Additional error details
      }
    },
    "meta": {
      "requestId": "uuid",
      "timestamp": "2024-01-01T00:00:00Z"
    }
  }
  ```
</CodeGroup>

### Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="lock" href="/getting-started/authentication">
    Learn how to authenticate your API requests
  </Card>

  <Card title="Quick Start" icon="rocket" href="/getting-started/quickstart">
    Get up and running in minutes
  </Card>
</CardGroup>
