Poetry Website Classification API Performance Benchmarks

October 06, 2026
Poetry Website Classification API Performance Benchmarks

You need to benchmark how reliably and quickly your pipeline can identify poetry-related websites so you can block certain categories, enrich signups with context, or audit where ads are served. By the end of this guide, you’ll have a repeatable method to classify poetry sites using Klazify, measure latency and coverage, and wire the response into your filters and enrichment logic.

Why Klazify is the right fit for poetry website classification

Poetry sites can be sparse, text-heavy, and niche. Accurately detecting them requires models that read full content, handle multiple languages, and update in near real time. Here’s how Klazify addresses these constraints for teams working specifically with poetry content:

Illustration: Poetry Website Classification API Performance Benchmarks
  • Accurate website categorization using AI: Klazify analyzes on-page content instead of relying solely on metadata, which helps surface poetry themes (e.g., collections, author pages, submissions, literary journals) even when the domain name is generic.
  • Global coverage: Poetry communities are multilingual. Klazify’s content-aware approach helps identify poetry content across regions and languages without you building locale-specific heuristics.
  • Real-time classification: New poetry magazines, contests, and personal sites pop up frequently. Real-time classification ensures your lists and filters reflect current content rather than stale archives.
  • Industry-level categories with IAB mapping: Results include categories mapped to IAB taxonomy, enabling clean alignment with your ad tech or brand safety taxonomies for poetry-related placements.
  • Simple API integration: A single endpoint, JSON in/JSON out, and a Bearer token keep the implementation minimal so you can focus on thresholds, caching, and benchmarks.
  • Compliance and filtering controls: Use category names and confidence to whitelist or block poetry-related pages in corporate filters, parental controls, or publisher policy checks.

The scenario: performance benchmarks for poetry detection

Let’s anchor this to a concrete workflow: you maintain allow/block rules for poetry content across your network. Your goal is to (1) classify a corpus of poetry and non-poetry URLs, (2) measure cold-start vs warm-cache performance, (3) set a confidence threshold for automatic actions, and (4) route ambiguous results to review or recheck.

We’ll walk through one working path using the Klazify Categorization API and show how to cache, batch, retry, and map results to your own “Poetry” tag. You can adapt that mapping to manage ad placements, signup enrichment, and site audits.

Quickstart: make your first request

Use the categorization endpoint with a Bearer token. The body accepts a JSON object containing the URL you want to classify.

cURL request

# Label: cURL request
curl -X POST "https://www.klazify.com/api/categorize" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://cbsnews.com"}'

Replace YOUR_API_KEY with your token. This example uses the official docs fixture with cbsnews.com to validate your setup before you test poetry domains.

JavaScript example

// Label: JavaScript code sample
async function classifyUrl(url) {
const res = await fetch("https://www.klazify.com/api/categorize", {
method: "POST",
headers: {
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({ url })
});

if (!res.ok) {
// Decide if you should retry based on res.status (e.g., timeouts, 5xx)
throw new Error(`Klazify error: ${res.status}`);
}

const data = await res.json();

// Extract key fields you’ll benchmark or use in filters
const categories = (data.domain && data.domain.categories) || [];
const logo = data.domain && data.domain.logo_url;
const company = data.objects && data.objects.company;
const reg = data.domain_registration_data;
const similar = data.similar_domains || [];

// Example: choose highest-confidence category
const topCategory = categories.sort((a, b) => (b.confidence || 0) - (a.confidence || 0))[0];

return {
topCategoryName: topCategory && topCategory.name,
topCategoryConfidence: topCategory && topCategory.confidence,
iabMapping: topCategory && topCategory["IAB-632-596"],
logo,
companyName: company && company.name,
domainAgeDate: reg && reg.domain_age_date,
similar
};
}

// Example usage:
classifyUrl("https://cbsnews.com")
.then(result => console.log(result))
.catch(err => console.error(err));

Understand the response you’ll use for poetry benchmarks

Below is the official sample response. We’ll explain which fields you’ll use to detect poetry content, set thresholds, and do cache/benchmark hygiene.


{
"domain": {
"categories": [
{
"confidence": 0.92,
"name": "/Computers & Electronics/Consumer Electronics",
"IAB-632-596": "Consumer Electronics/Technology & Computing/Consumer Electronics"
},
{
"confidence": 0.89,
"name": "/Internet & Telecom/Mobile & Wireless/Mobile Phones"
}
],
"social_media": null,
"logo_url": "https://klazify.s3.amazonaws.com/2110787991611585019600ed5fb1d1300.04730104.png"
},
"success": true,
"objects": {
"company": {
"url": "https://www.apple.com/",
"name": "Apple",
"city": "Cupertino",
"stateCode": "CA",
"countryCode": "US",
"employeesRange": "100K+",
"revenue": 274515000000,
"raised": null,
"tags": [
"E-commerce",
"Consumer Electronics",
"Mobile",
"B2C"
],
"tech": [
"omniture_adobe_analytics",
"atlassian_confluence",
"successfactors",
"apache_apex",
"talend",
"oracle_peoplesoft",
"salesforce",
"stripe",
"dell_boomi_atomsphere",
"gigya",
"sage_50cloud",
"quickbooks",
"webmethods",
"apache_tomcat",
"alteryx",
"tibco_rendezvous",
"atlassian_jira",
"..."
]
}
},
"domain_registration_data": {
"domain_age_date": "1987-02-19",
"domain_age_days_ago": "13026",
"domain_expiration_date": "2030-02-20",
"domain_expiration_days_left": "123"
},
"similar_domains": [
"bestbuy.com",
"icloud.com",
"microsoft.com",
"macrumors.com",
"google.com",
"samsung.com",
"twitter.com",
"hp.com",
"bhphotovideo.com",
"dell.com"
]
}

How to use key fields for poetry detection and benchmarking:

  • domain.categories: Use name and confidence to determine whether a URL falls into the category paths you map to “Poetry.” Prioritize the highest-confidence category.
  • domain.categories[].IAB-632-596: When present, this provides a mapping into IAB taxonomy, which you can align to your ad tech or brand safety rules.
  • objects.company: Helpful for enrichment—if a poetry site belongs to a publisher or journal, the company fields (name, tags, tech) can augment CRM records or help disambiguate personal blogs.
  • domain_registration_data: Use domain_age_date and expiration for risk heuristics and cache TTL tuning (e.g., very stable, older domains can have longer cache windows).
  • similar_domains: Use as context to expand your benchmarking set or to build adjacency rules for audits.
  • domain.logo_url: Useful for UIs and internal dashboards while reviewing results or building allowlists.

Mapping poetry into your taxonomy

Because site content varies, you’ll likely maintain an internal “Poetry” tag and map Klazify’s categories into it. The simplest approach is to apply text-matching rules on category name paths and IAB mappings you consider relevant for poetry content. Keep two lists: positive matches (whitelist for poetry) and exclusions that are close but not poetry.

A minimal mapping function can:

  • Normalize the top category name (e.g., lowercase, trim).
  • Check for substrings you associate with arts and literature categories from your policy.
  • Use confidence thresholds (for example, act automatically above a certain confidence; send to review below it).
  • Optionally consult IAB mappings when provided.

Maintain the mapping in a versioned file so you can benchmark different policy revisions against the same URL set.

Build your poetry benchmark harness

To produce meaningful performance benchmarks focused on poetry websites, structure your test runs as follows:

1) Assemble test sets

  • Poetry-positive set: Literary journals, poet portfolios, poetry magazines, and known archive pages.
  • Near-neighbor set: General literature and arts pages that may or may not be poetry-focused.
  • Negative control set: Unrelated categories (e.g., electronics retailers, news, sports) for specificity checks.

2) Define metrics to record

  • Latency per request: Measure total time from request start to successful response.
  • Coverage: Share of URLs returning domain.categories with at least one category.
  • Confidence distribution: Histogram of category confidence values for positive vs negative sets.
  • Cache hit ratio: For repeated runs, measure how often you serve a result from cache.

3) Run cold vs warm tests

  • Cold start: No cached entries; invoke classify on your entire set once. Record latency and coverage.
  • Warm cache: Run the same set again using your cache; only miss cases call the API. Record latency, coverage, and hit ratio.

4) Action thresholds

  • Automatic action threshold: If the top category matches your poetry mapping and confidence ≥ your threshold, proceed to block/allow/enrich.
  • Review bin: If confidence is lower or unmapped, mark for human review or recheck later.

Operational details that save time

Caching strategy

  • Key: Cache by normalized domain or full URL depending on your policy. If your poetry logic is page-level, cache per URL; if site-level, cache per domain.
  • TTL: Use longer TTLs for stable sites (e.g., older domains using domain_registration_data.domain_age_date) and shorter TTLs for frequently changing content (e.g., magazines with daily updates).
  • Invalidation: Invalidate entries on policy changes to your poetry mapping or when you detect frequent content shifts.

Batching and concurrency

  • Batching: Process URLs in small batches to manage throughput and retries without overwhelming your downstream systems.
  • Concurrency: Use a controlled concurrency model rather than a single massive fan-out. Record per-batch timing to understand tail latencies.

Retries and error handling

  • Transient failures: Retry with exponential backoff for timeouts or 5xx responses.
  • Non-billable failures: Failed or unreachable calls are not billed, which makes systematic retry policies safer.
  • Fallbacks: If classification is temporarily unavailable, proceed with your last cached result or queue for recheck.

Rate limits (high level)

  • Design with headroom: Implement client-side rate limiting and use queues to smooth spikes.
  • Backpressure: When your service approaches its throughput limits, slow producers and increase cache usage.

Pricing and trials

  • Starter plan: $39.99/month with a 7-day trial. This is a practical place to run your poetry benchmarks end-to-end before scaling.

MCP note

There is an MCP base at https://mcp.klazify.com. A direct GET to /mcp returns HTTP 405 (method not allowed). For product context, see the MCP page. Your classification work for poetry sites should use the main categorize endpoint described here.

Turn poetry classification into actions

Content filtering and brand safety

  • Blocking or allowing: If your policy requires filtering, apply your poetry mapping to domain.categories and enforce actions based on confidence.
  • Ad placement audits: Scan publisher lists and landing pages; log the IAB mapping when available to ensure placements align with your poetry policy.

Signup enrichment

  • Enrich leads: When a user signs up with a domain, fetch categories, company info, and logo to feed your CRM or CDP. Use poetry classification to route leads to appropriate nurture tracks (e.g., literary journals vs general publishers).
  • Segmenting: Combine company.tags and top category to build audience segments centered on poetry interests.

Security and moderation

  • Domain age heuristics: Use domain_registration_data to flag very new domains for extra review, helpful if you moderate poetry submissions or outbound links.
  • Similar domains: Expand audits by crawling similar_domains to catch additional poetry sites you may want to categorize, whitelist, or analyze.

Field-to-use-case map

Response Field Poetry Use Case Notes
domain.categories[].name Detect poetry-focused content Match against your “Poetry” mapping list; prefer the highest-confidence entry
domain.categories[].confidence Thresholds for block/allow/review Set action thresholds and log distributions for benchmarks
domain.categories[].IAB-632-596 Ad tech alignment When present, map to IAB categories in your ad stack
objects.company.* Lead enrichment and routing Use company name, tags, and tech for CRM fields
domain_registration_data.* Cache tuning and risk heuristics Older domains often get longer cache TTLs; newer domains may require rechecks
similar_domains[] Corpus expansion Discover additional poetry-related URLs to classify and benchmark
domain.logo_url Reviewer UX and reporting Show logos on dashboards for faster human verification

Handling unknown or new poetry sites

  • Low-confidence categories: If confidence is below your threshold, keep the result but mark it for recheck. Combine with text sampling from the site if you maintain your own validators.
  • No categories present: Treat as “unknown” and schedule a delayed recheck. If urgent, escalate to manual review.
  • URL vs domain-level: If a root domain is broad and not clearly poetry-focused, classify specific poetry subpages or sections at the URL level for finer control.

Putting it all together: a working path

  1. Register for an API key and run the cURL test to confirm connectivity.
  2. Create your poetry mapping file that interprets category name paths (and IAB mappings when present) into a single internal “Poetry” tag.
  3. Build a small service that:
    • Accepts a URL, checks your cache, and only calls Klazify on a cache miss.
    • Stores top category, confidence, IAB mapping, company data, and domain_registration_data.
    • Applies your poetry mapping and confidence thresholds to produce one of: allow, block, or review.
  4. Benchmark:
    • Run your positive, near-neighbor, and negative sets cold; record latency, coverage, and action distributions.
    • Run the same sets warm; record cache hit ratio and reduced latency.
    • Adjust thresholds for your desired precision/recall trade-offs on poetry detection.
  5. Operationalize:
    • Tune cache TTLs based on domain age and site volatility.
    • Implement retries and backoff; rely on the policy that failed/unreachable calls are not billed.
    • Schedule rechecks for unknowns and low-confidence cases.

Where to go next

  • Create your free trial and get an API key: Register
  • Study the schema and request flow: Documentation
  • Explore MCP context: MCP

FAQ

  • How do I choose a confidence threshold for poetry detection?
    Run your three test sets (poetry, near-neighbor, negative) and plot the confidence distribution for the top category. Pick a threshold that gives you the balance of block/allow vs review your policy needs.
  • Should I classify at the domain or URL level?
    If a site mixes poetry with other content, classify at the URL level for precise control. If it’s consistently poetry-focused, domain-level caching and classification reduce calls and latency.
  • What if a site is new and returns low or no categories?
    Treat it as unknown, schedule a recheck, and optionally add manual review. Consider shorter cache TTLs for new domains using domain_registration_data fields.
  • Can I map Klazify results to my existing IAB-based rules?
    Yes. When available, use the IAB mapping field from domain.categories to integrate with your ad tech or brand safety configurations.
  • How should I batch calls for large poetry audits?
    Use small, concurrent batches with backoff on transient errors. Cache aggressively and re-run benchmarks with a warm cache to see expected production performance.

Ready to benchmark poetry classification against your own corpus? Start your 7-day trial and ship your first integration today: Register. For request/response details and additional capabilities, check the Documentation.

Ready to use Klazify?

Start classifying websites, enriching company data, and exploring web intelligence.

Get Started Free