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

# Getting Started

> Set up your Ollang account, make your first API call, and decide which integration path to use.

# Getting Started

This page walks you through the smallest end-to-end Ollang workflow: create an account, get an API key, upload a file, create a translation order, and read the result. You can then branch into the [REST API](/apis/ollang-api-reference/direct-file-upload), [MCP](/mcp/overview), [SDK](/sdk/overview), or [Skills](/skills/overview).

## Prerequisites

* An [Ollang account](https://lab.ollang.com) (free to sign up).
* An API key generated from the [Olabs Dashboard](https://lab.ollang.com).
* `curl` (or your favorite HTTP client) for the examples below.
* About **5 minutes**.

<Info>
  Code samples on this page use generic placeholders — replace
  `<your-api-key>`, `<project-id>`, and `<order-id>` with values from your
  account. Never commit API keys to source control.
</Info>

## 1. Verify the API Is Reachable

Run the unauthenticated health check to confirm connectivity from your environment:

```bash theme={null}
curl https://api-integration.ollang.com/health
```

**Expected response:**

```json theme={null}
{ "time": 1704711600000, "status": "OK" }
```

Full reference: [Health Check](/apis/ollang-api-reference/health-check).

## 2. Upload a Source File

Send a file (video, audio, document, subtitle, or image for image-to-image translation) to Ollang. The endpoint returns a `projectId` you'll use to create orders.

```bash theme={null}
curl -X POST "https://api-integration.ollang.com/integration/upload/direct" \
  -H "X-Api-Key: <your-api-key>" \
  -H "Content-Type: multipart/form-data" \
  -F "file=@./sample.mp4" \
  -F "name=sample" \
  -F "sourceLanguage=en"
```

**Expected response (`201`):**

```json theme={null}
{ "projectId": "<project-id>" }
```

A few notes:

* `sourceLanguage` uses ISO 639-1 codes — see [Supported Languages](/apis/ollang-api-reference/supported-languages).
* `folderId` is optional; if omitted, uploads land in the default **API Uploads** folder. You can list folders with [Retrieve All Folders](/apis/ollang-api-reference/retrieve-all-folders).
* Maximum sizes: **30 GB** for video, **100 MB** for documents (5 MB in the in-page API playground).

Full reference: [Direct File Upload](/apis/ollang-api-reference/direct-file-upload).

## 3. Create a Translation Order

With a `projectId`, create one or more orders. Each `targetLanguageConfigs` entry creates a separate order — the response is an array of order IDs.

```bash theme={null}
curl -X POST "https://api-integration.ollang.com/integration/orders/create" \
  -H "X-Api-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "orderType": "subtitle",
    "level": 0,
    "projectId": "<project-id>",
    "targetLanguageConfigs": [
      { "language": "fr" },
      { "language": "es" }
    ],
    "callbackUrl": "https://example.com/webhooks/ollang",
    "autoQc": true
  }'
```

**Expected response (`201`):**

```json theme={null}
[
  { "orderId": "<order-id-fr>" },
  { "orderId": "<order-id-es>" }
]
```

What the parameters mean:

* **`orderType`** — `cc`, `subtitle`, `document`, `aiDubbing`, or `studioDubbing`. Full table at [Order Types](/apis/ollang-api-reference/order-types).
* **`level`** — `0` for full-AI, `1` to add Ollang's human review gate.
* **`callbackUrl`** *(optional)* — Ollang `POST`s the completed order payload here. Idempotent handlers recommended (10-second timeout).
* **`autoQc`** *(optional)* — Run an AI QC evaluation automatically once the order completes.

Full reference: [Create Order](/apis/ollang-api-reference/create-order).

## 4. Check Status (or Wait for the Callback)

Poll the order until `status === "completed"`:

```bash theme={null}
curl "https://api-integration.ollang.com/integration/orders/<order-id-fr>" \
  -H "X-Api-Key: <your-api-key>"
```

**Excerpted response:**

```json theme={null}
{
  "orderId": "<order-id-fr>",
  "status": "completed",
  "targetLanguage": "fr",
  "orderDocs": [
    { "type": "source_video", "name": "sample.mp4", "url": "https://example.com/..." },
    { "type": "created_subtitle", "name": "fr.srt", "url": "https://example.com/..." }
  ],
  "vttUrl": "https://example.com/<order-id-fr>.vtt"
}
```

All possible status values are listed in [Order Statuses](/apis/ollang-api-reference/order-statuses). Document type names (e.g. `created_subtitle`, `created_ai_dub_audio`) are listed in [Order Document Types](/apis/ollang-api-reference/order-doc-types).

<Note>
  If you provided a `callbackUrl`, you don't need to poll — Ollang `POST`s
  the same payload to your URL when the order completes. Confirmation via
  [Get Order by ID](/apis/ollang-api-reference/get-order-by-id) is still a
  good safety net.
</Note>

## 5. (Optional) Upgrade to Human Review

Any AI-generated (Level 0) order can be escalated to Ollang-managed linguists after the fact:

```bash theme={null}
curl -X POST "https://api-integration.ollang.com/integration/orders/<order-id>/human-review" \
  -H "X-Api-Key: <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{}'
```

Reference: [Request Human Review](/apis/ollang-api-reference/request-human-review). Need to back it out? See [Cancel Human Review](/apis/ollang-api-reference/cancel-human-review).

## What's Next

<CardGroup cols={2}>
  <Card title="How everything connects" href="/concepts/how-it-all-connects" icon="diagram-project">
    Choose between REST API, MCP, SDK, or Skills — and learn how they overlap.
  </Card>

  <Card title="Use Cases" href="/concepts/use-cases" icon="lightbulb">
    End-to-end walkthroughs: AI dubbing, subtitle pipelines, document
    localization, visual translation, continuous i18n.
  </Card>

  <Card title="Best Practices" href="/concepts/best-practices" icon="shield-check">
    Production guidance: callbacks, retries, pagination, folder structure,
    memory, and review gates.
  </Card>

  <Card title="API Conventions" href="/concepts/api-conventions" icon="book-open">
    Base URL, authentication, pagination, errors, and webhook format in one place.
  </Card>

  <Card title="MCP Quickstart" href="/mcp/quickstart" icon="robot">
    Run the same workflow from Claude Desktop, Cursor, or Claude Code in 5 minutes.
  </Card>

  <Card title="SDK Quickstart" href="/sdk/quickstart" icon="code">
    Scan a Next.js / React / Vue project for i18n strings and translate them.
  </Card>

  <Card title="Skills Quickstart" href="/skills/quickstart" icon="wand-magic-sparkles">
    Give your AI agent natural-language access to Ollang — no MCP server needed.
  </Card>

  <Card title="Glossary" href="/glossary" icon="book">
    Folder, Project, Order, Level, Workflow, Review Gate, LSP, BYOK, QC — defined in one place.
  </Card>

  <Card title="Troubleshooting" href="/troubleshooting" icon="wrench">
    Auth errors, callback issues, retries, rate limits, and how to file a good bug.
  </Card>
</CardGroup>
