treg APItreg.to ↗
Search the treg.to tool catalog via API. Returns tool records with provider, capability, pricing details, HTTP method, and reliability signals for each match.
What is the treg API?
The treg.to API exposes 1 endpoint — search_tools — that queries the treg tool catalog using free-text task words and returns up to 100 tool records per call. Each record includes the tool's name, provider, capability description, platform, pricing structure (cost type, USD estimate, billing unit, and confidence rating), and miss semantics. It is useful for discovering which third-party API tools cover a given task like people data lookup or email enrichment.
curl -X GET 'https://api.parse.bot/scraper/195b1ce1-673b-4083-b0d5-28a1d0f90876/search_tools?query=people+data+email' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace treg-to-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: treg Tool Catalog SDK — search the catalog and inspect results."""
from parse_apis.treg_to_api import TregCatalog, InputFormatInvalid
client = TregCatalog()
# Search the catalog for email-verification tools, cap at 10 results.
try:
catalog = client.catalogs.search(query="people data email", max_results=10)
except InputFormatInvalid as e:
print("Bad query input:", e.message)
raise
print(f"Found {catalog.total} total matches, received {catalog.count}")
# Show any site-provided hints about the results.
for hint in catalog.hints:
print("hint:", hint)
# Walk the returned tools and print provider, pricing, and reliability.
if catalog.tools:
for tool in catalog.tools:
cost = tool.cost
obs = tool.observed
print(
f"{tool.id} provider={tool.provider_display} kind={tool.kind}"
f" ${cost.usd:.4f}/{cost.unit} ok_rate={obs.ok_rate}"
)
# Drill into the first tool's details.
first = catalog.tools[0]
print(f"\nFirst tool: {first.name}")
print(f" summary: {first.summary}")
print(f" capability: {first.capability} — {first.capability_description}")
print(f" docs: {first.docs_url}")
if first.routed_children:
print(f" routed via: {', '.join(first.routed_children)}")
print("exercised: catalogs.search / Catalog / Tool / Cost / Observation")
Searches the treg tool catalog with free-text task words and returns the matching tools, one record per catalog tool, each with its provider, capability, HTTP method, pricing (cost type, value, USD estimate, currency, billing unit, confidence and a pricing note), miss semantics, verification dates, docs link, routed child ids for routed tools, and observed reliability/latency stats. One upstream request per call. total is the number of catalog matches the site reports; count is how many records are returned. The catalog offers no offset or page continuation: limit (default 25, clamped to 100) is the only paging control, so a search whose total exceeds 100 cannot be fully traversed and the site may also collapse hidden routed children below the requested limit. Results are relevance-ordered by the site; ties may come back in varying order between calls. A query that matches nothing returns an empty tools array with total 0. Many per-tool fields (cost.per, cost.confidence, cost.varies, cost.note, miss, async, status, status_note, superseded_by, verified, added, docs_url, routed_children, observed.p50_ms, observed.p95_ms, observed.hit_rate) can be null when the catalog has no value.
| Param | Type | Description |
|---|---|---|
| limit | integer | Maximum number of tools to return; values above 100 are clamped to 100, values below 1 are rejected. |
| queryrequired | string | Free-text task words to match against the catalog, e.g. one shape: people data email. |
{
"type": "object",
"fields": {
"count": "integer, number of tool records returned in this response",
"hints": "array of site-provided plain-text hint strings about the results",
"query": "echo of the search words the site matched",
"tools": "array of tool records: id, name, summary, provider, provider_display, capability, capability_description, platform, platform_label, domain, kind (data|routed|utility), tier, method, cost {type, value, usd, currency, per, unit, confidence, varies, note}, miss, async, status, status_note, superseded_by, platform_eligible, verified (date), added (date), docs_url, routed_children (array of tool ids or null), observed {samples, ok_rate, p50_ms, p95_ms, last_ok_days, hit_rate}, score",
"total": "integer, number of catalog matches reported by the site"
},
"sample": {
"data": {
"count": 25,
"hints": [
"treg catalog get bounceban.people.email.verify.status # params, cost and an example response",
"106 more matches — raise limit (max 100)"
],
"query": "people data email",
"tools": [
{
"id": "icypeas.people.identity.resolve",
"cost": {
"per": 1,
"usd": 0.19,
"note": "10 credits per FOUND profile; a miss is free",
"type": "per_success",
"unit": "call",
"value": 10,
"varies": null,
"currency": "credit",
"confidence": "documented"
},
"kind": "data",
"miss": null,
"name": "Reverse email lookup — the person's profile URL",
"tier": "core",
"added": "2026-08-20",
"async": null,
"score": 28.0262,
"domain": "contacts",
"method": "POST",
"status": null,
"summary": "Reverse a professional email address to the person's public professional profile URL",
"docs_url": "https://api-doc.icypeas.com/reverse-email-lookup",
"observed": {
"p50_ms": 634,
"p95_ms": 1103,
"ok_rate": 1,
"samples": 2921,
"hit_rate": 0.0527,
"last_ok_days": 0
},
"platform": "people",
"provider": "icypeas",
"verified": "2026-08-20",
"capability": "people.identity.resolve",
"status_note": null,
"superseded_by": null,
"platform_label": "People & contact data",
"routed_children": null,
"provider_display": "Icypeas",
"platform_eligible": true,
"capability_description": "Resolve an email or profile to linked identities"
}
],
"total": 131
},
"status": "success"
}
}About the treg API
What the API Returns
The search_tools endpoint accepts a required query string — free-text task words such as "people data email" — and an optional limit integer capped at 100. The response includes a tools array where each record carries fields including id, name, summary, provider, provider_display, capability, capability_description, platform, and platform_label. The count field reflects how many records were returned in this response, while total reflects the broader number of catalog matches the site reports.
Pricing and Reliability Fields
Each tool record embeds a structured pricing object containing cost_type, value, usd_estimate, currency, billing_unit, confidence, and a pricing_note. This lets you compare tools not just by what they do but by how they are priced — per call, per record, flat monthly, and so on. The confidence field indicates how certain the catalog data is about the pricing values shown.
Hints and Query Echo
Alongside the tools array, the response returns a hints array of plain-text strings the catalog provides about the result set, and a query field echoing the search words matched. These are useful for surfacing edge-case guidance and confirming which normalized query the catalog actually processed. The limit parameter rejects values below 1 and clamps values above 100 silently.
The treg API is a managed, monitored endpoint for treg.to — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when treg.to changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official treg.to API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Discover which API tools in the treg catalog cover a specific task like email enrichment or phone lookup.
- Compare pricing structures across catalog tools using the
usd_estimate,billing_unit, andcost_typefields. - Build an internal tool-selector UI that surfaces provider options and capability descriptions for a given task keyword.
- Audit platform coverage by filtering
platformandplatform_labelfields across returned tool records. - Surface reliability signals and miss semantics for candidate tools before integrating them into a data pipeline.
- Programmatically check catalog hints to detect when a query returns sparse or ambiguous results.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does treg.to have an official developer API?+
What does each tool record in the response actually contain?+
tools array includes the tool's id, name, summary, provider, provider_display, capability, capability_description, platform, and platform_label. The nested pricing object adds cost_type, value, usd_estimate, currency, billing_unit, confidence, and a pricing_note.Can I retrieve details for a specific tool by its ID rather than searching by keyword?+
query parameter in search_tools and returns matched tool records. You can fork it on Parse and revise it to add a tool detail endpoint that accepts an id and returns a single record.Is there a way to filter results by platform or provider directly in the request?+
search_tools endpoint accepts only query and limit as inputs; filtering by platform, provider, or cost_type must be done client-side on the returned tools array. You can fork it on Parse and revise it to add server-side filter parameters.What is the maximum number of results I can retrieve in a single call?+
limit parameter is clamped to a maximum of 100 and rejects values below 1. The total field in the response indicates how many catalog matches exist overall, which may exceed 100 when the catalog has many entries for a broad query.