Paste a link or a paragraph and the API returns one of 25 fixed categories, a confidence score, and a short reasoning for the pick. No model to choose, no prompt to write. Just a category back in about a second.
curl -X POST https://categorizeapi.com/api/categorize \ -H "Authorization: Bearer YOUR_API_KEY" \ -H "Content-Type: application/json" \ -d '{"input": "https://example.com", "type": "auto"}' // Response { "success": true, "category": "Technology & Computing", "category_id": "technology-computing", "subcategory": "Software", "subcategory_id": "software", "confidence": 0.93, "reasoning": "The page covers software documentation and technical standards.", "input_type": "url", "processing_time": 1.1 }
No signup. Paste something below and see what comes back.
Send a URL and the API fetches that page itself — pulls the title, the meta description, and a chunk of the body text — and classifies that. Send raw text and it skips straight to classification. Either way you get one category, a confidence score between 0 and 1, and a sentence explaining why that category fit.
The taxonomy is fixed on purpose: the same 25 categories today as next year. Open-ended classifiers that can invent new labels on the fly sound flexible right up until your database has drifted into forty slightly different spellings of "technology." A closed list means your code can trust the output without a lookup table full of edge cases. If the default 25 don't fit, pass your own — with subcategories locked down too, if you need that level of control.
Nothing you send gets stored. Text is classified and discarded; URLs are fetched live and discarded the same way. What sticks around is the result itself — category, confidence, timestamp — since that's what shows up in your usage history and your bill.
Every request runs through the categorization engine with automatic failover. If one upstream model has a bad moment, the next one in line picks it up. Your integration doesn't notice.
Send a link and the API fetches the page itself: title, meta description, a content excerpt. Or skip that and send text directly. Set type to auto if you'd rather not decide.
The same 25 categories every time. Nothing shifts under you, so the lookup table or switch statement in your code stays correct next month and next year too.
One endpoint, one POST request. Works from Python, JavaScript, PHP, Ruby, Go, or anything else that can make an HTTP call. The docs have a copy-paste example for each.
Every response comes with a 0–1 confidence score and one line explaining the pick. Low score on something that matters? Flag it for a human instead of trusting it blindly.
Need more than the top-level category? Ask for a subcategory too. It's free-form text, not a second fixed list, so you get extra specificity without extra maintenance.
Classify pages before serving ads, so campaigns land on relevant, brand-safe content.
Tag articles, landing pages, or entire sitemaps by topic for content audits and internal linking.
Flag categories like Adult Content automatically before content reaches your platform.
Auto-sort submitted links or saved pages into consistent categories without manual tagging.
Bucket large lists of URLs by industry or topic to spot patterns across a market.
Add categorization to any app with a few lines of code. REST API with full documentation.
Test it on the free tier first. Upgrade only once you know it fits.
Free, not a trial. No credit card, ever.
For side projects and small production apps
For high-volume apps that outgrow Professional
A categorization API takes a piece of content and tells you which topic it belongs to, so you don't write that logic yourself. Send a URL and we fetch the page server-side, pull the title, meta description, and a content excerpt, then classify that. Send text and we classify what you sent directly. Either way, you get one category from a fixed 25-category taxonomy, a confidence score, and a one-line reasoning.
Yes. Set type to url, text, or auto (default) and it detects which one you sent. URL fetches time out after 8 seconds and cap out around 300KB, so a slow or huge page can't hang your request.
The default list covers the usual ground: Arts & Entertainment, Business, Finance, Health, News, Shopping, Sports, Technology, Travel, and more — full list with ids in the API docs. You're not stuck with it, though. Pass your own categories array (2 to 50 entries) and it classifies against your list instead — optional subcategories included.
No. Whatever you submit is only in memory long enough to produce a response, then it's gone. It's not written to disk, not logged in full, and not used to train anything. Your dashboard logs the category and confidence, not the content that produced them.
250 requests a month with a 60-requests-per-minute burst cap. Paid plans raise the monthly quota; the burst cap stays the same across every plan.
It's a plain REST API — API key, JSON in and out, a documented error format, nothing exotic. The categorization engine has automatic failover across multiple backing models, so one upstream provider having a bad day doesn't take it down for you.
One endpoint, one POST request, a Bearer API key in the header. Works from curl, Python's requests, JavaScript's fetch, PHP, Go — anything that speaks HTTP. See the docs for copy-paste examples in each.
Try the demo above with no account, or grab a free API key and start integrating right away.
CategorizeAPI Support
Hi there 👋
Have a question? Send us a message and we'll get back to you right away.
Please enter a valid email address.