OrbTop

QueryTracker Literary Agent Directory Scraper

LEAD GENERATIONEDUCATION

QueryTracker Literary Agent Directory Scraper

Extract literary agent profiles from QueryTracker — the #1 querying-author platform with no Apify competitors. Scrapes agent name, agency, genres, query status (open/closed), query method, social links, agency website, and profile last-updated date from every public /agent/<id> profile page.

QueryTracker's public profile pages expose agent data without a login. Premium-tier fields (per-user query history, full response statistics) are member-gated and are not scraped.

Features

  • Enumerates agents by sequential numeric ID across the full QueryTracker namespace (IDs 4901–21852+, ~2,000 active profiles)
  • Skips non-existent agent IDs gracefully — no errors, no wasted PPE charges
  • Extracts all publicly-visible fields: name, agency, website, genres (fiction and nonfiction sub-genres), query status, query method, Twitter/social links, and last-updated date
  • Detects open vs. closed query status from the profile page without any member login
  • Configurable start/end ID range so you can scrape a slice or the full directory
  • Polite crawl rate (5 concurrent requests) — no proxy required, no Cloudflare, no CAPTCHA

Who Uses Literary Agent Data?

  • Query-CRM builders — import the full agent directory into your tool so authors can track which agents they have queried
  • Author-services platforms — match manuscripts to agents by genre and query status
  • Literary data resellers and enrichment pipelines — combine with Poets & Writers data for a complete agent intelligence layer
  • Academic and market researchers — analyze genre coverage, query method distribution, and open-vs-closed rates across the agent market
  • Book startup founders — build genre-specific agent shortlists for recommendation features

How It Works

  1. The actor generates candidate URLs for each numeric agent ID in your configured range (default 4901–5000 for fast runs; full range 4901–21852 for bulk scrapes).
  2. Each page is fetched with a Cheerio HTML crawler — no JavaScript rendering needed, all profile data is server-rendered.
  3. Pages that return "Agent Not Found" are silently skipped; only real agent profiles produce output records.
  4. Data is extracted from structured sections: General (website, socials), Query Methods, Genres, and Profile History (last update).

Input

Quick start: 10 agents from the default range

{
  "startId": 4901,
  "endId": 4950,
  "maxItems": 10,
  "sp_intended_usage": "Building an agent directory",
  "sp_improvement_suggestions": ""
}

Full directory crawl

{
  "startId": 4901,
  "endId": 21852,
  "maxItems": 0,
  "sp_intended_usage": "Full directory export",
  "sp_improvement_suggestions": ""
}

Single agent by ID

{
  "startId": 4901,
  "endId": 4901,
  "maxItems": 1,
  "sp_intended_usage": "Spot check",
  "sp_improvement_suggestions": ""
}

Input Parameters

Field Type Default Description
startId integer 4901 First agent ID to try in the enumeration range
endId integer 5000 Last agent ID to try. Set to 21852 for the full known namespace
maxItems integer Maximum number of agent profiles to return. Set to 0 for no limit

Output

Each record represents one public agent profile on QueryTracker:

{
  "agent_id": "4901",
  "agent_name": "Ms. Alice Speilburg",
  "agency": "Speilburg Literary Agency",
  "agency_website": "http://speilburgliterary.com",
  "genres": "Action/Adventure, Crime/Police, Fantasy, Historical, Horror, Mystery, Science Fiction, Thrillers/Suspense",
  "is_accepting_queries": false,
  "query_method": "QueryManager",
  "response_stats_summary": "",
  "bio": "",
  "profile_url": "https://querytracker.net/agent/4901",
  "social_links": "https://twitter.com/alicespeilburg",
  "last_updated": "05/16/2026 - Closed to queries."
}

Output Fields

Field Type Notes
agent_id string QueryTracker numeric agent ID
agent_name string Agent full name with honorific (e.g. "Ms. Alice Speilburg")
agency string Literary agency name
agency_website string Agency website URL from the General section
genres string Comma-separated fiction/nonfiction genre list
is_accepting_queries boolean true if open to unsolicited queries, false if closed
query_method string How the agent accepts queries: QueryManager, email, form, postal mail, etc.
response_stats_summary string Aggregate response stats (empty on public profiles — member-gated)
bio string Agent bio (empty on public profiles — member-gated)
profile_url string Canonical QueryTracker profile URL
social_links string Comma-separated social media URLs (Twitter/X, Instagram, etc.)
last_updated string Most recent profile update date and change summary

Note on member-gated fields: QueryTracker shows response statistics (average response days, reply rate) and agent bios only to logged-in members. The response_stats_summary and bio fields are intentionally empty — only public data is scraped per QueryTracker's access model.

ID Range Guide

QueryTracker uses a sparse numeric namespace. Not all IDs in a range correspond to active agents — the actor skips "Agent Not Found" pages automatically. Typical yield:

Range Approx. active agents
4901–5000 ~5–10
4901–10000 ~200–400
4901–21852 ~1,800–2,200 (full directory)

For a full directory export, set endId: 21852 and maxItems: 0.

Legal Note

QueryTracker's public /agent/<id> profile pages are freely accessible without authentication. This actor scrapes only the information visible to any anonymous visitor. Premium-tier fields are not scraped. Always review QueryTracker's terms of service before using scraped data commercially.