# Get Started

## Visobird API Documentation

Transform your expense management with automated receipt processing through our powerful OCR API.

### Overview

The Visobird API provides automated receipt processing capabilities that extract structured data from receipt images with high accuracy. Our service supports various image formats and returns detailed transaction information including merchant details, line items, totals, and more.

#### Base URL

```
https://www.visobird.com/api
```

#### Supported Image Formats

* **JPEG** (.jpg, .jpeg)
* **PNG** (.png)
* **WebP** (.webp)
* **Maximum file size**: 10MB

### Authentication

All API requests require authentication using API keys. Include your API key in the `Authorization` header as a Bearer token:

```http
Authorization: Bearer vb_your_api_key_here
```

#### Getting an API Key

1. Sign up at [visobird.com](https://visobird.com)
2. Navigate to your dashboard
3. Go to API Keys section
4. Create a new API key with a descriptive name

### Rate Limits

Rate limits are based on your subscription plan:

| Plan             | Monthly Limit    | API Keys Allowed |
| ---------------- | ---------------- | ---------------- |
| **Starter**      | 100 receipts     | 1 key            |
| **Professional** | 5,000 receipts   | 5 keys           |
| **Enterprise**   | 100,000 receipts | 20 keys          |

When you exceed your monthly limit, the API will return a `429 Too Many Requests` error.

### Quick Start

Here's a simple example to process your first receipt:

#### cURL Example

```bash
curl -X POST https://www.visobird.com/api/process-receipt \
  -H "Authorization: Bearer vb_your_api_key_here" \
  -F "receipt=@/path/to/receipt.jpg"
```

#### JavaScript Example

```javascript
const formData = new FormData();
formData.append("receipt", fileInput.files[0]);

const response = await fetch("https://www.visobird.com/api/process-receipt", {
  method: "POST",
  headers: {
    Authorization: "Bearer vb_your_api_key_here",
  },
  body: formData,
});

const result = await response.json();
console.log(result.extractedData);
```

#### Python Example

```python
import requests

url = "https://www.visobird.com/api/process-receipt"
headers = {"Authorization": "Bearer vb_your_api_key_here"}

with open("receipt.jpg", "rb") as file:
    files = {"receipt": file}
    response = requests.post(url, headers=headers, files=files)

data = response.json()
print(data["extractedData"])
```
