Split API — Free Tier + Pay-As-You-Go
Pull a page range out of a PDF or cut a time range out of a video or audio file via API. One output per request.
What it does
The Split API is two operations on `POST /v1/convert`. For PDFs, `toolOperation=split-pdf` together with `pages=1-5` returns a single PDF containing exactly those pages. The selection syntax accepts single pages, ranges and a mix of both — `pages=1,3,5`, `pages=2,5-9`, or a JSON array — and it is 1-based and order-preserving, so `pages=5-1` gives you the pages back in reverse. `pages` is required for a split job: without it the job fails fast instead of guessing a default.
The sibling operations `extract-pdf-pages` (keep the selection) and `remove-pdf-pages` (drop the selection) take the same syntax. For video, `toolOperation=trim-video` with `startTime` plus either `endTime` or `duration` cuts that range out of the source; for audio the same `startTime` / `endTime` fields on an ordinary conversion request do the job. Timestamps accept `HH:MM:SS`, `MM:SS` or plain seconds.
Every split returns one output file, delivered through the same flow as any other job: poll `GET /v1/status/{jobId}`, then download from `GET /v1/download/{jobId}`. There is no ZIP-of-parts response, no manifest file, and no scene, silence or bookmark detection — to get N pieces, send N requests with the ranges you want.
Supported formats
Source formats (9)
- mp4
- mov
- mkv
- webm
- mp3
- wav
- flac
- m4a
Target formats (9)
- mp4
- mov
- mkv
- webm
- mp3
- wav
- flac
- m4a
Quick start
Every sample posts the job, then polls /v1/status/{jobId} until it finishes, with your API key in the X-Api-Key header. The parameter names below are the ones the endpoint actually accepts — anything else is dropped rather than rejected.
curl -X POST https://api.convertintomp4.com/v1/convert \
-H "X-Api-Key: ck_your_api_key" \
-F "file=@document.pdf" \
-F "targetFormat=pdf" \
-F "toolOperation=split-pdf" \
-F "pages=1-5"import { readFileSync } from "node:fs";
import { ConvertIntoMP4Client } from "convertintomp4";
const apiKey = process.env.CIM4_API_KEY;
const client = new ConvertIntoMP4Client({ apiKey });
// pages is required for split-pdf: "1-5", "1,3,5" or "2,5-9"
const { jobId } = await client.uploadDirect(
readFileSync("document.pdf"),
"document.pdf",
"application/pdf",
{ targetFormat: "pdf", toolOperation: "split-pdf", pages: "1-5" },
);
let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch(`https://api.convertintomp4.com/v1/status/${jobId}`, {
headers: { "X-Api-Key": apiKey },
}).then((r) => r.json());
} while (job.status !== "completed" && job.status !== "failed");
console.log("Pages 1-5:", job.result?.downloadUrl);import time, requests
from convertintomp4 import Client
api_key = "ck_your_api_key"
client = Client(api_key=api_key)
# Video and audio are cut with a time range instead of a page list.
with open("clip.mp4", "rb") as f:
job = client.upload_direct(
f, "clip.mp4", "video/mp4", "mp4",
tool_operation="trim-video",
startTime="00:00:30",
endTime="00:01:30",
)
while True:
status = requests.get(
f"https://api.convertintomp4.com/v1/status/{job['jobId']}",
headers={"X-Api-Key": api_key},
).json()
if status["status"] in ("completed", "failed"):
break
time.sleep(2)
print("Clip:", status.get("result", {}).get("downloadUrl"))Features
- PDF page selection: `pages=1-5`, `pages=1,3,5`, `pages=2,5-9` or a JSON array
- `split-pdf`, `extract-pdf-pages` and `remove-pdf-pages` share one selection syntax
- Video and audio time ranges via `startTime` plus `endTime` or `duration`
- `HH:MM:SS`, `MM:SS` or plain-seconds timestamps
- One output file per request — same status and download flow as every other job
- No hidden ZIP packaging: you control the naming and destination of every piece
Pricing
From $9.99/mo (Pro) or $24.99/mo (Business) — or pay-as-you-go on the API plan.
Free tier: 5 conversions/day, 100 MB file size, no API key required (IP-gated). Pro $9.99/mo: 100/day (2,000/month), 2 GB files. Business $24.99/mo: 1,000/day (20,000/month), 10 GB files, GPU encoding, dedicated support.
See full pricing breakdown →Built for production
99.9% uptime SLA
Multi-region failover, transparent status page, 60-second response-time guarantee on Business.
Encryption + auto-delete
TLS 1.2+ in transit, AES-256 at rest. Files deleted after 1h / 24h / 7d depending on plan, or instantly via DELETE endpoint. See the security page.
~7s median latency
Most sub-100 MB jobs complete in 6-9 seconds. Webhook-driven async for heavier workloads; waitForJob for synchronous flows.
Frequently Asked Questions
How do I split one PDF into several files?
Send one request per range. `pages=1-10` returns pages 1-10 as a PDF, `pages=11-20` returns the next chunk, and so on. There is no burst mode that explodes a document into one file per page in a single call, and no ZIP response — each job produces exactly one output file.
What does the `pages` parameter accept?
Comma-separated single pages, hyphenated ranges, or a mix: `1`, `1,3,5`, `1-5`, `2,5-9`. A JSON array works too. Numbering is 1-based and the order you write is the order you get, so `5-1` returns those pages reversed. Omitting `pages` on a `split-pdf` job is an error, not a default.
Can the API split video by scene or audio by silence?
No. There is no scene-detection or silence-detection splitting on the API. Video and audio cuts are explicit time ranges — `startTime` with `endTime` or `duration` — so if you need automatic cut points you have to detect them on your side and then submit the ranges.
Is the result delivered as a ZIP with a manifest?
No. Every job returns a single output file at `GET /v1/download/{jobId}`, and `GET /v1/status/{jobId}` reports its size and format. If you want a ZIP of many pieces you build it yourself from the individual outputs, which also means you pick the file names.
What is the difference between split-pdf, extract-pdf-pages and remove-pdf-pages?
`split-pdf` and `extract-pdf-pages` both keep the pages you list and drop the rest — they run the same extraction internally. `remove-pdf-pages` is the inverse: it deletes the listed pages and returns everything else. All three read the same `pages` syntax.
Related APIs
- Compression APICompress video, image, PDF, and audio files programmatically. Quality presets, resolution scaling, and a real byte-ceiling mode for video and audio.
- Merge APIMerge PDFs, videos, images, and audio files programmatically. Upload-order concatenation with per-type engines.
- OCR APIOptical character recognition for scanned PDFs and images via API. Tesseract, searchable-PDF or plain-text output, 17 language packs.
- Watermark APIAdd a text or image watermark to PDFs, videos, and images via API. Nine anchor positions, opacity, size, and colour.
- File Conversion APIOne unified file conversion API for video, audio, image, document, ebook, archive, and font formats — 255 formats, 2,290+ conversion pairs.
- Convert APIProduction-grade file conversion API with 9 language SDKs, async webhooks, and cloud-to-cloud workflows. Free tier available.
Or browse the full catalogue of 23 API products →
Get an API key
Start integrating the Split API in five minutes. Read the docs, grab a key, and ship your first conversion before the trial coffee cools.