# TikTok API
> 8 endpoints for live TikTok public data — user details, stats, post info, URL helpers.

## Authentication
All requests require your oanor API key in the `x-oanor-key` header. Get one at https://www.oanor.com/developer/keys.

```bash
curl -H "x-oanor-key: oanor_live_…" "https://api.oanor.com/tiktok-api/..."
```

## Pricing
- **Free** (Free) — 100 calls/Mo, 1 req/s
- **Basic** ($15/Mo) — 25,000 calls/Mo, 10 req/s
- **Pro** ($49/Mo) — 100,000 calls/Mo, 20 req/s
- **Mega** ($149/Mo) — 500,000 calls/Mo, 50 req/s

## Endpoints

### Users

#### `GET /v1/users/detail` — User detail

Vollständiges Profil per Username. Query: username.

**Parameters:**
- `username` (query, required, string) — TikTok username (without @) Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/users/detail?username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "6611099612067856390",
        "link": "https://www.tiktok.com/@jlo",
        "stats": {
            "likes": 85480540,
            "videos": 422,
            "followers": 17854695,
            "following": 304
        },
        "avatar": "https://p16-common-sign.tiktokcdn-eu.com/tos-maliva-avt-0068/7a9a3eb7d876704105c12a61757b1ebd~tplv-tiktokx-cropcenter:1080:1080.jpeg?dr=10399&refresh_token=b16426af&x-expires=1778072400&x-signature=d8dE%2BhXQZNkv%2Fm5%2BzNGaztFAGQQ%3D&t=4d5b0474&ps=13740610&shp=a5d48078&shcp=81f88b70&idc=no1a",
        "region": null,
        "sec_uid": "MS4wLjABAAAA2EvW1E1RwMcww5EY5bG0z2TeJ3dusTXaAKNJBQatp8IGSbOvWYWRm6TIIZ46Q40v",
        "language": "en",
        "nickname": "JLO",
        "username": "jlo",
        "verified": true,
        "signature": "The #1 Single SAVE ME TONIGHT with David Guetta OUT NOW 💫 OFFICE ROMANCE coming to Netflix June 5",
        "private_account": false
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:45.629Z",
        "request_id": "efc3adf7-6b6b-441e-87aa-3418299194d4"
    },
    "status": "ok",
    "message": "User detail retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/info-with-region` — User info with region

Profil + Region/Sprache. Query: username.

**Parameters:**
- `username` (query, required, string) — TikTok username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/users/info-with-region?username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "6611099612067856390",
        "region": null,
        "sec_uid": "MS4wLjABAAAA2EvW1E1RwMcww5EY5bG0z2TeJ3dusTXaAKNJBQatp8IGSbOvWYWRm6TIIZ46Q40v",
        "language": "en",
        "username": "jlo"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:46.159Z",
        "request_id": "2ef1ad50-7d84-4a39-a2a6-ac48cbc89fdd"
    },
    "status": "ok",
    "message": "User region retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/id` — User ID

Numerische User-ID + sec_uid. Query: username.

**Parameters:**
- `username` (query, required, string) — TikTok username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/users/id?username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "6611099612067856390",
        "sec_uid": "MS4wLjABAAAA2EvW1E1RwMcww5EY5bG0z2TeJ3dusTXaAKNJBQatp8IGSbOvWYWRm6TIIZ46Q40v",
        "username": "jlo"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:46.528Z",
        "request_id": "5cd39af3-f18b-44f6-8f40-2a1084786297"
    },
    "status": "ok",
    "message": "User ID retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/stats` — User stats

Followers, Following, Likes, Posts. Query: username.

**Parameters:**
- `username` (query, required, string) — TikTok username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/users/stats?username=jlo"
```

**Response:**
```json
{
    "data": {
        "id": "6611099612067856390",
        "stats": {
            "likes": 85480540,
            "videos": 422,
            "followers": 17854695,
            "following": 304
        },
        "sec_uid": "MS4wLjABAAAA2EvW1E1RwMcww5EY5bG0z2TeJ3dusTXaAKNJBQatp8IGSbOvWYWRm6TIIZ46Q40v",
        "username": "jlo"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:46.974Z",
        "request_id": "96e50423-b4f1-4e9c-8724-a1f1aef71538"
    },
    "status": "ok",
    "message": "User stats retrieved successfully",
    "success": true
}
```

#### `GET /v1/users/embed` — User embed

Embed-Daten für ein TikTok-Profil. Query: username.

**Parameters:**
- `username` (query, required, string) — TikTok username Example: `jlo`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/users/embed?username=jlo"
```

**Response:**
```json
{
    "data": {
        "html": "<blockquote class=\"tiktok-embed\" cite=\"https://www.tiktok.com/@jlo\" data-unique-id=\"jlo\" data-embed-from=\"oembed\" data-embed-type=\"creator\" style=\"max-width:780px; min-width:288px;\"> <section> <a target=\"_blank\" href=\"https://www.tiktok.com/@jlo?refer=creator_embed\">@jlo</a> </section> </blockquote> <script async src=\"https://www.tiktok.com/embed.js\"></script>",
        "type": "rich",
        "title": "JLO's Creator Profile",
        "width": "100%",
        "height": "100%",
        "version": "1.0",
        "username": "jlo",
        "video_id": null,
        "author_url": "https://www.tiktok.com/@jlo",
        "source_url": "https://www.tiktok.com/@jlo",
        "author_name": "JLO",
        "provider_url": "https://www.tiktok.com",
        "provider_name": "TikTok",
        "thumbnail_url": null,
        "thumbnail_width": null,
        "thumbnail_height": null
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:47.232Z",
        "request_id": "d0fe2c12-24d8-4d7c-91f9-5c1c72e431ca"
    },
    "status": "ok",
    "message": "User embed retrieved successfully",
    "success": true
}
```

### Posts

#### `GET /v1/posts/detail` — Post detail

Detail-Daten zu einem Video. Query: url.

**Parameters:**
- `url` (query, required, string) — TikTok video URL Example: `https://www.tiktok.com/@scout2015/video/6718335390845095173`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/posts/detail?url=https%3A%2F%2Fwww.tiktok.com%2F%40scout2015%2Fvideo%2F6718335390845095173"
```

**Response:**
```json
{
    "data": {
        "html": "<blockquote class=\"tiktok-embed\" cite=\"https://www.tiktok.com/@scout2015/video/6718335390845095173\" data-video-id=\"6718335390845095173\" data-embed-from=\"oembed\" style=\"max-width:605px; min-width:325px;\"> <section> <a target=\"_blank\" title=\"@scout2015\" href=\"https://www.tiktok.com/@scout2015?refer=embed\">@scout2015</a> <p>Scramble up ur name & I’ll try to guess it😍❤️ <a title=\"foryoupage\" target=\"_blank\" href=\"https://www.tiktok.com/tag/foryoupage?refer=embed\">#foryoupage</a> <a title=\"petsoftiktok\" target=\"_blank\" href=\"https://www.tiktok.com/tag/petsoftiktok?refer=embed\">#petsoftiktok</a> <a title=\"aesthetic\" target=\"_blank\" href=\"https://www.tiktok.com/tag/aesthetic?refer=embed\">#aesthetic</a></p> <a target=\"_blank\" title=\"♬ original sound - tiff\" href=\"https://www.tiktok.com/music/original-sound-6689804660171082501?refer=embed\">♬ original sound - tiff</a> </section> </blockquote> <script async src=\"https://www.tiktok.com/embed.js\"></script>",
        "type": "video",
        "title": "Scramble up ur name & I’ll try to guess it😍❤️ #foryoupage #petsoftiktok #aesthetic",
        "width": "100%",
        "height": "100%",
        "version": "1.0",
        "username": "scout2015",
        "video_id": "6718335390845095173",
        "author_url": "https://www.tiktok.com/@scout2015",
        "source_url": "https://www.tiktok.com/@scout2015/video/6718335390845095173",
        "author_na
…(truncated, see openapi.json for full schema)
```

### Utils

#### `GET /v1/utils/username-from-url` — Username from URL

Extrahiert den Username aus einer TikTok-URL.

**Parameters:**
- `url` (query, required, string) — TikTok URL Example: `https://www.tiktok.com/@scout2015/video/6718335390845095173`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/utils/username-from-url?url=https%3A%2F%2Fwww.tiktok.com%2F%40scout2015%2Fvideo%2F6718335390845095173"
```

**Response:**
```json
{
    "data": {
        "username": "scout2015"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:47.574Z",
        "request_id": "efa214d4-b6b7-47cf-b4bb-f6c58852fb99"
    },
    "status": "ok",
    "message": "Username retrieved successfully",
    "success": true
}
```

#### `GET /v1/utils/video-id-from-url` — Video ID from URL

Extrahiert die Video-ID aus einer TikTok-URL.

**Parameters:**
- `url` (query, required, string) — TikTok video URL Example: `https://www.tiktok.com/@scout2015/video/6718335390845095173`

**Example:**
```bash
curl -H "x-oanor-key: $KEY" \
  "https://api.oanor.com/tiktok-api/v1/utils/video-id-from-url?url=https%3A%2F%2Fwww.tiktok.com%2F%40scout2015%2Fvideo%2F6718335390845095173"
```

**Response:**
```json
{
    "data": {
        "video_id": "6718335390845095173"
    },
    "meta": {
        "timestamp": "2026-05-04T13:59:47.661Z",
        "request_id": "d7fbce14-6815-4fb1-b3f8-9597abefecf4"
    },
    "status": "ok",
    "message": "Video ID retrieved successfully",
    "success": true
}
```


---
Marketplace page: https://www.oanor.com/api/tiktok-api
OpenAPI spec: https://www.oanor.com/api/tiktok-api/openapi.json
