Your PM asked for “auto-tagging every lead’s website and email domain by category” and you need something you can ship this week. By the end of this article, you’ll be able to send a full URL or an email address to Website Categorization API on Zyla API Hub and get back concrete categories (with confidence), a logo URL, and related metadata you can plug straight into your enrichment, routing, or analytics pipeline.
What this API does and when to use it
The Website Categorization API classifies a URL path (not just the root domain) or an email domain and returns categories with confidence scores, plus useful extras like a logo URL and social links when available. Typical integrations include CRM enrichment, lead routing by industry, content moderation, and analytics segmentation.
You can:
- Categorize a full URL (e.g., landing pages, blog posts, product URLs).
- Categorize an email domain from a contact record to infer organization context.
The API is available on Zyla API Hub, which provides one account, one API key, and a subscription-plus-quota model across thousands of APIs. Check the API page for current access options and pricing.
Getting started on Zyla API Hub
Open the Website Categorization API listing, click Subscribe or Start Free Trial when available, and copy your API key. Authentication is a single HTTP header: Authorization: Bearer YOUR_API_KEY.
Start here: Start 7-day trial on Website Categorization API. Zyla uses subscription + quota (not pay-per-call). For a first integration, you’ll typically see a 7-day trial or a limited request quota; check the listing for the current option.
Endpoints you can call
This API exposes two POST endpoints on Zyla API Hub. Both require the Authorization header and accept URL-encoded form parameters.
1) URL: categorize a full URL path
Use this when you need to classify a specific page, not just the root domain.
- Method: POST
- Request URL: https://zylalabs.com/api/12/website-categorization-api/48/url
- Required parameter: url (the full URL you want to categorize)
Official curl (copy/paste as-is and replace YOUR_API_KEY):
curl -s -X POST "https://zylalabs.com/api/12/website-categorization-api/48/url" \
-H "Authorization: Bearer YOUR_API_KEY" \
--data-urlencode "url=https://google.com"
Official sample JSON response:
{
"domain": {
"categories": [
{
"confidence": 0.9019761085510254,
"name": "/Internet & Telecom/Email & Messaging/Email",
"IAB19-15": "Email",
"IAB-623-619": "Internet - Email"
}
],
"logo_url": "https://klazify.s3.amazonaws.com/187668924417925096926ad786fcaae866.96410880.png",
"social_media": {
"facebook_url": null,
"twitter_url": null,
"instagram_url": null,
"medium_url": null,
"youtube_url": "https://www.youtube.com/?gl=US&tab=w1",
"pinterest_url": null,
"linkedin_url": null,
"github_url": null
}
},
"success": true,
"objects": {
"company": {
"name": "Google",
"city": "Mountain View",
"stateCode": "CA",
"countryCode": "US",
"employeesRange": "100K+",
"revenue": 257637000000,
"raised": null,
"tags": [
"Internet",
"Publishers",
"Broadcasting",
"Information",
"Publishing",
"Web Search",
"Web & Client Portals",
"Technology",
"Web Services & Apps",
"Information Technology & Services",
"B2C",
"SAAS",
"B2B"
],
"tech": [
"google_apps",
"db2",
"media.net",
"grafana",
"marchex",
"oracle_crm",
"smartsheet",
"sybase",
"apache_kafka",
"sage_50cloud",
"splunk",
"oracle_endeca",
"informatica",
"appnexus",
"apache_http_server",
"apache_spark",
"ibm_infosphere",
"wrike",
"sap_hybris_marketing",
"couchbase",
"atlassian_fisheye",
"gitlab",
"dropbox",
"woo_commerce",
"workamajig",
"workday",
"atlassian_jira",
"sas_enterprise",
"oracle_cash_and_treasury_management",
"qliktech",
"thomson_reuters_eikon",
"flexer…
What you’ll actually use:
- domain.categories: list of category objects. Each object includes:
- name: the taxonomy path (e.g., “/Internet & Telecom/Email & Messaging/Email”).
- confidence: numeric score indicating classification confidence.
- IAB identifiers when available (e.g., IAB19-15, IAB-623-619).
- domain.logo_url: handy for UI badges or CRM cards.
- domain.social_media: URLs may be present or null; handle null checks.
- objects.company: metadata like name, location fields, employeesRange, revenue, tags, and tech stack indicators when available.
- success: boolean to confirm a successful categorization.
Python example: categorize a URL and pick the top category
This example posts form-encoded data with the Authorization header, then lifts the top category name and confidence. It also demonstrates basic null-safe access.
import os
import requests
API_KEY = os.getenv("ZYLA_API_KEY", "YOUR_API_KEY")
URL = "https://zylalabs.com/api/12/website-categorization-api/48/url"
def categorize_url(target_url: str):
headers = {
"Authorization": f"Bearer {API_KEY}",
}
# The endpoint expects URL-encoded form data
data = {
"url": target_url
}
resp = requests.post(URL, headers=headers, data=data, timeout=30)
resp.raise_for_status()
payload = resp.json()
# Safely read fields
domain = payload.get("domain") or {}
cats = domain.get("categories") or []
top = cats[0] if cats else None
result = {
"success": payload.get("success") is True,
"top_category_name": (top or {}).get("name"),
"top_category_confidence": (top or {}).get("confidence"),
"logo_url": domain.get("logo_url"),
"social_youtube": (domain.get("social_media") or {}).get("youtube_url"),
"company_name": ((payload.get("objects") or {}).get("company") or {}).get("name"),
}
return result
if __name__ == "__main__":
out = categorize_url("https://google.com")
print(out)
2) Email: categorize by email domain
Use this when you have an email address and want to infer the domain’s category. This is convenient in CRM or marketing automation, where email is the primary identifier.
- Method: POST
- Request URL: https://zylalabs.com/api/12/website-categorization-api/1989/email
- Required parameter: email (the email address whose domain you want to categorize)
Official curl:
Example response (truncated as provided on the listing):
Notice that the structure still includes domain.categories, and fields may be null when data is not available. Always null-check.
Implementation details that save time
- Authentication: include Authorization: Bearer YOUR_API_KEY on every request.
- Encoding: both endpoints expect URL-encoded form parameters (as shown by --data-urlencode in curl).
- Request body: only send the required parameter for each endpoint:
- URL endpoint requires: url
- Email endpoint requires: email
- Nullability: many fields (e.g., social media URLs or company metadata) can be null. Guard your accessors.
- Caching: if you repeatedly categorize the same domains/URLs, add an app-level cache keyed by normalized URL or email domain to reduce calls and latency.
- Batching: the listing exposes single-item endpoints. If you need batch throughput, run concurrent workers client-side while respecting your subscription quota.
- Error handling: check HTTP status codes and the success boolean in the response. If a field is missing, treat it as unavailable rather than an error.
- Consistency: a page URL can produce a more specific category than its root domain. Prefer the URL endpoint for per-page workflows.
Practical use cases you can build this week
- Lead routing: categorize the submitted website URL on your signup form and assign to the right sales queue based on industry/category.
- ESP/CRM enrichment: when you only have an email, use the Email endpoint to infer domain category and auto-tag contacts for onboarding flows.
- Ad targeting and exclusions: classify content URLs to ensure campaigns only run against allowed categories.
- Content analytics: tag outbound links in your product or blog by category to build a category-level engagement dashboard.
- UI polish: display the logo_url next to a company or link preview in your app.
Call the API from AI agents via MCP
You can also trigger these same endpoints from an MCP-compatible client (e.g., Claude Code, Cursor, Windsurf) by pointing your agent to the Zyla MCP gateway. Provide your API key to your MCP client configuration and call the same hub endpoints through tool invocations. See MCP for connection details. The MCP gateway uses your Zyla API key and subscription; results match the direct HTTP calls shown above.
A minimal workflow to ship
- Create a Zyla account and subscribe to the API from the listing page. Copy your API key.
- For URL inputs (e.g., from forms or webhooks), POST to https://zylalabs.com/api/12/website-categorization-api/48/url with url set to the full page URL.
- For email inputs (e.g., from CRM events), POST to https://zylalabs.com/api/12/website-categorization-api/1989/email with email set to the user’s email.
- Read domain.categories[0].name and domain.categories[0].confidence; store them in your database along with logo_url.
- Add null checks and simple caching for repeat URLs/domains. Monitor your subscription quota in Zyla.
FAQ
What authentication does the API use?
Send Authorization: Bearer YOUR_API_KEY on every request.
Can I categorize a specific page, not just the home domain?
Yes. Use the URL endpoint at https://zylalabs.com/api/12/website-categorization-api/48/url and pass the full URL path.
What fields should I rely on for routing?
Read domain.categories, especially the first item’s name and confidence. Keep a null-safe path for optional fields like logo_url or social_media.
Is there a free plan?
This API uses subscription + quota and does not offer a Free Plan. Check the listing for current access options; typically you’ll see a 7-day trial or a limited request quota for evaluation.
How do I integrate this with my AI coding agent?
Connect your agent to Zyla’s MCP gateway and invoke the same endpoints as tools. Refer to the MCP link above for setup details.
Ready to categorize real traffic and ship your integration? Start your evaluation here: Start 7-day trial on Website Categorization API. Your subscription runs on Zyla API Hub with a single API key you can also use via MCP-enabled agents.