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

# API Introduction

> Overview of the VibePeak Public API

# VibePeak Public API

The VibePeak API provides programmatic access to our AI-powered real estate video generation platform. Create professional property slideshow videos with AI-enhanced imagery and text-to-speech narration.

## Base URL

All API requests should be made to:

```
https://api.vibepeak.ai
```

## API Version

The current API version is **v1**. All endpoints are prefixed with `/v1/`.

## Request Format

The API accepts JSON-encoded request bodies and returns JSON-encoded responses. All requests must include the `Content-Type: application/json` header.

```bash theme={null}
curl -X POST https://api.vibepeak.ai/v1/real-estate/narrated-slideshow \
  -H "Authorization: Bearer vpk_live_xxxxx" \
  -H "Content-Type: application/json" \
  -d '{"images": ["https://example.com/image1.jpg", ...]}'
```

## Response Format

All responses follow a consistent format:

### Success Responses

```json theme={null}
{
  "task_id": "task_abc123xyz",
  "status": "queued",
  "created_at": "2026-01-04T12:00:00Z"
}
```

### Error Responses

```json theme={null}
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "Human-readable error description",
    "request_id": "req_xyz123",
    "details": {}
  }
}
```

## Core Concepts

<CardGroup cols={2}>
  <Card title="Async Processing" icon="clock" href="/concepts/async-processing">
    Video generation is asynchronous. Submit a request and poll for results.
  </Card>

  <Card title="Webhooks" icon="bell" href="/concepts/webhooks">
    Receive notifications when your videos are ready.
  </Card>

  <Card title="Rate Limits" icon="gauge" href="/concepts/rate-limits">
    Understand concurrent task limits per subscription plan.
  </Card>

  <Card title="Error Handling" icon="triangle-exclamation" href="/concepts/error-handling">
    Handle errors gracefully with machine-readable error codes.
  </Card>
</CardGroup>

## Available Endpoints

### Videos

| Method | Endpoint                             | Description                          |
| ------ | ------------------------------------ | ------------------------------------ |
| POST   | `/v1/real-estate/narrated-slideshow` | Create a real estate slideshow video |

### Tasks

| Method | Endpoint             | Description                 |
| ------ | -------------------- | --------------------------- |
| GET    | `/v1/tasks/{taskId}` | Get task status and results |

### System

| Method | Endpoint  | Description                         |
| ------ | --------- | ----------------------------------- |
| GET    | `/health` | Check API health (no auth required) |

## SDKs and Libraries

Official SDKs are coming soon. In the meantime, you can use any HTTP client to interact with the API:

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.vibepeak.ai/v1/real-estate/narrated-slideshow \
    -H "Authorization: Bearer $VIBEPEAK_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{"images": [...]}'
  ```

  ```javascript Node.js theme={null}
  const response = await fetch('https://api.vibepeak.ai/v1/real-estate/narrated-slideshow', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${process.env.VIBEPEAK_API_KEY}`,
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ images: [...] })
  });
  ```

  ```python Python theme={null}
  import requests

  response = requests.post(
      'https://api.vibepeak.ai/v1/real-estate/narrated-slideshow',
      headers={
          'Authorization': f'Bearer {api_key}',
          'Content-Type': 'application/json'
      },
      json={'images': [...]}
  )
  ```
</CodeGroup>

## Need Help?

* **Email**: [api-support@vibepeak.ai](mailto:api-support@vibepeak.ai)
* **Documentation**: You're here!
* **Status Page**: [vibepeak.statuspage.io ](https://vibepeak.statuspage.io/)
