TikTok No Watermark API
To download a TikTok video without the watermark through an API, send the public link to POST /v1/resolve with the service ID tiktok. The response has a direct MP4 URL of the clean video, without the moving TikTok logo and username. TikTok’s official Display API has no such option: its video object has no file URL.
No card needed. Failed requests cost nothing.

Key facts
- Endpoint
- POST /v1/resolve (one endpoint for every service)
- Free trial
- 20 result credits after email verification, no card
- Price
- from $19 for 7,500 results ($1.33–$2.53 per 1,000)
- Billing
- prepaid credits, no subscription, no expiry; failed or empty requests cost 0
- Credits per result
- 1 (Instagram, TikTok, X, Pinterest) or 2 (Stories, Highlights, Telegram)
- Limits
- up to 20 items per request; 120 requests per minute per account; 2 in progress at once on the trial, 8 on paid accounts
Request and response
curl -X POST https://developers.getinsaver.com/v1/resolve \
-H "Authorization: Bearer $GIS_KEY" \
-H "Content-Type: application/json" \
--max-time 130 \
-d '{"service": "tiktok", "url": "https://www.tiktok.com/@creator/video/7300000000000000000"}'{
"ok": true,
"service": "tiktok",
"source_url": "https://www.tiktok.com/@creator/video/7300000000000000000",
"item_count": 1,
"items": [
{
"type": "video",
"url": "https://cdn.example/clip.mp4"
}
],
"metadata": {
"title": null,
"author": "creator",
"caption": null
},
"request_id": "39a3bff5-0000-4000-8000-000000000000",
"credits_used": 1
}What “no watermark” means here
TikTok adds a moving logo and the username when a video is saved from its app. This API returns the clean file instead. We checked it on a real public video on 4 November 2026: the request took 2.0 seconds and returned a 540×960 H.264 MP4, with no TikTok logo or username on frames taken at 10%, 50% and 95% of its length.
Text or a logo the creator put in the video itself stays, because it is part of the picture. There is no quality parameter: you get the file the source provides.
Does TikTok have an API for this?
Not for files. TikTok’s Display API can list “the given user’s public TikTok video posts” with the video.list scope. Its video object has fields such as share_url, embed_link, embed_html and cover_image_url, and no field for a downloadable video file. So it can show or embed a video, but it does not hand you the MP4.
Which TikTok links work
| Link | Result |
|---|---|
tiktok.com/@user/video/... | One video. |
vm.tiktok.com/..., vt.tiktok.com/... | Short links work the same way. |
| Photo posts | One image item per photo. Each costs one credit. |
| Private or deleted videos, sound pages | An error with a clear message. Nothing is charged. |
Python example
A complete client with retries and file saving. For TikTok, call resolve("tiktok", link).
# pip install requests
import mimetypes, os, time
import requests
API_URL = "https://developers.getinsaver.com/v1/resolve"
API_KEY = os.environ["GIS_KEY"] # keep the key on your server, never in a browser
def resolve(service, url, max_results=10, retries=3):
"""Turn a public link into media items: [{"type": "video", "url": ...}]."""
for attempt in range(retries + 1):
response = requests.post(
API_URL,
headers={"Authorization": f"Bearer {API_KEY}"},
json={"service": service, "url": url, "max_results": max_results},
timeout=130,
)
data = response.json()
if response.ok:
return data
# 429 = rate or concurrency limit, 502/504 = platform hiccup; none of them is charged
if response.status_code in (429, 502, 504) and attempt < retries:
time.sleep(int(response.headers.get("Retry-After", 5)))
continue
raise RuntimeError(f"{data['code']}: {data['message']}")
def download(item, name, folder="downloads"):
"""Media URLs expire within minutes to hours, so save the file right away."""
os.makedirs(folder, exist_ok=True)
with requests.get(item["url"], stream=True, timeout=120) as media:
media.raise_for_status()
kind = media.headers.get("Content-Type", "").split(";")[0]
path = os.path.join(folder, name + (mimetypes.guess_extension(kind) or ".bin"))
with open(path, "wb") as f:
for chunk in media.iter_content(chunk_size=65536):
f.write(chunk)
return path
if __name__ == "__main__":
# TikTok works the same way: resolve("tiktok", "https://www.tiktok.com/@user/video/123...")
result = resolve("instagram", "https://www.instagram.com/reel/SHORTCODE/")
print(f"{result['item_count']} items, {result['credits_used']} credits")
for i, item in enumerate(result["items"]):
print(item["type"], download(item, f"{result['request_id']}-{i}"))What it costs
One credit per returned video. The smallest pack is $19 for 7,500 videos, or $2.53 per 1,000. Credits do not expire and there is no subscription.
| Pack | Price | Credits | Per 1,000 results |
|---|---|---|---|
| Launch | $19 | 7,500 | $2.53 |
| Growth | $79 | 40,000 | $1.98 |
| Scale | $299 | 200,000 | $1.50 |
| Business | $999 | 750,000 | $1.33 |
Errors
| HTTP | Code | What to do |
|---|---|---|
| 402 | INSUFFICIENT_CREDITS | Top up, or lower max_results: a request reserves max_results times the credits per result first. |
| 422 | UPSTREAM_REJECTED | The post is private, deleted, expired or login-only. Show the message to your user. Nothing was charged. |
| 429 | RATE_LIMITED, CONCURRENCY_LIMIT | Wait for Retry-After seconds and retry. 120 requests per minute per account; 2 at once on the trial, 8 after buying credits. |
| 502, 504 | UPSTREAM_* | Temporary platform failure. Safe to retry. Nothing was charged. |
Every error body is JSON with a stable code and a readable message. The API reference has the full list.
FAQ
Does TikTok have an official API to download videos?
TikTok's Display API lists a user's public videos with share and embed links, but its video object has no downloadable file URL.
Is the video in HD?
You get the file the source provides. There is no quality parameter, so the resolution depends on the video.
Can I get only the audio?
Not as a separate result for a video post. The MP4 includes the sound, so you can extract the audio on your side.
Can I reuse the videos in my product?
A public video is not a license. Downloading it does not give you the right to republish it, so check the rights for your use.
Is there a free TikTok downloader API?
You can test this one with 20 free results after email verification, with no card. After that, prepaid credits start at $19.
Related
Updated 2026-11-04. The code on this page is run by our test suite against the API server before every release.
Make your first call in five minutes
20 free results when you verify your email. No card needed.
Create a free account