Apify Public Data & Leads
This server provides an AI agent with 40+ production data extractors and public-record search tools running on Apify, covering business leads, jobs, government records, research data, and market intelligence.
Business & lead generation: Google Maps business leads, website tech-stack/ecommerce scanning, US multi-state and state-specific business registries (Alabama, Florida, Wisconsin), French companies, GLEIF LEI lookups, UK/France/global registry search, and US contractor licenses (California, Oregon, multi-state)
Jobs & talent: Glassdoor job/salary search and LinkedIn public job listings
Government & procurement: SEC EDGAR filings, SEC Form 4 insider transactions, USAspending federal awards, Grants.gov opportunities, TED EU tenders, Federal Register rules/notices, NHTSA recalls, FEC campaign finance, and EPA facility compliance
Research & health: ClinicalTrials.gov studies, openFDA drug/device data, Europe PMC papers, CMS healthcare providers
Market & consumer intelligence: Airbnb rental research, YouTube search, Twitch live-stream analytics, Google Play and App Store reviews, Google News, and Google Autocomplete keyword suggestions
Legal, sanctions & cyber: CourtListener cases, OFAC sanctions, NVD/CISA vulnerability intelligence
Addressing & demographics: US Census address geocoding with tract/block/district GEOIDs
Nonprofit research: IRS Form 990 and nonprofit records via ProPublica Nonprofit Explorer
Provides tools to scrape Airbnb vacation rental listings, extracting title, room type, nightly price, rating, reviews count, and listing URL for real estate research and market rate tracking.
Provides tools to scrape Glassdoor job postings and salary data, extracting job title, company, salary estimate, rating, location, job URL, and posting date for hiring intelligence and compensation benchmarking.
Provides tools to scrape Google Maps business listings, extracting name, phone, website, rating, reviews, address, coordinates, and hours for B2B lead generation and local prospecting.
Provides tools to scrape Google Play app reviews, extracting review text, star score, thumbs up, date, and reviewer name for app store sentiment analysis and competitor feedback.
Provides tools to scrape Twitch live streams, extracting streamer username, title, viewer count, language, and category for esports analytics and live stream monitoring.
Provides tools to scrape YouTube video search results, extracting title, video URL, channel, views count, duration, and publish date for content tracking and creator outreach.
mcp-name: io.github.jlucasmcrell/apify-scrapers
Apify Public Data MCP: 40 Production Data Tools & Public Records
One MCP server gives an AI agent 40 production data extractors - Google Maps business leads, Google News, Google Autocomplete, LinkedIn and Glassdoor jobs, SEC EDGAR, USAspending, Grants.gov, TED tenders, NHTSA recalls, FEC, EPA, ClinicalTrials.gov, openFDA, Europe PMC, GLEIF, CMS providers, Census geocoding, state business registries, contractor licences, Airbnb, YouTube, Twitch and Google Play - each running as an Actor on your own Apify account. Install with
uvx apify-data-scrapers (Claude Desktop, Cursor, any MCP client), or call the same Actors directly from Python, Node.js or no-code tools.
Each actor is built with strict schema validation, deterministic field mapping, self-healing DOM selectors, and pay-per-event pricing (per-result rates from $0.00015, Actor-start from $0.0005; the live Apify Store price is authoritative).
Runtime contract and spending control
Since version 1.1.0, calls return {results, status, run?} in both MCP structured content and text. Status is success, partial, empty_unverified, or error; errors include a stable code and retry guidance. Zero rows are not proof that no matching records exist. Existing integrations that parsed a bare result array must now read results. Native dataset field names are preserved.
Each call requests a 120-second Actor timeout and a pay-per-event charge cap of $1 by default. Set APIFY_MAX_CHARGE_USD to adjust the cap. This is per run, not a total account spending limit; platform fees outside Actor event charges may still apply. Up to four calls may run concurrently. Cancelling a request attempts to abort its cloud run; check the returned run ID if confirmation fails. An ambiguous start is never retried automatically.
The MCP executable is Python; Node.js files are direct Actor API examples, not a second MCP server. Private queued Actors are omitted from this public catalog.
Related MCP server: Katzilla MCP
Quick Navigation
Choose your tools
Choose a focused tool profile and generate your installation configuration.
Version 1.2.0 adds the optional APIFY_TOOL_PROFILE environment variable: all (default), leads, market, government, or research. These correspond to the four catalog categories below. Profiles restrict tool discovery and calls, prompts, and the Actor catalog. Restart the MCP server and refresh/reconnect your client after changing the profile. Keep only the focused server entry if you do not also want the full catalog loaded. Direct Actor API examples are unchanged; this setting is not an Apify account permission boundary.
Choose your first workflow
Your goal | Start here | What to expect |
Build a local contractor lead list | Review the prefilled input, set a small result limit, then run and export the dataset. | |
Track company filings | Choose companies and form types; retain filing identifiers to avoid duplicate alerts. | |
Compare healthcare providers over time | Save snapshots and compare changes in the source dataset, not real-time clinical outcomes. | |
Use an AI chat interface | Connect your own Apify account and choose the Actor explicitly. |
No separate subscription to this MCP package is required. Actor runs are billed through your Apify account at the displayed Store price. Start with a small run and inspect its output before scheduling recurring work; public-source data can be delayed, incomplete, or temporarily unavailable.
Privacy Policy
The MCP server collects nothing. It runs on your machine, reads APIFY_TOKEN from your environment, and its only outbound calls are to the Apify API to run the Actor you asked for — on your own Apify account. No telemetry, no logs, no data sent to us. Full policy: apify.revenuesystemslabs.com/privacy.
Make.com templates
Eight published Make scenarios, one click to copy into your own Make account. Each asks for your Apify token and your destination (Google Sheets or Slack) in the setup wizard.
Template | Actor it runs |
Use-case guides
One page per question an agent gets asked, each listing the tools, arguments, returned fields and prices for that job:
Focused, end-to-end tutorials:
Available Extractors & Store Listings
Every extractor below is both an Apify Store listing and an MCP tool of the same server; the sections are the questions buyers arrive with.
Business intelligence & lead generation
Also available: Cross-border company registry search, combining UK, French and GLEIF records where available.
Tool | Store Link | Key Output Fields | Best For |
Google Maps Business Leads | Name, phone, website, rating, reviews, address, coordinates, hours | B2B lead generation, local agency prospecting | |
Website Tech Stack & Ecommerce Scanner | technologies, cms, ecommerce_platform, payments, emails | Best for competitive tech research and B2B lead qualification across a batch of company websites. | |
US Business Entity Registries | Legal entity name, filing number, jurisdiction, status | Legal due diligence, corporate registration checks | |
Alabama Business Entity Search | entity id, entity name, location, entity type, status | Search Alabama business entities by company name and export entity IDs | |
Florida Sunbiz Business Entity Search | entity name, document number, status, entity type, date filed | Search Florida Sunbiz company-name results and export legal entity nam | |
Florida Sunbiz Officer & Registered Agent Search | officer name, entity name, document number, detail url, entity type | Search Florida Sunbiz by officer or registered-agent name and export o | |
French Company Search | siren, name, legal name, acronym, status | Search France's official company register by name, activity, postcode, | |
GLEIF LEI Lookup | lei, legal_name, registered_as, legal_form_name, status | Best for KYC and counterparty due diligence: resolving a company's Legal Entity Identifier, registration status, and own national registry number before onboarding. | |
US Contractor Licenses | Contractor name, license number, classification, status, state | Trades verification, subcontractor diligence | |
California Contractor License Search | contractor name, name type, license number, city, status | Search California CSLB contractor records by contractor name and expor |
Jobs, market & consumer intelligence
Tool | Store Link | Key Output Fields | Best For |
Glassdoor Jobs & Salaries | Title, company, salary estimate, rating, location, job URL, posting date | Hiring intelligence, compensation benchmarking | |
LinkedIn Public Jobs | Job title, employer, location, direct apply URL, posting age | Recruitment, tech talent monitoring | |
Airbnb Vacation Rentals | Title, room type, nightly price, rating, reviews count, listing URL | Real estate research, market rate tracking | |
Google Play App Reviews | Review text, star score, thumbs up, date, reviewer name | App store sentiment, competitor feedback | |
Apple App Store Reviews | app_name, review_rating, review_body, review_version, app_average_rating | iOS review mining, ASO research and cross-platform sentiment | |
YouTube Video Search | Title, video URL, channel, views count, duration, publish date | Content tracking, creator outreach | |
Twitch Live Streams | Streamer username, title, viewer count, language, category | Esports analytics, live stream monitoring |
Government & public records
Also available: SEC Form 4 insider transactions, OFAC sanctions, CourtListener cases, and NVD/CISA vulnerability intelligence.
Tool | Store Link | Key Output Fields | Best For |
SEC EDGAR Corporate Filings | Ticker, CIK, form (10-K, 10-Q, 8-K), filing date, primary document URL | Financial diligence, equity research, compliance | |
USAspending Federal Awards | Recipient vendor, award amount, awarding agency, description, dates | Government contracting, procurement intel | |
Grants.gov Funding Opportunities | Opportunity number, agency, deadline, award range, eligibility, contacts | Federal grant prospecting and funding monitoring | |
TED European Tenders | Buyer, country, CPV code, deadline, estimated value, source documents | European procurement and bid discovery | |
NHTSA Vehicle Recalls | Campaign number, component, defect, consequence, remedy, affected units | Vehicle-safety checks and recall monitoring | |
FEC Campaign Finance Search | record type, id, name, party, office | Search US federal candidates, PACs and campaign contributions by state | |
EPA ECHO Facility Compliance & Violations | registry id, name, street, city, state | Search EPA-regulated US facilities by state, ZIP, NAICS, name, program | |
US Census Address Geocoder | matched_address, county_name, tract_geoid, block_geoid, congressional_district_geoid | Best for appending census tract, county FIPS and district GEOIDs to US addresses for demographic joins and compliance reporting. |
Research & health data
Tool | Store Link | Key Output Fields | Best For |
ClinicalTrials.gov Search | nct id, title, official title, acronym, org study id | Search the official ClinicalTrials.gov API by condition, intervention, | |
Europe PMC Paper Search | title, doi, pmid, abstract, cited_by_count | Best for biomedical literature reviews, citation tracking, and open-access discovery across PubMed and Europe PMC. | |
openFDA Drug Labels, Recalls & Adverse Events | dataset, id, brand name, generic name, manufacturer | Search official FDA drug labels, approvals, adverse events, and drug, | |
CMS Healthcare Provider Search | name, provider_type, city, state, star_rating | Compare CMS-certified hospitals, nursing homes, and other Medicare providers by location, ownership, and star rating. |
Python Quickstart
1. Install dependencies
pip install apify-client pandas python-dotenv2. Export 50 Google Maps Leads to CSV
import os
from apify_client import ApifyClient
import pandas as pd
# Get your API token from https://console.apify.com/account/integrations
client = ApifyClient(os.getenv("APIFY_TOKEN"))
# Run the actor
run = client.actor("captainhandsome/google-maps-business-search").call(run_input={
"search_query": "commercial electricians",
"location": "Dallas, Texas",
"max_items": 50,
"include_details": True,
})
# Fetch dataset items and export to CSV
items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)
df.to_csv("dallas_electricians.csv", index=False)
print(f"Exported {len(df)} leads to dallas_electricians.csv")See examples/google_maps_leads_to_csv.py for the full script.
Node.js Quickstart
1. Install dependencies
npm install apify-client2. Query SEC EDGAR Filings
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('captainhandsome/sec-edgar-filings-search').call({
companies: ['AAPL', 'NVDA', 'MSFT'],
forms: ['10-K'],
max_items: 15,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach(filing => {
console.log(`[${filing.ticker}] ${filing.form} (${filing.filing_date}): ${filing.filing_url}`);
});See examples/sec_filings.js for the full script.
No-Code & Automation Workflows
If you automate via n8n, Make, Zapier, or Google Sheets, ready-to-import blueprints are included in workflows/:
Google Maps Leads to Google Sheets (n8n): Weekly scheduled local-lead extraction into Google Sheets with persistent duplicate suppression.
SEC EDGAR 10-K & 8-K Alerts (n8n): Four-hour filing monitor with persistent duplicate suppression.
Competitor News Alerts (n8n): Daily Google News monitoring with persistent duplicate suppression.
Grants.gov Opportunity Alerts (n8n): Daily funding-opportunity monitoring with persistent duplicate suppression.
TED European Tender Alerts (n8n): Daily procurement monitoring with persistent duplicate suppression.
NHTSA Vehicle Recall Alerts (n8n): Daily safety-recall monitoring with persistent duplicate suppression.
Eight Make-approved templates: Guided setup for Google Sheets and Slack workflows. Connect your own accounts and review inputs before running; Apify and Make usage charges may apply.
Open a template in Make: Google Maps, Glassdoor, California contractors, SEC filings to Slack, Google News, Grants.gov, TED tenders, or NHTSA recalls.
Pre-Built Example Tasks (Zero Code)
If you prefer runnable web UI tasks without writing any code, each actor includes pre-configured tasks published on Apify Store:
Google Maps Leads
Glassdoor Jobs
Airbnb Rentals
YouTube & Google Play
Free Sample Datasets
Looking for clean data to benchmark, analyze, or train models? Verified sample bundles with metadata schemas are available in datasets/ and hosted publicly on Hugging Face Datasets:
Eight verified sample bundles, each exported from a production run of the Actor named beside it. Every one is served from this repository and mirrored to Hugging Face, where the dataset card links back to the Actor that produced it.
Phoenix HVAC Contractor Leads:
datasets/phoenix_hvac_leads/| Hugging Face Hub — 10 verified HVAC contractor profiles with ratings, addresses, and phone numbers (Google Maps Business Leads).California Licensed Contractors:
datasets/california_solar_contractors/| Hugging Face Hub — 50 active C-46 and B licensed solar installers with state verification numbers (California Contractor License Search).Austin Software Engineer Postings:
datasets/austin_software_jobs/| Hugging Face Hub — 30 normalized job listings with estimated posting dates and salary ranges (LinkedIn Public Jobs).S&P 500 Corporate Filings:
datasets/sp500_sec_edgar_filings/| Hugging Face Hub — 5 SEC EDGAR filing records with CIK, ticker, SIC and document links (SEC EDGAR Filings).US Federal Defense & AI Awards:
datasets/us_federal_defense_ai_awards/| Hugging Face Hub — 10 federal contract awards with recipient, agency, obligation amount and dates (USAspending Federal Awards).US Remote AI & ML Job Postings:
datasets/us_remote_ai_ml_job_postings/| Hugging Face Hub — 10 remote AI/ML postings with title, company, location and apply URL (LinkedIn Public Jobs).Top Twitch Live Streams:
datasets/twitch_top_live_streams_metadata/| Hugging Face Hub — 10 live-channel records with viewer counts, category and language (Twitch Live Streams).Mobile App Sentiment Reviews:
datasets/mobile_apps_user_sentiment_reviews/| Hugging Face Hub — 10 Google Play reviews with score, thumbs-up count and reviewer metadata (Google Play Reviews).
AI Agent & MCP Integration
All actors in this repository conform to OpenAPI and JSON Schema standards, making them directly callable by AI agents via the Model Context Protocol (MCP):
Option 1: Claude Desktop / Cursor with UVX (Recommended)
Add this to your claude_desktop_config.json or Cursor MCP settings:
{
"mcpServers": {
"apify-data-scrapers": {
"command": "uvx",
"args": ["apify-data-scrapers"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_API_TOKEN"
}
}
}
}Option 2: Docker Container (Glama / Cloud)
Run via Docker:
{
"mcpServers": {
"apify-data-scrapers": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "APIFY_TOKEN", "glcr.b-cdn.net/jlucasmcrell/apify-scrapers:latest"],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_API_TOKEN"
}
}
}
}Option 3: Local Python Stdio Runner
Install via pip or run directly:
pip install apify-data-scrapers
export APIFY_TOKEN="your_token_here"
apify-data-scrapersOr from local source:
python mcp_server.pyAgent Prompts That Work Out-of-the-Box:
"Search Google Maps for 50 commercial roofers in Atlanta with phone numbers and websites."
"Retrieve Apple and Microsoft Form 10-K filings from SEC EDGAR for the last 2 years."
"Search Glassdoor for remote product manager jobs with salary estimates."
In-Depth Engineering Guides
Technical case studies and problem-solution writeups are located in articles/:
Bypassing Playwright Headless Pagination Hurdles on Airbnb: How to solve sticky overlay modal interruptions and viewport boundary clipping in large headless browser crawls.
Extracting & Normalizing Clean Job Posting Dates from Glassdoor: Overcoming relative timestamp drift ("24h", "3d", "30d+") with deterministic parsing and ISO-8601 boundary tracking.
Repository Structure
apify-scrapers/
README.md # Documentation and quickstart
LICENSE # MIT License
requirements.txt # Python client dependencies
package.json # Node.js dependencies
mcp.json # MCP tool registry specification
mcp_server.py # Native Python stdio MCP server
articles/ # In-depth engineering case studies
airbnb_playwright_pagination_guide.md
glassdoor_posting_dates_guide.md
reddit_community_responses.md # Reference technical answers for forums
datasets/ # Sample benchmark datasets
phoenix_hvac_leads/
california_solar_contractors/
austin_software_jobs/
workflows/ # No-code automation templates
n8n_google_maps_to_sheets.json
n8n_sec_edgar_to_slack.json
n8n_google_news_competitor_monitor.json
n8n_grants_gov_opportunity_monitor.json
n8n_ted_eu_tender_monitor.json
README.md
examples/ # Standalone developer scripts
google_maps_leads_to_csv.py
sec_edgar_filings_downloader.py
glassdoor_jobs_tracker.py
airbnb_market_scraper.py
usaspending_defense_awards.py
twitch_live_stream_monitor.py
google_maps_leads.js
sec_filings.jsAuthor & Support
Maintained by Joseph McRell.
Apify Store: https://apify.com/captainhandsome
GitHub: @jlucasmcrell
Hugging Face: @joeygambino
Issues & Requests: Please open an issue on this repository or submit a ticket on the respective Apify Actor Store page.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Available Tools
40 toolsairbnb_listings_searchAirbnb Short-Term Rental Rates and Property SearchARead-only
Search vacation rental listings, nightly prices, occupancy ratings, and property classifications from Airbnb.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/airbnb-listings-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-40 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for short-term vacation rental market research, hospitality pricing comparisons, and regional accommodation rate benchmarking.
When NOT to use: Do not use for long-term residential apartment leases, MLS residential home sales, or commercial office leasing.
Named alternatives: Use 'google_maps_search' for hotel and lodging business contacts, 'glassdoor_jobs_search' for hospitality employment, or 'sec_edgar_filings' for public REIT financial filings.
| Name | Required | Description | Default |
|---|---|---|---|
| location | Yes | Destination metropolitan city, tourist region, or geographic market (e.g. 'Austin, TX', 'Miami, FL', or 'Denver, CO'). | |
| max_results | No | Maximum number of rental properties to retrieve. Integer between 1 and 100. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: it discloses that execution is a synchronous network call via a specific Apify Actor, that it creates a billed Actor run and dataset on the user's Apify account, that it requires APIFY_TOKEN, and that latency is 15-40 seconds with a 120-second timeout. This is rich behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Behavioral Transparency, Usage Guidelines) and front-loads the core purpose. It is slightly longer than strictly necessary, but every section earns its place by providing actionable guidance. The formatting aids scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 params, 1 required, output schema present), the description covers the essential operational context: what it searches, when to use it, what side effects occur, auth requirements, and latency. The output schema handles return-value documentation, so nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both parameters (location and max_results) with types, defaults, and constraints. The description adds no additional parameter-level meaning beyond what the schema provides, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('vacation rental listings, nightly prices, occupancy ratings, and property classifications from Airbnb'). It clearly distinguishes this from siblings by naming the domain (Airbnb short-term rentals) and the data fields returned. The title reinforces the scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides 'When to use' and 'When NOT to use' sections, and names three sibling alternatives (google_maps_search, glassdoor_jobs_search, sec_edgar_filings) with the conditions for choosing them. This is exactly the kind of routing guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
alabama_business_searchAlabama Business Entity Registry SearchARead-only
Search official Alabama Secretary of State business-entity records by company name, returning entity ID, legal name, entity type, registry status, and location.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/al-business-entity-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds without detail pages, longer with include_details enabled; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use when verifying an Alabama-registered LLC or corporation, checking entity status, or building a lead list of Alabama businesses by name.
When NOT to use: Do not use for Florida, California, or nationwide multi-state lookups, for contractor licensing, or for company officers/registered-agent name searches.
Named alternatives: Use 'us_business_entity_search' for a combined Florida/Alabama/Wisconsin lookup, 'florida_new_filings_search' for Florida entities, or 'california_contractor_license_search'/'us_contractor_license_search' for contractor licences.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of entity records to return and bill. Defaults to 10. | |
| search_query | Yes | Full or partial Alabama business name to search (e.g. 'SMITH' or 'Smith Services LLC'). | |
| include_details | No | When true, opens each result's detail page to add formation date, registered agent, and registered/principal addresses. Slower; leave off for a fast name-and-status lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses execution model (synchronous cloud Actor), side effects (billed run and dataset), authentication requirement (APIFY_TOKEN), latency expectations, and timeout cap. These go well beyond the annotations and add practical context without contradicting them; the readOnlyHint refers to the public registry source, not the platform-side billed run.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The main capability is front-loaded in the first sentence, followed by clearly labeled Behavioral Transparency and Usage Guidelines sections. Every section earns its place and the formatting makes it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, scope, alternatives, side effects, authentication, latency, and parameter trade-offs. An output schema exists, so return-value details are not required here; nothing important is missing for correct tool selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the schema already explains parameters well. The description adds meaningful behavioral nuance, such as include_details making runs slower and max_results affecting billing, which helps agents choose parameter values wisely.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Search official Alabama Secretary of State business-entity records by company name' and lists the exact returned fields. This clearly distinguishes it from multi-state, Florida, and contractor-license siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly gives 'When to use', 'When NOT to use', and 'Named alternatives'. It tells agents to prefer 'us_business_entity_search' for combined state lookups and 'california_contractor_license_search'/'us_contractor_license_search' for contractor licenses, leaving no ambiguity about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
app_store_reviews_searchApple App Store Reviews and App MetadataARead-onlyIdempotent
Search the Apple App Store and return customer reviews with star ratings, review text, the app version each review was written against, and full app metadata - across any storefront.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/app-store-reviews-search'.
Side Effects: Strictly read-only; reads Apple's public search, lookup and review endpoints.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 5-30 seconds; Apple caps the public review feed at 500 reviews per app per storefront; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for iOS app reviews and ratings, App Store metadata, release-version sentiment, ASO and competitor research, or to pair with Android data for a cross-platform view.
When NOT to use: Do not use for Android reviews (use 'google_play_reviews_search'), for employer reviews, for app download estimates, or for Mac-only titles.
Named alternatives: Use 'google_play_reviews_search' for the Android half of the same product, 'google_maps_search' for business reviews, or 'youtube_video_search' for video sentiment.
| Name | Required | Description | Default |
|---|---|---|---|
| app_ids | No | Specific apps as numeric track IDs ('570060128'), bundle IDs ('com.duolingo.DuolingoMobile') or App Store URLs. Overrides search_query. | |
| countries | No | Two-letter App Store storefronts to collect from, e.g. ['us','gb']. Reviews differ per storefront. Defaults to ['us']. | |
| max_rating | No | Keep only reviews at or below this star rating, e.g. 2 for complaint mining. | |
| min_rating | No | Keep only reviews at or above this star rating, e.g. 4 for positive quotes. | |
| max_results | No | Maximum rows to return and bill across every app and storefront. Defaults to 25. | |
| recent_days | No | Keep only reviews posted within this many days, e.g. 30 for the last month. | |
| search_query | No | Find apps by name or keyword, as you would in App Store search (e.g. 'language learning'). Omit when app_ids is given. | |
| include_reviews | No | Collect reviews as well as app metadata. Set false for a fast metadata-only survey of a category. | |
| max_reviews_per_app | No | Upper bound on reviews per app per storefront. Apple's public feed caps at 500. Defaults to 100. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes | App Store reviews, or app-metadata rows when include_reviews is false. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is clear. The description goes further by detailing execution mode (network call via Apify Actor), side effects (read-only, hitting Apple's public endpoints), authentication requirements (APIFY_TOKEN), and concrete limits (5-30s latency, 500-review cap, 120s timeout). This adds valuable operational context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured into a concise main sentence followed by clearly labeled sections (Behavioral Transparency, Usage Guidelines). Every sentence adds value: the purpose is front-loaded, operational details are scannable, and usage rules are explicit. There is no fluff or redundancy, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters fully described in the schema, a rich output schema present, and annotations covering read-only and idempotent behavior, the description adds the missing pieces: execution method, authentication, latency, limits, and routing rules. Nothing an agent needs to correctly invoke this tool is absent. It is complete for a tool of this complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% coverage with each parameter described (e.g., app_ids, countries, min/max_rating, recent_days). The description's main text does not add parameter-specific meaning, but the schema already provides it. The behavioral notes about the 500-review cap relate to max_reviews_per_app, offering marginal extra context. Baseline 3 is appropriate since the schema carries the semantic load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a clear resource ('Apple App Store'), and enumerates the exact outputs: customer reviews with star ratings, review text, app version, and full metadata. It differentiates from sibling tools by naming alternatives like 'google_play_reviews_search' and 'google_maps_search' in the usage section, leaving no ambiguity about what this tool does versus its peers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios (iOS reviews, ASO, competitor research) and when-not-to-use cases (Android, employer reviews, Mac-only titles), plus named alternatives for each exclusion. This is textbook guidance that lets an agent decide correctly without needing to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
california_contractor_license_searchCalifornia CSLB Contractor License SearchARead-only
Search public California Contractors State License Board (CSLB) records by contractor or business name, returning license number, status, city, and name type.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/ca-contractor-license-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds without detail pages, longer with include_details enabled; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for subcontractor vetting, contractor license verification, or lead building against California licensed contractors and businesses.
When NOT to use: Do not use for Oregon-only licence lookups (use 'us_contractor_license_search' with states=['oregon']), business entity/registry searches, or non-contractor trades.
Named alternatives: Use 'us_contractor_license_search' to search California and Oregon in one call, or 'alabama_business_search'/'florida_new_filings_search'/'us_business_entity_search' for general business-entity registries rather than contractor licences.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of licence records to return and bill. Defaults to 10. | |
| search_query | Yes | Full or partial contractor or business name to search in California CSLB records (e.g. 'SMITH' or 'Smith Construction'). | |
| include_details | No | When true, opens each licence's CSLB detail page to add issue/expiration dates, business address and phone, classifications, bonding, and workers' comp status. Slower; leave off for a fast name-and-status lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes far beyond the annotations (readOnlyHint, destructiveHint) by disclosing the execution model (network call via Apify Actor), side effects (billed run and dataset creation), authentication requirement (APIFY_TOKEN), and latency limits (10-30 seconds, 120s timeout). This is comprehensive and adds significant context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (main purpose, Behavioral Transparency, Usage Guidelines). Every sentence adds value, no fluff, and the core purpose is front-loaded. It remains readable despite covering many facets.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (network call, auth, billing, latency, output schema), the description covers all essential operational aspects: execution, side effects, authentication, latency, and usage boundaries. The presence of an output schema means return-format details are not required in the description. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so all parameters already have detailed descriptions in the input schema. The description does not add extra parameter-level semantics beyond what the schema provides (e.g., the include_details speed tradeoff is already in the schema). Per the rubric, a baseline of 3 is appropriate when the schema carries the full burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb-resource pair: 'Search public California CSLB records by contractor or business name,' and it enumerates the returned fields (license number, status, city, name type). This clearly distinguishes the tool from siblings like us_contractor_license_search, which covers multiple states, and general business registries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'Usage Guidelines' section explicitly states when to use (vetting, verification, lead building) and when NOT to use (Oregon-only lookups, business entity searches, non-contractor trades), naming specific alternative tools. This is the gold standard for routing an agent correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
clinical_trials_searchClinicalTrials.gov Study SearchARead-only
Search the official ClinicalTrials.gov registry for interventional and observational studies by condition, intervention, sponsor, or free-text keyword. Returns recruitment status, phase, enrollment, sponsor, and site location detail for each matching study.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/clinical-trials-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for medical research surveillance, competitive drug-pipeline tracking, patient-recruitment intelligence, or sponsor and trial-portfolio analysis.
When NOT to use: Do not use for FDA drug/device approvals or adverse-event data, environmental compliance records, campaign finance, or corporate registry lookups.
Named alternatives: Use 'openfda_search' for FDA drug and device safety/approval data, 'epa_facility_search' for environmental compliance, 'fec_campaign_finance_search' for political campaign funding, or 'french_company_search' for the French corporate registry.
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Optional overall recruitment status filter. Omit to return studies in any status. | |
| condition | Yes | Keywords, condition, intervention, sponsor name, or other free-text search expression accepted by ClinicalTrials.gov (e.g. 'Alzheimer disease', 'semaglutide', 'Mayo Clinic'). | |
| max_results | No | Maximum number of study records to retrieve. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing that execution is a synchronous network call via a specific Apify Actor, that it creates a billed Actor run and dataset on the user's Apify account, that APIFY_TOKEN is required, and that typical latency is 10-30 seconds with a 120-second timeout. This is rich, actionable behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized into purpose, behavioral transparency, and usage guidelines sections. It front-loads the core function, then adds necessary operational detail without fluff. Every sentence earns its place, and the length is justified by the cloud-execution and side-effect disclosures.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers execution model, side effects, authentication, latency caps, use cases, exclusions, and alternative tools. An output schema exists, so return-value structure need not be spelled out. For a tool with network execution and billing side effects, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents all three parameters with types, defaults, ranges, and examples. The description's mention of searchable dimensions broadly echoes the 'condition' parameter without adding meaning beyond the schema. Baseline 3 is appropriate given the schema already carries the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a specific resource ('official ClinicalTrials.gov registry'), and the scope of searchable entities (condition, intervention, sponsor, free-text keyword). It also lists the return fields, making the tool's purpose unmistakable and differentiating it from generic search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'When to use' and 'When NOT to use' guidance, and names concrete sibling alternatives for adjacent domains such as openfda_search, epa_facility_search, and fec_campaign_finance_search. This gives an agent clear routing logic based on the user's intent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cms_healthcare_provider_searchCMS Healthcare Provider SearchARead-only
Search official CMS Provider Data Catalog directories for Medicare-certified hospitals, nursing homes, home health agencies, hospices, dialysis facilities, long-term care hospitals, and inpatient rehab facilities. Returns normalized facility records (identity, ownership, capacity, and star ratings) across all seven provider types through one consistent row shape.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/cms-healthcare-provider-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for healthcare facility due diligence, star-rating and quality comparisons, nursing-home staffing/inspection/fines research, or building a location-bounded list of Medicare-certified providers.
When NOT to use: Do not use for clinical trial recruitment data, environmental compliance, campaign finance, corporate registry lookups, or contractor licensing.
Named alternatives: Use 'clinical_trials_search' for ClinicalTrials.gov study data, 'epa_facility_search' for environmental compliance, 'us_business_entity_search' or 'us_contractor_license_search' for corporate/contractor registries, or 'europe_pmc_paper_search' for biomedical literature.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | No | Five-digit US ZIP code to filter by, e.g. '77030'. | |
| city | No | City name to filter by, matched exactly (case-insensitive, not a substring), e.g. 'Houston'. | |
| state | Yes | Two-letter US state or territory abbreviation to search within, e.g. 'TX'. | |
| county | No | County name to filter by, matched exactly (case-insensitive), e.g. 'Harris'. | |
| max_results | No | Maximum number of provider records to retrieve and bill. Defaults to 10. | |
| name_contains | No | Case-insensitive substring to match against the provider or facility name, e.g. 'Memorial'. | |
| provider_types | No | One or more CMS provider-directory types to search, e.g. ['hospital'] or ['nursing_home', 'hospice']. Omit to search hospitals only, the Actor's own fallback. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations cover readOnly/openWorld/destructive hints, but the description adds substantial operational detail: synchronous network execution via a named Apify Actor, billing side effects, APIFY_TOKEN requirement, latency expectations, and a 120-second timeout cap. There is no contradiction with the annotations; the billed run is a side effect of a read-only data fetch.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into labeled sections that front-load the core behavior and then cover operational and usage details. It is longer than average, but every section carries decision-relevant information such as auth, billing, latency, exclusions, and named alternatives.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers scope, return shape, execution model, side effects, authentication, latency limits, exclusions, and alternatives. An output schema exists for detailed return values, and annotations cover the safety profile, so nothing critical is missing for an agent to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and each parameter already includes type, constraints, defaults, examples, and behavioral notes such as the hospital-only fallback for provider_types. The description reinforces that results are normalized and covers the seven provider types, but it adds little per-parameter meaning beyond what the input schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Search') plus a precise resource: official CMS Provider Data Catalog directories for Medicare-certified providers. It enumerates all seven provider types and clarifies the consistent row shape, so an agent knows exactly what kind of data is returned. This clearly differentiates it from the many general-purpose sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains explicit 'When to use' and 'When NOT to use' sections, and it names exact alternative tools such as clinical_trials_search, epa_facility_search, and us_contractor_license_search. An agent can route correctly without needing to inspect other tool schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
company_registry_searchUK, France and Global Company Registry SearchARead-only
Search UK Companies House, French SIRENE, and the global GLEIF LEI register in one call. Returns normalized company identity, status, registration, address, industry, financial, officer, and ownership fields where available.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/company-registry-search'.
Side Effects: Creates a billed Actor run and dataset on your Apify account; queries official public company registers.
Authentication: Requires APIFY_TOKEN; no registry credential is required for normal bounded searches.
Latency & Limits: Typical runs take 10-60 seconds; detail enrichment is slower; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for cross-border company lookup, entity resolution, status verification, LEI matching, and company enrichment across the UK, France, and GLEIF.
When NOT to use: Do not use for US Secretary of State records, contractor licences, sanctions screening, or investment advice.
Named alternatives: Use 'us_business_entity_search' for Florida, Alabama, and Wisconsin; 'gleif_lei_search' for a focused LEI lookup; or 'french_company_search' for France-only searches.
| Name | Required | Description | Default |
|---|---|---|---|
| sources | No | Official registries to search. | |
| active_only | No | Exclude dissolved, ceased, and lapsed entities. | |
| max_results | No | Maximum records returned and billed across all queries and registries. | |
| search_queries | Yes | One or more full or partial company names. | |
| include_details | No | Add source-specific detail such as UK officers and filings or GLEIF parent relationships. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses execution style (synchronous cloud call via Apify Actor), side effects (billed Actor run and dataset), authentication requirements (APIFY_TOKEN), and latency bounds (10-60 seconds, 120-second timeout). This goes well beyond the annotations and adds important operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into labeled sections with front-loaded purpose. Each paragraph adds distinct value—scope, behavior, cost/auth, latency, usage—without repeating schema content or padding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a multi-registry tool with five parameters and an output schema, the description covers all necessary context: purpose, exclusions, alternatives, authentication, cost, latency, and behavior. Nothing essential is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all five parameters are already documented with meaningful descriptions. The tool description adds little parameter-level detail, so the baseline 3 is appropriate; the schema carries the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search UK Companies House, French SIRENE, and the global GLEIF LEI register in one call.' It then lists the normalized fields returned, making the tool's scope concrete and clearly distinct from single-country siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
An explicit 'Usage Guidelines' section provides when-to-use, when-not-to-use, and named alternatives: us_business_entity_search, gleif_lei_search, and french_company_search. This gives an agent precise routing criteria without inferring from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
courtlistener_case_searchCourtListener Opinions and Federal Docket SearchARead-only
Search published judicial opinions or federal RECAP dockets through CourtListener. Returns case names, courts, dates, citations, judges, parties, filings, snippets, and canonical record links where available.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/courtlistener-case-search'.
Side Effects: Creates a billed Actor run and dataset on your Apify account; queries public CourtListener and RECAP search data.
Authentication: Requires APIFY_TOKEN; the Actor supplies its CourtListener integration credential.
Latency & Limits: Typical runs take 10-45 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for legal research, litigation monitoring, company case discovery, opinion search, and federal docket screening.
When NOT to use: Do not treat results as a complete docket, legal advice, or proof of current case status.
Named alternatives: Use 'sec_edgar_filings' for SEC disclosures, or 'us_business_entity_search' for company registrations.
| Name | Required | Description | Default |
|---|---|---|---|
| court | No | Optional CourtListener court ID such as cafc, txed, or ca9. | |
| query | Yes | Free text across case names and indexed text. | |
| filed_after | No | Inclusive earliest filing date. | |
| max_results | No | Maximum results returned and billed. | |
| search_type | No | Search judicial opinions or federal RECAP dockets. | opinions |
| filed_before | No | Inclusive latest filing date. | |
| nature_of_suit | No | Optional federal nature-of-suit code; dockets only. | |
| include_court_details | No | Add court jurisdiction, website, and PACER court ID. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description provides a full 'Behavioral Transparency' section that discloses execution as a synchronous cloud network call via a specific Apify Actor, the side effect of creating a billed Actor run and dataset, the authentication requirement (APIFY_TOKEN), and typical latency with a timeout cap. These details go well beyond the annotations (readOnlyHint, openWorldHint, etc.) and give the agent a complete picture of runtime behavior and costs. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a one-sentence summary followed by clearly labeled sections for Behavioral Transparency and Usage Guidelines. It is concise relative to the amount of information conveyed, with no redundant or filler content. The essential information is front-loaded, making it easy for an agent to quickly grasp the tool's purpose and constraints.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (8 parameters, output schema, and annotations), the description covers all critical aspects: execution, side effects, authentication, latency, usage guidance, and alternatives. It does not describe the return format, but the presence of an output schema makes that unnecessary. The description is complete enough for an agent to decide when to use it and what to expect during invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage for all 8 parameters, each with descriptive text, so the baseline is 3. The description itself does not add parameter-level semantics beyond what the schema already states; it mentions search_type and nature_of_suit only in passing, without additional context. Since the schema already handles parameter documentation, the description meets the baseline without exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Search published judicial opinions or federal RECAP dockets') on a named resource (CourtListener) and enumerates the types of returned data. It also explicitly differentiates from siblings by naming alternative tools (sec_edgar_filings, us_business_entity_search) for other use cases, leaving no ambiguity about what this tool is for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes a dedicated 'Usage Guidelines' section with explicit 'When to use' and 'When NOT to use' conditions, plus named alternatives. It clearly states the tool is for legal research, litigation monitoring, and docket screening, and warns against treating results as complete dockets or legal advice. This is exemplary guidance for selecting the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
cve_vulnerability_intelligenceNVD CVE and CISA KEV Vulnerability IntelligenceARead-only
Search NIST NVD vulnerabilities and enrich every CVE with CISA Known Exploited Vulnerability status, remediation deadlines, ransomware use, CVSS, CWE, affected CPEs, and references.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/nvd-cisa-vulnerability-intelligence'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable; no NVD or CISA credential is required.
Latency & Limits: Typical exact and keyword runs take 5-30 seconds; NVD rate limits can slow large filtered jobs; output is capped by max_results.
Usage Guidelines:
When to use: Use for CVE research, vulnerability triage, patch prioritization, and identifying active exploitation.
When NOT to use: Do not use as a network scanner or as proof that a particular deployed asset is vulnerable.
Named alternatives: Use 'tech_stack_detector' to identify public website technologies before researching relevant CVEs.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Keyword, vendor, product, or phrase to search in NVD. | |
| cve_id | No | Exact CVE ID; overrides query when supplied. | |
| max_cpes | No | Maximum affected CPE criteria retained per CVE. | |
| severity | No | Optional CVSS v3 severity filter. | |
| max_results | No | Maximum vulnerability records to return. | |
| published_end | No | Optional NVD end timestamp; supply with published_start. | |
| max_references | No | Maximum reference URLs retained per CVE. | |
| published_start | No | Optional NVD start timestamp; supply with published_end. | |
| known_exploited_only | No | Return only CVEs currently in CISA KEV. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only and non-destructive behavior, but the description goes further by disclosing that execution creates a billed Apify Actor run and dataset, requires APIFY_TOKEN, needs no NVD/CISA credentials, and can take 5-30 seconds with NVD rate limits. These operational side effects and constraints are valuable beyond the annotations and show no contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized under clear headings, front-loads the core purpose, and groups behavioral and usage details logically. Every sentence contributes operational, safety, or routing information with no filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, authentication, side effects, latency, rate limits, output limits, when-to-use, when-not-to-use, and a named sibling alternative. With the output schema present and 100% parameter coverage in the input schema, no critical guidance for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents each parameter thoroughly. The description adds only general operational context like output capping and typical run durations, not new per-parameter semantics. This matches the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The first sentence states the operation ('Search'), the resource ('NIST NVD'), and the enrichment set ('CISA Known Exploited Vulnerability status, remediation deadlines, ransomware use, CVSS, CWE, affected CPEs, and references'). This clearly distinguishes it as a vulnerability-intelligence lookup rather than a generic web search or scanner, and the title reinforces the exact scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool (CVE research, vulnerability triage, patch prioritization, identifying active exploitation), when NOT to use it (as a network scanner or proof of asset vulnerability), and names a specific alternative (tech_stack_detector). This leaves no ambiguity about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
epa_facility_searchEPA ECHO Facility Compliance SearchARead-only
Search the official EPA ECHO service for US regulated facilities by state, facility name, NAICS code, or environmental program, and export compliance status, inspection, and penalty data. City, ZIP, and violation-only filtering are available in the underlying Actor, not this MCP tool.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/epa-echo-facility-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-35 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for environmental compliance due diligence, regulatory risk screening of a facility or region, industry-wide (NAICS) violation surveys, or enforcement/penalty history lookups.
When NOT to use: Do not use for corporate registry, campaign finance, clinical trial, or FDA drug/device data.
Named alternatives: Use 'clinical_trials_search' for medical studies, 'openfda_search' for FDA drug/device data, 'fec_campaign_finance_search' for political funding, or 'french_company_search' for the French corporate registry.
| Name | Required | Description | Default |
|---|---|---|---|
| state | Yes | Two-letter US state code to search within (e.g. 'RI', 'CA'). | |
| program | No | Environmental program to filter by: 'A' Clean Air Act, 'W' Clean Water Act, 'S' Safe Drinking Water Act, 'R' RCRA hazardous waste. Defaults to 'A' (Clean Air Act) when omitted. | |
| naics_code | No | Industry NAICS code to filter by, e.g. '327910'. | |
| max_results | No | Maximum number of facility records to retrieve. Defaults to 10. | |
| facility_name | No | Substring to match against the facility name. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses synchronous network execution, a billed Actor run and dataset creation on the user's Apify account, APIFY_TOKEN authentication, and latency/timeout limits. This is valuable behavioral context that annotations alone do not provide, and it does not contradict the readOnly/destructive hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is longer than average, but it is well-structured with clear section headers and every section serves a distinct purpose. The opening sentence front-loads the core purpose, and the additional sections are informative rather than redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, an output schema, and external side effects, the description covers execution model, authentication, side effects, latency, exclusions, and alternatives. Nothing an agent needs to decide whether and how to invoke this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning by naming the main search dimensions (state, facility name, NAICS code, environmental program) and explicitly warns that city, ZIP, and violation-only filters are unavailable in this MCP tool, which helps agents avoid invalid usage patterns.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('official EPA ECHO service'), a clear verb ('Search'), and the exact output ('compliance status, inspection, and penalty data'). It also explicitly calls out which filters are NOT available in the MCP tool, helping differentiate it from the underlying Actor and from unrelated sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has dedicated 'When to use' and 'When NOT to use' sections, plus named alternatives for each exclusion. This gives an agent explicit routing guidance and leaves no ambiguity about when to select this tool over siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
europe_pmc_paper_searchEurope PMC Research Paper SearchARead-only
Search Europe PMC and PubMed for research papers, preprints and patents by topic, author, journal, publication year and open-access status. Returns flat records with identifiers, abstracts, citation counts, MeSH indexing, funding and full-text links.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/europe-pmc-paper-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 5-20 seconds for the default 10 results; timeout capped at 120 seconds. Requesting a large max_results or enabling include_entities adds paginated and annotation-batch requests and increases duration.
Usage Guidelines:
When to use: Use for biomedical and life-science literature search, systematic-review scoping, citation and impact tracking, funding/grant provenance research, open-access discovery, or mining gene/disease/organism entities from paper text.
When NOT to use: Do not use for clinical trial recruitment or study status (use 'clinical_trials_search'), drug/device safety data, approvals, adverse events or recalls (use 'openfda_search'), or general corporate/regulatory lookups.
Named alternatives: Use 'clinical_trials_search' for ClinicalTrials.gov study records, or 'openfda_search' for FDA drug and device safety datasets.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Keywords, topic, condition, intervention or Europe PMC search expression. Example: 'gut microbiome obesity'. | |
| author | No | Filter to papers by this author's name. Example: 'Villapol S'. | |
| journal | No | Filter to papers published in this journal. Example: 'Nature Medicine'. | |
| sort_by | No | Order results by relevance, citation count, or newest publication date. Defaults to 'relevance'. Example: 'cited'. | relevance |
| year_to | No | Return only papers published in this year or earlier. Example: 2026. | |
| year_from | No | Return only papers published in this year or later. Example: 2022. | |
| max_results | No | Maximum number of papers to retrieve. Defaults to 10. Example: 25. | |
| include_entities | No | Add genes, diseases, organisms, chemicals, Gene Ontology terms, experimental methods and accession numbers mined from the full text. Adds roughly one extra request per 8 results. Defaults to false. Example: true. | |
| open_access_only | No | Return only records Europe PMC marks as open access. Example: true. | |
| has_abstract_only | No | Return only papers for which Europe PMC provides an abstract. Example: true. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that execution is a synchronous network call via a specific Apify Actor, that it creates a billed Actor run and dataset on the user's Apify account, that it requires APIFY_TOKEN, and that latency is typically 5-20 seconds with a 120-second timeout. It also explains how max_results and include_entities affect duration. This is rich behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Behavioral Transparency, Usage Guidelines) and front-loads the core purpose in the first sentence. It is longer than the minimum, but every section earns its place by providing operational and selection guidance. A small deduction because the behavioral and usage sections could be slightly tightened without losing information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 10-parameter network tool with an output schema, the description covers the essential operational context: what it searches, what it returns, how it executes, what side effects it has, what auth it needs, and when to use alternatives. The output schema handles return-value details, and the description covers the rest. Nothing an agent needs to decide whether to call this tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all 10 parameters. The description adds value by explaining the trade-off of include_entities ('adds roughly one extra request per 8 results') and by framing the query parameter as a 'Europe PMC search expression' with an example. It does not restate every parameter, which is appropriate given full schema coverage; a 4 reflects the added operational context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Search') and resource ('Europe PMC and PubMed'), and enumerates the search dimensions (topic, author, journal, publication year, open-access status) and the returned record fields (identifiers, abstracts, citation counts, MeSH indexing, funding, full-text links). This clearly distinguishes it from sibling tools like clinical_trials_search and openfda_search, which target different biomedical data sources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has an explicit 'When to use' section listing concrete use cases (biomedical literature search, systematic-review scoping, citation tracking, funding provenance, open-access discovery, entity mining) and a 'When NOT to use' section naming two sibling alternatives (clinical_trials_search, openfda_search) with the conditions that route to them. This is exactly the guidance an agent needs to select the right tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fec_campaign_finance_searchFEC Campaign Finance SearchARead-only
Search the US Federal Election Commission's public register of federal candidates, committees/PACs, or individual campaign contributions. A single call returns one record type only, selected with data_type, because candidates, committees, and contributions carry genuinely different fields.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/fec-campaign-finance-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for political campaign research, candidate and PAC vetting, donor/contribution geography and industry analysis, or election-cycle fundraising tracking.
When NOT to use: Do not use for corporate SEC filings, environmental compliance, clinical trials, or FDA drug/device data. Contributor street addresses are never returned (deliberately excluded upstream).
Named alternatives: Use 'french_company_search' for French corporate registry data, 'epa_facility_search' for environmental compliance, 'clinical_trials_search' for medical studies, or 'openfda_search' for FDA drug/device data.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | Candidate, committee, or contributor name to search for, depending on data_type. | |
| party | No | Three-letter party code, e.g. 'DEM', 'REP', 'LIB'. Applies to candidates only. | |
| state | No | Two-letter state code. For contributions this filters the contributor's state, not the recipient's. | |
| office | No | Office sought: 'H' House, 'S' Senate, 'P' President. Applies to candidates only. | |
| data_type | No | Which register to search: federal candidates, committees and PACs, or individual contributions. Defaults to 'candidates'. | candidates |
| max_results | No | Maximum number of records to retrieve. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: synchronous network call via Apify Actor, billed Actor run and dataset creation, APIFY_TOKEN requirement, and latency/timeout expectations. It does not contradict annotations. Minor gap: no detail on pagination or exact dataset output structure, but the output schema exists and the description covers the main behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Behavioral Transparency, Usage Guidelines) and front-loaded purpose. It is somewhat long but every section earns its place, providing operational and routing details. The length is justified by the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the output schema exists, and annotations cover safety, the description is complete. It covers execution model, side effects, auth, latency, exclusions, and alternatives. An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters. The description adds meaning by explaining that data_type selects the record type and that fields differ across types, and clarifies that state filters the contributor's state for contributions. This goes beyond the schema's basic descriptions, though it doesn't deeply elaborate every parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('US Federal Election Commission's public register of federal candidates, committees/PACs, or individual campaign contributions'). It also explicitly notes that a single call returns one record type only, selected with data_type, which distinguishes it from a generic multi-type search. This is clear and differentiates from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'When to use' and 'When NOT to use' sections, including named alternatives like 'french_company_search', 'epa_facility_search', 'clinical_trials_search', and 'openfda_search'. It also states a key exclusion (contributor street addresses never returned). This is exemplary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
federal_register_searchUS Federal Register Rule and Notice SearchARead-only
Search official US Federal Register rules, proposed rules, notices, and presidential documents. Returns agencies, publication and effective dates, abstracts, citations, CFR references, dockets, comment links, and source documents.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/federal-register-search'.
Side Effects: Creates a billed Actor run and dataset on your Apify account; queries the official Federal Register API.
Authentication: Requires APIFY_TOKEN; no Federal Register key is required.
Latency & Limits: Typical runs take 5-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for rulemaking monitoring, regulatory research, agency-action tracking, comment-period discovery, and government-affairs workflows.
When NOT to use: Do not use as legal advice or assume a proposed rule is in force.
Named alternatives: Use 'courtlistener_case_search' for judicial decisions and dockets, 'sec_edgar_filings' for SEC company filings, or 'grants_gov_opportunity_search' for funding opportunities.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free text across titles, abstracts, and indexed document content. | |
| sort_order | No | Result ordering. | newest |
| max_results | No | Maximum documents returned and billed. | |
| document_types | No | Federal Register document types to include. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description goes well beyond them by disclosing synchronous cloud execution via a specific Apify Actor, billing side effects (billed Actor run and dataset), authentication requirements (APIFY_TOKEN), and latency limits. This gives the agent material operational context without contradicting the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into clear sections with front-loaded purpose and concise bullets for execution, side effects, authentication, latency, and usage guidance. Each section adds non-redundant, decision-relevant information, and no sentence feels wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, a rich output schema, and annotations, the description is complete: it covers the data source, return content, execution behavior, billing side effects, auth, latency, and use cases. Nothing critical an agent needs to decide or invoke the tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema fully documents query, sort_order, max_results, and document_types. The description adds high-level context about returned fields and billing implications of max_results, but it does not meaningfully explain individual parameter meanings beyond what the schema already provides. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') plus a precise resource ('official US Federal Register rules, proposed rules, notices, and presidential documents'), and enumerates the returned content types. This clearly distinguishes it from the judicial, SEC, and grants-focused siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use scenarios ('rulemaking monitoring, regulatory research, agency-action tracking...'), a when-not-to-use caveat (not legal advice, don't assume a proposed rule is in force), and names alternative tools like courtlistener_case_search and sec_edgar_filings. This fully addresses selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
florida_new_filings_searchFlorida Sunbiz Business Entity SearchARead-only
Search the Florida Division of Corporations (Sunbiz) business registry by company name, returning entity name, document number, status, and entity type.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/fl-sos-new-filings'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds without detail pages, longer with include_details enabled; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for Florida LLC/corporation lookup by company name, due-diligence checks, or monitoring new Florida business filings.
When NOT to use: Do not use to search by a person's or officer's name (use 'florida_officer_search' instead), for other states, or for contractor licences.
Named alternatives: Use 'florida_officer_search' to find companies tied to a person or registered agent, 'us_business_entity_search' for a multi-state lookup that includes Florida, or 'alabama_business_search' for Alabama-only records.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of entity records to return and bill. Defaults to 10. | |
| search_query | Yes | Full or partial Florida business name to search on Sunbiz (e.g. 'SMITH' or 'Smith Services LLC'). | |
| include_details | No | When true, opens each result's Sunbiz detail page to add date filed, FEI/EIN, registered agent, principal/mailing addresses, officers, and annual-report history. Slower; leave off for a fast name-and-status lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds substantial context: it reveals the synchronous network execution via a specific Apify Actor, the billing side effect (creates a billed Actor run and dataset), the APIFY_TOKEN authentication requirement, and latency/limits (10-30 seconds typical, 120s timeout). These go far beyond the annotations and are critical for an agent to set expectations and avoid surprises.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with clear headers and front-loads the core purpose in the first sentence. Each subsequent section (Behavioral Transparency, Usage Guidelines) adds distinct, non-redundant information. No sentence is wasted, and the length is justified by the tool's complexity (network call, billing, auth, multiple usage scenarios).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has an output schema, so return values are documented elsewhere. The description covers execution model, side effects, authentication, latency, and usage exclusions. For a network-calling tool with billing implications, this is complete. An agent has everything needed to decide whether to call it, prepare credentials, and interpret the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The tool description does not add any parameter-specific meaning beyond what the schema already provides. For example, max_results, search_query, and include_details are each fully described in the input schema. The description's mention of include_details in the latency context is contextual, not parameter semantics, so a 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a specific resource (Florida Division of Corporations Sunbiz business registry), and lists the returned fields (entity name, document number, status, entity type). It clearly distinguishes this from sibling tools by naming the exact state and registry. The purpose is unambiguous and immediately actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'When to use' and 'When NOT to use' section, naming specific alternatives (florida_officer_search, us_business_entity_search, alabama_business_search) and the exact conditions under which each should be chosen. This gives an agent complete routing guidance with no inference required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
florida_officer_searchFlorida Sunbiz Officer and Registered Agent SearchARead-only
Search the Florida Sunbiz registry by an officer, director, or registered-agent name and return every Florida company tied to that person, with entity name and document number.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/fl-sunbiz-officer-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds without detail pages, longer with include_details enabled (one extra page load per matched company); timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use to find every Florida company associated with a specific person's name (officer, director, or registered agent), for background research or ownership mapping.
When NOT to use: Do not use to search by company name (use 'florida_new_filings_search' instead), for other states, or for contractor licences.
Named alternatives: Use 'florida_new_filings_search' to look up a Florida company by its own name, or 'us_business_entity_search' for a multi-state company-name lookup.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of officer-to-entity records to return and bill. Defaults to 10. | |
| search_query | Yes | Full or partial officer, director, or registered-agent person name to search on Sunbiz (e.g. 'SMITH' or 'Smith, John'). | |
| include_details | No | When true, opens each matched company's Sunbiz detail page to add status, filing date, FEI/EIN, addresses, the full officer list, and annual-report history. Slower; leave off for a fast person-to-company lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses synchronous network execution, the specific Apify Actor, billing and dataset creation side effects, the APIFY_TOKEN requirement, typical latency, and the 120-second timeout. This goes well beyond the readOnly/destructive annotations and gives the agent the operational context needed to call the tool safely. The billed run/dataset is a platform artifact rather than a mutation of the searched registry, so it does not contradict readOnlyHint.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in one clear sentence, followed by well-labeled Behavioral Transparency and Usage Guidelines sections. Every bullet adds distinct value with no repetition or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity, the description covers authentication, cost, latency, output shape, parameter trade-offs, and sibling alternatives. An output schema exists, so the description does not need to repeat return-value details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all three parameters well (100% coverage), so the baseline is 3. The description adds extra operational meaning beyond the schema by explaining that max_results controls billed records and that include_details incurs an extra page load per matched company, which helps agents reason about cost and latency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact action ('Search the Florida Sunbiz registry by an officer, director, or registered-agent name') and the concrete result ('every Florida company tied to that person, with entity name and document number'). This clearly distinguishes it from sibling company-name search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit 'When to use' and 'When NOT to use' guidance, and names specific alternatives: 'florida_new_filings_search' for company-name lookups and 'us_business_entity_search' for multi-state searches. An agent is fully routed to the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
french_company_searchFrench Company Registry Search (SIRENE)ARead-only
Search France's official company register (SIRENE/INSEE) by name, activity, department, or postal code, and export SIREN/SIRET identifiers, legal status, headquarters address, workforce, revenue, and officers.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/french-company-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for French corporate due diligence, company/officer lookups, industry (NAF) or regional market surveys, or B2B vendor verification in France.
When NOT to use: Do not use for US environmental compliance, US campaign finance, clinical trials, or FDA drug/device data.
Named alternatives: Use 'fec_campaign_finance_search' for US political funding, 'epa_facility_search' for environmental compliance, 'clinical_trials_search' for medical studies, or 'openfda_search' for FDA drug/device data.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name, trade name, or keyword to search for (e.g. 'boulangerie', 'Airbus'). | |
| naf_code | No | French NAF/APE economic activity code to filter by, e.g. '62.01Z'. | |
| department | No | French department code to filter by, e.g. '75' or '13'. | |
| active_only | No | Return only companies currently marked active. Defaults to true. | |
| max_results | No | Maximum number of company records to retrieve. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses execution as a synchronous network call, the billed Apify Actor run/dataset side effect, a required APIFY_TOKEN environment variable, and latency/timeout limits. These details add real behavioral context without contradicting the read-only and non-destructive hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear headers and front-loaded purpose, then usage, side effects, auth, and limits. Every sentence earns its place; there is no filler or redundant restatement.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description does not need to document return values. It covers search scope, filters, side effects, authentication, latency, and exclusions, making it fully sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all five parameters with meaningful details and coverage is 100%, so the description does not need to repeat them. The description's mention of search dimensions maps to the schema but adds no parameter-level syntax or constraints beyond it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: 'Search France's official company register (SIRENE/INSEE)' and enumerates search filters and exported fields. This clearly distinguishes the tool from US-focused sibling tools like us_business_entity_search and epa_facility_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes explicit 'When to use' and 'When NOT to use' sections with named alternatives for each excluded use case. An agent can reliably route between this tool and its siblings without inferring anything.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
glassdoor_jobs_searchGlassdoor Active Job Postings and Salary SearchARead-only
Search active employment vacancies, hiring employers, estimated compensation bands, and corporate ratings from Glassdoor.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/glassdoor-jobs-scraper'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-40 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use when researching active job openings, hiring trends, employer compensation ranges, or workplace ratings for specific professions.
When NOT to use: Do not use for local commercial lead generation, corporate financial filings, or live video streaming.
Named alternatives: Use 'google_maps_search' for commercial trade directories, 'sec_edgar_filings' for SEC corporate filings, or 'usaspending_contracts' for federal prime contractor records.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | Geographic municipality, metropolitan area, or 'Remote' filter (e.g. 'Austin, TX' or 'New York, NY'). Defaults to all locations if empty. | |
| job_title | Yes | Target job title, professional role, or occupational keyword (e.g. 'Software Engineer', 'Data Analyst', or 'DevOps Architect'). | |
| max_results | No | Maximum number of active job listings to retrieve. Integer between 1 and 100. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses execution mechanism (synchronous Apify Actor call), side effects (billed run and dataset creation), authentication requirements (APIFY_TOKEN), and latency limits (15-40s typical, 120s timeout). This adds substantial context beyond the annotations and clarifies the true cost/operational profile of the call.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into clear, front-loaded sections: purpose, behavioral transparency, and usage guidelines. Every sentence provides useful operational or routing information without fluff or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter search tool with a rich output schema and strong annotations, the description covers authentication, side effects, latency, and alternatives. Nothing needed for correct selection or invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema documentation covers all three parameters with 100% coverage, including defaults, constraints, and examples. The tool description itself adds no parameter-level detail, so the schema already carries the burden; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') and names the exact resource ('active employment vacancies, hiring employers, estimated compensation bands, and corporate ratings from Glassdoor'). It clearly distinguishes itself from sibling tools like linkedin_jobs_search by anchoring the source as Glassdoor.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('researching active job openings, hiring trends...'), explicit when-NOT-to-use guidance ('local commercial lead generation...'), and names concrete alternatives (google_maps_search, sec_edgar_filings, usaspending_contracts). This is exemplary routing behavior.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
gleif_lei_searchGLEIF Legal Entity Identifier SearchARead-only
Search the official GLEIF register for Legal Entity Identifiers by company name, exact LEI, or free text, and return normalized records carrying registration status, jurisdiction, legal and headquarters addresses, and the company's own national registration number.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/gleif-lei-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 5-30 seconds for a flat lookup; enabling include_relationships adds up to six extra requests per record and can push a large run past a minute; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for counterparty due diligence, KYC/AML onboarding checks, entity resolution across jurisdictions, or confirming a company's registration status, legal form, and own national registry number via its Legal Entity Identifier.
When NOT to use: Do not use for SEC financial filings (use 'sec_edgar_filings'), for a US state's own corporate registry record (use 'us_business_entity_search'), or for French Sirene registry detail (use 'french_company_search'); GLEIF coverage is limited to entities that hold an LEI.
Named alternatives: Use 'sec_edgar_filings' for US public company filings, 'us_business_entity_search' for US state-level business entity lookups, or 'french_company_search' for the French national company registry.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company name, an LEI code, or free text to search for, depending on search_mode. Example: 'Siemens'. | |
| status | No | Limit results to entities with this operating status, e.g. 'ACTIVE'. Omit to return both active and inactive entities. | |
| country | No | Two-letter ISO country code of the entity's legal address to filter on, e.g. 'DE' for Germany. Omit to search every country. | |
| max_results | No | Maximum number of LEI records to retrieve. Defaults to 10. | |
| search_mode | No | How to interpret query. 'name' matches the registered legal name only, 'fulltext' matches the whole record including addresses and former names, 'lei' is an exact 20-character LEI lookup. Defaults to 'name'. | name |
| jurisdiction | No | Two-letter code of the registering jurisdiction to filter on, e.g. 'FR'. Can differ from country. Omit to search every jurisdiction. | |
| include_relationships | No | Also fetch direct and ultimate parent, subsidiary count and names, and ISINs. Costs up to six extra requests per record and slows the run. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, but the description adds critical behavioral context: it runs via an Apify Actor, incurs billing, requires APIFY_TOKEN, and has documented latency and timeout (120s). It also explains the side effect of creating a billed Actor run and dataset, which is beyond what annotations provide. This is rich and valuable disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured into clear sections (purpose, behavioral transparency, usage guidelines) and front-loads the core purpose. Although it is longer than a typical description, every sentence earns its place—no filler or redundancy. The organization makes it easy for an agent to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 parameters, a network call, billing implications, and output details), the description is comprehensive: it explains execution, side effects, prerequisites, latency, and usage boundaries. It also describes the return record fields even though an output schema exists, further aiding the agent in understanding expected results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so every parameter is already documented with clear explanations (e.g., search_mode, status, include_relationships). The description adds no additional parameter-specific meaning beyond what the schema already provides. The baseline of 3 applies, and the description does not elevate it further.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and resource ('the official GLEIF register'), and explicitly distinguishes it from siblings by naming alternatives in the usage guidelines. It clearly conveys what the tool does and how it differs from related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes an explicit 'When to use' and 'When NOT to use' section, naming concrete alternatives (sec_edgar_filings, us_business_entity_search, french_company_search) and conditions that select them. This leaves no ambiguity about when to invoke this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_autocomplete_keywordsGoogle Autocomplete Keyword SuggestionsARead-only
Generate localized Google Autocomplete keyword suggestions from one or many seed phrases. Supports alphabet and question-prefix expansion and returns ranked, globally deduplicated keyword ideas.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/google-autocomplete-keyword-suggestions'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Base queries normally finish in 5-20 seconds; expansion modes make additional requests; output is capped by max_results.
Usage Guidelines:
When to use: Use for long-tail SEO research, customer-question discovery, content planning, and localized keyword ideation.
When NOT to use: Do not treat suggestions as verified search-volume, CPC, or competition data.
Named alternatives: Use 'google_news_search' for current news coverage. This server does not include a general web search tool.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Two-letter country code used to localize suggestions. | US |
| queries | Yes | Seed phrases to expand. | |
| language | No | Two-letter suggestion language code. | en |
| max_results | No | Maximum unique suggestions to return. | |
| expansion_mode | No | Optional query expansion strategy. | none |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description has a 'Behavioral Transparency' section detailing execution method (synchronous network call via Apify Actor), side effects (billed run and dataset creation), authentication (APIFY_TOKEN), and latency limits. This is rich, non-redundant disclosure that exceeds the annotation hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured into clear sections (Behavioral Transparency, Usage Guidelines) and front-loaded with the core purpose. Every sentence delivers information; no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present and annotations covering safety, the description supplies all necessary operational details: execution, side effects, auth, latency, and clear usage guidance. Nothing an agent needs to decide or call the tool is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by explaining that expansion modes cause additional requests and that max_results caps output, providing behavioral context for those parameters beyond their schema definitions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Generate localized Google Autocomplete keyword suggestions from one or many seed phrases.' It also details supported features (alphabet/question expansion, ranking, deduplication) and later names a sibling alternative (google_news_search), making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated 'Usage Guidelines' section explicitly states when to use (SEO research, question discovery, content planning) and when NOT to use (not as verified volume/CPC data). It also names the alternative tool 'google_news_search' for news coverage, satisfying the when/alternative requirement clearly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_maps_searchGoogle Maps Local Business and B2B Lead ExtractorARead-only
Extract verified commercial business listings, postal addresses, phone numbers, customer review ratings, and canonical websites from Google Maps.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/google-maps-business-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-45 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use when the user requests local commercial directories, trade contractors, physical retail storefronts, or B2B regional sales leads.
When NOT to use: Do not use for employment job listings, corporate regulatory filings, federal procurement awards, or short-term vacation rentals.
Named alternatives: Use 'glassdoor_jobs_search' for employer vacancies, 'sec_edgar_filings' for corporate SEC disclosures, 'usaspending_contracts' for government awards, or 'airbnb_listings_search' for vacation rentals.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | Optional city or region. Omit if already included in search_query. | |
| max_results | No | Maximum count of business lead records to extract and return. Defaults to 10. | |
| search_query | Yes | Geographic search query combining target trade category and municipal market location (e.g. 'HVAC contractors in Phoenix, AZ' or 'Commercial Electricians Dallas TX'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations: it discloses that execution is a synchronous cloud network call via a specific Apify Actor, that it creates a billed Actor run and dataset on the user's Apify account, that APIFY_TOKEN is required, and that latency is typically 15-45 seconds with a 120-second timeout. This is rich behavioral context that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear labeled sections (Behavioral Transparency, Usage Guidelines) and front-loads the core purpose. It is longer than the minimum, but every section earns its place by providing operational and routing details. The only minor deduction is that the 'When NOT to use' list could be slightly tighter, but it is not bloated.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 parameters, 100% schema coverage, an output schema, and annotations declaring readOnly/openWorld/destructive hints, the description is complete. It covers purpose, usage boundaries, side effects, auth, latency, and alternatives. There is no meaningful gap an agent would need to fill by guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description adds value by explaining the search_query format with concrete examples ('HVAC contractors in Phoenix, AZ') and clarifying the relationship between location and search_query ('Omit if already included in search_query'). It doesn't add much beyond the schema, but the examples and the dedup guidance justify a 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Extract') and enumerates the exact resource types: verified commercial business listings, postal addresses, phone numbers, review ratings, and canonical websites from Google Maps. It clearly distinguishes this tool from the sibling list by naming the domain (local business/B2B leads) and even names alternatives for adjacent domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description has an explicit 'When to use' and 'When NOT to use' section, and it names four sibling tools as alternatives for excluded use cases (glassdoor_jobs_search, sec_edgar_filings, usaspending_contracts, airbnb_listings_search). This is exactly the kind of routing guidance an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_news_searchGoogle News SearchARead-only
Search Google News for companies, people, products, brands, industries, and topics. Returns current headlines, publishers, timestamps, article links, source sites, and snippets.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/google-news-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 5-20 seconds; output is capped by max_results.
Usage Guidelines:
When to use: Use for company-news monitoring, brand mentions, market intelligence, current-event research, and source discovery.
When NOT to use: Do not use for full article text, historical news archives, or verified fact checking.
Named alternatives: Use 'sec_edgar_filings' for official company filings, or 'europe_pmc_paper_search' for biomedical literature.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Company, person, product, topic, or quoted phrase to search. | |
| country | No | Two-letter Google News country edition. | US |
| language | No | Two-letter Google News language code. | en |
| max_results | No | Maximum news records to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses execution details (synchronous network call via Apify Actor), side effects (billed Actor run and dataset creation), authentication (APIFY_TOKEN), and latency limits (5-20 seconds, capped by max_results). Annotations already indicate readOnlyHint=true and destructiveHint=false, and the description adds context beyond those, such as the billing implication and execution environment, without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement followed by dedicated sections for behavioral transparency and usage guidelines. Each sentence contributes unique information, and the most critical details (what it does, when to use it) are front-loaded. No filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that an output schema exists, the description need not detail return types, but it covers all other essential context: execution model, side effects, authentication, latency, limits, and usage boundaries. An agent has everything needed to decide when to call this tool and what to expect, making it fully complete for its complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so the baseline is 3, but the description adds value beyond the schema by noting that output is capped by max_results and by describing the nature of returned data. It doesn't repeat the per-parameter descriptions, but it provides context about the tool's behavior that helps an agent understand the parameters' practical impact.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('search') and resource ('Google News'), enumerates the target entities (companies, people, products, etc.), and lists what it returns (headlines, publishers, timestamps, links, snippets). This distinguishes it from the many sibling search tools, which focus on other domains.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'When to use' section listing use cases (company-news monitoring, brand mentions, market intelligence, current-event research, source discovery) and a 'When NOT to use' section excluding full article text, historical archives, and fact checking. It also names two alternatives (sec_edgar_filings for official filings and europe_pmc_paper_search for biomedical literature), giving an agent clear routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_play_reviews_searchGoogle Play App Reviews SearchARead-only
Extract public Google Play Store reviews for one or more Android apps, including star rating, review text, reviewer name, developer replies, and app-level metadata (rating breakdown, installs, category, developer).
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/google-play-reviews-scraper'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-45 seconds per app; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for app-store sentiment research, competitor review monitoring, feature/complaint mining, or tracking developer response rates across one or more Android apps.
When NOT to use: Do not use for iOS App Store reviews, general web search, or employment/job data.
Named alternatives: Use 'linkedin_jobs_search' for hiring/job listings or 'youtube_video_search' for video content discovery; neither covers app-store review data.
| Name | Required | Description | Default |
|---|---|---|---|
| scores | No | Optional star-rating filter (1-5). Keep only reviews matching any of these ratings, e.g. [1, 2] for negative reviews. Omit to return all ratings. | |
| app_ids | Yes | Android package IDs or full Google Play app URLs to pull reviews for, up to 25 (e.g. ['com.spotify.music', 'com.google.android.youtube']). | |
| keywords | No | Optional list of words or phrases; keep only reviews whose text contains any of them (case-insensitive). Omit to skip this filter. | |
| max_results | No | Maximum number of review records to return per app. Defaults to 25. | |
| recent_days | No | Optional recency filter: keep only reviews posted within this many days of now (e.g. 30). Omit to return reviews of any age. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses execution model, auth requirements, latency, and side effects, but it openly states it 'creates a billed Actor run and dataset on your Apify account', which contradicts the annotation readOnlyHint=true. Per rubric this is an annotation contradiction, so the behavioral transparency score is grounded to 1.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear section headers, front-loaded purpose, and clearly separated behavioral and usage sections. Every sentence adds information and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the output schema and full parameter descriptions, the description covers execution, billing side effects, authentication requirements, rate-limits, timeout, latency, and alternatives. There are no important operational or selection details missing, aside from the annotation inconsistency.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all five parameters, including constraints and defaults. The description adds no meaningful parameter-specific detail beyond the schema, which fits the baseline 3 for full schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Describes the tool's specific verb and resource: extracting public Google Play reviews with an explicit field list and app-level metadata. It clearly differentiates itself from the sibling tools, none of which target app-store review data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives explicit 'When to use' guidance, explicit 'When NOT to use' exclusions, and names specific alternatives like linkedin_jobs_search and youtube_video_search. The tool is easy for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grants_gov_opportunity_searchGrants.gov Funding Opportunity SearchARead-only
Search official US federal funding opportunities from Grants.gov by keyword, agency, status, opportunity number or Assistance Listing. Returns deadlines, award ranges, eligibility, contacts and canonical source links.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/grants-gov-opportunity-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-60 seconds; include_details adds one detail request per result.
Usage Guidelines:
When to use: Use for grant prospecting, research-funding discovery and federal opportunity monitoring.
When NOT to use: Do not use for awarded federal contracts (use 'usaspending_contracts') or European procurement (use 'ted_eu_tender_search').
Named alternatives: Use 'usaspending_contracts' for historical US awards or 'ted_eu_tender_search' for European tender notices.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | No | Keywords to search in opportunity titles and descriptions. | |
| statuses | No | Opportunity statuses to include. | |
| max_results | No | Maximum opportunities to return. | |
| agency_codes | No | Federal agency codes such as NSF or HHS. | |
| include_details | No | Fetch award, eligibility, synopsis and contact details. | |
| assistance_listing | No | Assistance Listing number, formerly CFDA, such as 47.070. | |
| opportunity_number | No | Exact or partial funding opportunity number. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnly/openWorld/non-destructive, so the bar is lower, but the description adds valuable context: network execution via Apify Actor, a billed run/dataset side effect, APIFY_TOKEN requirement, and latency impact of include_details. This is rich behavioral disclosure that is consistent with the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is well organized with labeled sections and a front-loaded purpose sentence. There is minor redundancy between the 'When NOT to use' and 'Named alternatives' bullets, which repeat the same alternative tools nearly verbatim, but overall the structure is clear and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Combined with the rich input schema, annotations, and output schema, the description covers execution model, authentication, side effects, latency, usage boundaries, and the types of data returned. There is no critical missing context for an agent to correctly select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all parameters and the baseline is 3. The description mostly restates these fields, though it does add a useful note that include_details adds one detail request per result. It does not meaningfully extend parameter semantics beyond the schema, but no compensation is needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search official US federal funding opportunities from Grants.gov' and enumerates the searchable fields (keyword, agency, status, opportunity number, Assistance Listing). This clearly distinguishes it from siblings like usaspending_contracts and ted_eu_tender_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states when to use the tool ('grant prospecting, research-funding discovery and federal opportunity monitoring'), when not to use it ('awarded federal contracts' and 'European procurement'), and names specific alternatives. This gives an agent direct routing guidance between similar search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
linkedin_jobs_searchLinkedIn Public Job Listings SearchARead-only
Search public LinkedIn job postings by keyword and location without logging in, returning role title, hiring company, location, posting date, and job URL.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/linkedin-public-jobs-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-40 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for hiring-trend research, talent-market mapping, competitor headcount signals, or sourcing public job openings by role and location.
When NOT to use: Do not use for LinkedIn people/profile search, private candidate data, or submitting job applications.
Named alternatives: Use 'glassdoor_jobs_search' for Glassdoor's own listings and employer ratings, or 'google_play_reviews_search'/'youtube_video_search' for app-review or video data instead of hiring data.
| Name | Required | Description | Default |
|---|---|---|---|
| location | No | City, region, or country used to localize results (e.g. 'Seattle, WA'). Defaults to all locations if empty. | |
| max_results | No | Maximum number of job listings to retrieve. Defaults to 10. | |
| search_query | Yes | Job title, skill, or keyword to search in public LinkedIn job listings (e.g. 'data engineer' or 'registered nurse'). | |
| include_details | No | When true, opens each job posting to add seniority level, employment type, job function, industries, applicant count, and full job description. Costs one extra request per job, so runs take noticeably longer. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that execution is a synchronous network call via a specific Apify Actor, that it creates a billed Actor run and dataset on the user's Apify account, that it requires the APIFY_TOKEN environment variable, and that typical latency is 15-40 seconds with a 120-second timeout. This is exactly the kind of behavioral context (side effects, auth, latency) that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for behavioral transparency and usage guidelines. It front-loads the core purpose in the first sentence, then uses labeled sections for additional context. Every sentence earns its place, and the formatting makes it easy for an agent to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is complete for a tool of this complexity. It covers purpose, execution model, side effects, authentication, latency, usage boundaries, and named alternatives. The output schema exists, so the description doesn't need to explain return values in detail. The only minor gap is that it doesn't mention pagination, but the max_results parameter and output schema cover the practical limits.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description adds some context by mentioning the return fields and the 'without logging in' constraint, but it does not add significant meaning beyond the schema's parameter descriptions. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a specific resource ('public LinkedIn job postings'), and the key constraints ('by keyword and location without logging in'). It also lists the exact return fields (role title, hiring company, location, posting date, job URL), which clearly distinguishes it from sibling tools like glassdoor_jobs_search and people-search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides 'When to use' and 'When NOT to use' sections, including named alternatives like 'glassdoor_jobs_search' for Glassdoor listings and 'google_play_reviews_search'/'youtube_video_search' for non-hiring data. This gives an agent clear routing logic without needing to inspect sibling schemas.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
nhtsa_vehicle_recall_searchNHTSA Vehicle Recall SearchARead-only
Search official US vehicle-safety recalls by year, make and model or by NHTSA campaign number. Returns defect summaries, safety consequences, remedies, affected-unit counts and urgent park warnings.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/nhtsa-vehicle-recall-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 5-20 seconds; output is capped by max_results.
Usage Guidelines:
When to use: Use for recall research, vehicle-safety checks, campaign monitoring and fleet-risk analysis.
When NOT to use: Do not use for drug, device or food recalls (use 'openfda_search'), or for general company filings.
Named alternatives: Use 'openfda_search' for FDA-regulated product recalls or 'sec_edgar_filings' for public-company filings.
| Name | Required | Description | Default |
|---|---|---|---|
| make | No | Vehicle make, for example Honda. Supply make, model and model_year together unless using campaign_number. | |
| model | No | Vehicle model, for example Civic. | |
| model_year | No | Four-digit vehicle model year. | |
| max_results | No | Maximum recall rows to return. | |
| campaign_number | No | Exact NHTSA campaign number. Overrides vehicle fields when supplied. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses execution model, side effects (billed Actor run and dataset creation), authentication requirement, latency range, and output cap. This is substantially more behavioral context than readOnlyHint and destructiveHint alone provide, and nothing contradicts the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized into sections with bullet lists and front-loads the core purpose before behavioral and usage details. Every section carries meaningful information; there is no filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema, full input schema, and rich annotations, the description still supplies additional essentials: authentication, runtime side effects, latency, result cap, and alternatives. This is complete enough for an agent to decide whether to call the tool and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already covers all 5 parameters with detailed descriptions, so the schema baseline is high. The description adds a high-level grouping of how parameters combine ('by year, make and model or by NHTSA campaign number') but does not materially improve the parameter semantics beyond what the schema already states.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Search official US vehicle-safety recalls' and names the two main query paths: make/model/year or NHTSA campaign number. It also lists concrete return contents, which makes the tool's purpose immediately distinguishable from sibling search tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Dedicated usage guidelines explicitly say when to use the tool, when not to use it, and name two alternatives: openfda_search for FDA recalls and sec_edgar_filings for company filings. This gives an agent clear routing criteria rather than leaving selection to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ofac_sanctions_searchOFAC Sanctions SearchARead-only
Search official US Treasury OFAC SDN and consolidated non-SDN data by primary name, alias, program, country and entity type. Returns sanctions programs, aliases, addresses and source identifiers.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/ofac-sanctions-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-40 seconds; results are exact source matches, not fuzzy compliance screening scores.
Usage Guidelines:
When to use: Use for research, list reconciliation, sanctions-data enrichment and exact/substring name discovery.
When NOT to use: Do not treat a name match as a legal compliance determination; do not use for corporate filings (use 'sec_edgar_filings') or entity-registration verification (use 'us_business_entity_search').
Named alternatives: Use 'sec_edgar_filings' for US public-company filings, 'gleif_lei_search' for legal-entity identifiers, or 'us_business_entity_search' for state registrations.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Case-insensitive primary name or alias to search. | |
| country | No | Optional country filter across addresses and vessel flag. | |
| program | No | Optional OFAC sanctions program code. | |
| list_scope | No | Search SDN, consolidated non-SDN, or both. | all |
| match_mode | No | Substring discovery or exact normalized matching. | contains |
| entity_type | No | Optional party type such as individual, entity, vessel or aircraft. | |
| max_results | No | Maximum sanctions records to return. | |
| include_aliases | No | Match the query against alternate names as well as primary names. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/destructive annotations, the description discloses a billed Actor run, required APIFY_TOKEN environment variable, typical 10-40 second latency, exact-match behavior vs fuzzy screening, and the side effect of creating a run/dataset on the user's Apify account. This is far richer than the annotations alone and fully informs the agent of real-world consequences.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for behavioral transparency and usage guidelines. The core purpose is front-loaded, and every sentence provides actionable information with no filler. The length is justified by the tool's complexity and side-effect profile.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers execution model, side effects, authentication, latency, result semantics, and explicit alternatives. An output schema exists, and annotations cover safety hints, so nothing critical is missing for an agent to decide when and how to invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a meaningful description, so the baseline is 3. The tool description restates some parameter concepts (name, alias, program, country, entity type) but does not add new semantic detail beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource ('official US Treasury OFAC SDN and consolidated non-SDN data'), a precise verb ('search'), and the key query dimensions (primary name, alias, program, country, entity type). It also states what is returned, which clearly separates it from sibling search tools without needing to inspect schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool (research, list reconciliation, name discovery) and when not to use it, including named alternatives like sec_edgar_filings, gleif_lei_search, and us_business_entity_search. This is exactly the guidance an agent needs to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
openfda_searchopenFDA Drug and Device SearchARead-only
Search official openFDA datasets for drug labels, drug approvals (Drugs@FDA), adverse events (FAERS), and drug, device, or food recalls. Returns normalized, flat records through one consistent interface.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/openfda-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for drug/device safety surveillance, regulatory approval history, adverse-event monitoring, or recall tracking.
When NOT to use: Do not use for clinical trial recruitment data (use 'clinical_trials_search'), environmental compliance, campaign finance, or corporate registry lookups.
Named alternatives: Use 'clinical_trials_search' for ClinicalTrials.gov study data, 'epa_facility_search' for environmental compliance, 'fec_campaign_finance_search' for political funding, or 'french_company_search' for the French corporate registry.
| Name | Required | Description | Default |
|---|---|---|---|
| search | Yes | openFDA query. A plain word works (e.g. 'semaglutide'), or target a field, e.g. 'openfda.manufacturer_name:"Pfizer"'. | |
| dataset | No | Which openFDA dataset to search. Defaults to 'drug_approval'. | drug_approval |
| max_results | No | Maximum number of records to retrieve. Defaults to 10. | |
| include_details | No | Also look up each result's product NDC to add labeler, marketing category, and DEA schedule. Costs one extra request per 20 records. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral context beyond the annotations: synchronous cloud execution via a named Apify Actor, a billed run/dataset side effect on the user's account (important nuance given readOnlyHint=true), the APIFY_TOKEN authentication requirement, and concrete latency bounds (10-30s typical, 120s cap). These details materially change call decisions and are not inferable from readOnlyHint/openWorldHint alone.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with a crisp two-sentence purpose statement, then organized into labeled sections (Behavioral Transparency, Usage Guidelines) with four and three tersely worded bullets respectively. Every sentence earns its place — the billing caveat, auth requirement, latency bounds, and alternative routing are all decision-relevant with zero filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 100% parameter schema coverage, a rich enum, an output schema covering return values, and annotations covering the safety profile, the description fills every remaining gap: execution model, side effects/billing, auth, latency, and sibling routing. Nothing an agent needs to invoke this tool correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3; the schema itself already documents the query syntax with a field-targeting example, the dataset enum, max_results bounds, and the include_details cost model. The description's dataset-domain list loosely maps to the dataset enum but adds no new parameter-level semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Search') plus a precise resource (official openFDA datasets) and enumerates the covered domains: drug labels, drug approvals, adverse events (FAERS), and drug/device/food recalls. It also distinguishes itself from siblings by naming what it is not (clinical trials, environmental, campaign finance, corporate registry), so an agent can tell it apart before opening an alternate schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
A dedicated Usage Guidelines section gives explicit when-to-use conditions (safety surveillance, approval history, adverse-event monitoring, recall tracking), explicit when-NOT-to-use exclusions, and named alternatives for each excluded domain (clinical_trials_search, epa_facility_search, fec_campaign_finance_search, french_company_search). This is textbook routing guidance; nothing is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
oregon_contractor_license_searchOregon CCB Contractor License SearchARead-only
Search official Oregon Construction Contractors Board licence records by contractor or business name. Returns licence status and address, with optional endorsement, insurance, bond, associated-person, complaint, discipline, and unpaid-claim detail.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/or-contractor-license-search'.
Side Effects: Creates a billed Actor run and dataset on your Apify account; queries the public Oregon CCB registry.
Authentication: Requires APIFY_TOKEN.
Latency & Limits: Typical runs take 10-30 seconds without details and longer with detail enrichment; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for Oregon contractor vetting, licence verification, trade lead generation, and public complaint or bond research.
When NOT to use: Do not use for California-only searches, general company registration, or a final legal or insurance determination.
Named alternatives: Use 'us_contractor_license_search' for California and Oregon together, 'california_contractor_license_search' for CSLB, or 'us_business_entity_search' for general entities.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum licence records returned and billed. | |
| search_query | Yes | Full or partial Oregon contractor or business name. | |
| include_details | No | Add endorsement, insurance, bond, associated-person, complaint, discipline, and unpaid-debt data. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The Behavioral Transparency section discloses execution model (synchronous network call via a named Apify Actor), side effects (billed Actor run and dataset creation on the user's Apify account), authentication requirements (APIFY_TOKEN), and latency limits (10-30 sec typical, 120 sec timeout). This adds significant context beyond the annotations, which only state readOnly/destructive hints, and it does not contradict them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into clear labeled sections (purpose, Behavioral Transparency, Usage Guidelines) with bullet points. Every sentence carries operational or routing value; there is no filler or redundant elaboration. It is longer than minimal but justified by the tool's billing, auth, and alternative-routing complexities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a paid, network-backed search tool with three parameters, the description covers execution, billing side effects, authentication, latency, disambiguation from siblings, and output behavior (via existing output schema). Nothing an agent needs to decide whether to call and how to invoke it is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all three parameters are already well-documented in the input schema. The description adds no new parameter-level semantics beyond the schema—its mention of optional endorsement/insurance/complaint details merely echoes the include_details schema description. Baseline 3 is appropriate because the schema carries the load.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Search'), a precise resource ('official Oregon Construction Contractors Board licence records'), and a scope ('by contractor or business name'). It explicitly differentiates from sibling tools in the Usage Guidelines by naming 'us_contractor_license_search', 'california_contractor_license_search', and 'us_business_entity_search', so an agent can disambiguate without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains a dedicated Usage Guidelines section with explicit 'When to use', 'When NOT to use', and 'Named alternatives'. It lists positive use cases (vetting, verification, lead generation), exclusions (California-only, general registrations, legal determinations), and the exact alternative tools to pick instead, leaving no ambiguity about when this tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_edgar_filingsSEC EDGAR Public Corporate Filings RetrievalARead-only
Retrieve official United States Securities and Exchange Commission (SEC EDGAR) regulatory filings including 10-K annual reports, 10-Q quarterly reports, and 8-K material events.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/sec-edgar-filings-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for public corporate financial statements, audited balance sheets, executive compensation disclosures, and regulatory material event filings.
When NOT to use: Do not use for private non-public company intelligence, real-time stock prices, or local trade vendor lists.
Named alternatives: Use 'usaspending_contracts' for federal procurement contracts, 'google_maps_search' for local commercial entities, or 'glassdoor_jobs_search' for hiring trends.
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | Public stock ticker symbol or official company name (e.g. 'AAPL', 'NVDA', or 'Tesla Inc'). | |
| form_type | No | SEC form classification: '10-K' for annual reports, '10-Q' for quarterly reports, '8-K' for material events, or 'ALL' for any filing. | 10-K |
| max_results | No | Maximum count of chronological filing records to retrieve. Defaults to 5. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that execution is a synchronous network call via an Apify Actor, that it creates a billed Actor run and dataset, that APIFY_TOKEN is required, and that latency is typically 10-30 seconds with a 120-second timeout. This adds substantial context beyond the annotations, which only indicate readOnly/openWorld/non-destructive behavior. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for behavior and usage. It front-loads the core purpose, then provides operational details and routing guidance without redundant filler. Every section earns its place for a tool with side effects and authentication requirements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers what it does, when to use it, when not to use it, named alternatives, authentication, side effects, latency, and limits. The presence of an output schema means return-value documentation is not required in the description. Nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides 100% coverage with descriptions for all three parameters, including enum meanings and defaults. The tool description adds no additional parameter-level semantics beyond restating form types, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Retrieve') and clearly identifies the resource: official SEC EDGAR regulatory filings, listing specific form types (10-K, 10-Q, 8-K). This makes the tool's function unambiguous and distinguishes it from the many entity-search siblings in the tool list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit 'When to use' section with concrete use cases and a 'When NOT to use' section with exclusions. It also names specific alternative tools ('usaspending_contracts', 'google_maps_search', 'glassdoor_jobs_search'), leaving no ambiguity about routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sec_form_4_insider_transactionsSEC Form 4 Insider TransactionsARead-only
Export structured insider buys, sales, grants, exercises and derivative transactions from official SEC Form 4 and 4/A XML by ticker or CIK. Returns reporting-owner roles, security details, share counts, prices and post-transaction ownership.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/sec-form-4-insider-transactions'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable; the Actor publisher supplies the SEC contact identity.
Latency & Limits: Typical run duration is 10-90 seconds depending on max_filings; output is capped by max_results.
Usage Guidelines:
When to use: Use for insider-trading research, ownership-change monitoring and transaction-level Form 4 analysis.
When NOT to use: Do not use for 10-K, 10-Q or 8-K filings (use 'sec_edgar_filings') or campaign-finance data (use 'fec_campaign_finance_search').
Named alternatives: Use 'sec_edgar_filings' for company filings and exhibits, or 'fec_campaign_finance_search' for US political contributions and committees.
| Name | Required | Description | Default |
|---|---|---|---|
| company | Yes | Public-company ticker or 1-10 digit SEC CIK. | |
| date_to | No | Inclusive filing end date, YYYY-MM-DD. | |
| date_from | No | Inclusive filing start date, YYYY-MM-DD. | |
| max_filings | No | Maximum ownership XML filings to inspect. | |
| max_results | No | Maximum transaction rows to return. | |
| transaction_codes | No | Exact SEC transaction codes such as P, S, A, M or G. | |
| include_amendments | No | Include amended Form 4/A filings. | |
| include_derivative | No | Include derivative securities such as options. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=true, destructiveHint=false), the description discloses the synchronous network execution via a specific Apify Actor, the side effect of creating a billed Actor run/dataset, the APIFY_TOKEN authentication requirement, and expected latency. This is rich, non-obvious behavioral context that annotations alone would not convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized into clear sections with bullet-pointed behavioral and usage guidance. Every sentence carries useful information, and the core purpose is front-loaded before the supplementary details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema, the description need not explain return values, and it still covers execution, side effects, authentication, latency, limits, and usage boundaries. This is more than sufficient for an agent to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, with each parameter already documented. The description adds no per-parameter semantic detail beyond what the schema provides, though it does mention the company input can be a ticker or CIK. At high schema coverage, this meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description begins with a specific verb ('Export') and resource ('structured insider buys, sales, grants, exercises and derivative transactions from official SEC Form 4 and 4/A XML'), immediately distinguishing this from generic EDGAR or financial-data tools. It also names explicit alternatives in the Usage Guidelines, so an agent can differentiate it from siblings like sec_edgar_filings and fec_campaign_finance_search without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit 'When to use' and 'When NOT to use' guidance, including named alternative tools ('sec_edgar_filings' for 10-K/10-Q/8-K, 'fec_campaign_finance_search' for campaign finance). This leaves no ambiguity about selection criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tech_stack_detectorWebsite Tech Stack & Ecommerce ScannerARead-only
Scan a batch of public websites and detect the CMS, ecommerce platform, payment gateway, CDN, analytics, hosting, and 15 other technology categories from 75 signatures, alongside the infrastructure headers, page metadata, and contact/social links the same page response already carries.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/tech-stack-detector'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 5-20 seconds for a small batch; timeout capped at 120 seconds. Detection is signature-based HTML/header matching, not a headless browser, so it is evidence of presence, never proof of absence, and JavaScript-rendered technology is not executed or seen.
Usage Guidelines:
When to use: Use for competitive technology research, B2B lead qualification and segmentation, ecommerce/payment-stack prospecting, or pulling the public contact and social links a company's own website exposes.
When NOT to use: Do not use for a company's legal registration or corporate-registry status (use 'us_business_entity_search' or 'gleif_lei_search'), hiring signals (use 'linkedin_jobs_search' or 'glassdoor_jobs_search'), app-store sentiment (use 'google_play_reviews_search'), or a business's physical location and reviews (use 'google_maps_search').
Named alternatives: Use 'us_business_entity_search' for state corporate registry records, 'gleif_lei_search' for global legal entity identifiers, 'linkedin_jobs_search' or 'glassdoor_jobs_search' for a company's open roles and employee sentiment, or 'google_maps_search' for a business's physical location and reviews.
| Name | Required | Description | Default |
|---|---|---|---|
| urls | Yes | Domains or URLs to analyze; one record is returned per site. A bare domain is normalized to https automatically. Example: ["ghost.org", "webflow.com"]. | |
| max_results | No | Maximum number of site records to return. Defaults to 10. | |
| include_details | No | Also fetch /robots.txt and a discovered contact or about page per site, adding the sitemap URL, crawl-rule count, and any extra emails/phones the homepage omits. Costs up to two extra requests per site. Defaults to false. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the annotations by disclosing that execution is a synchronous cloud network call, that it creates a billed Actor run and dataset, that APIFY_TOKEN is required, that latency is typically 5-20s capped at 120s, and that detection is signature-based and therefore cannot prove absence of JavaScript-rendered technology. This is exactly the kind of contextual behavioral transparency that annotations alone do not provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The core purpose is front-loaded in the first sentence, and the Behavioral Transparency and Usage Guidelines sections are well organized. It is slightly longer than strictly necessary, with some redundancy between the 'When NOT to use' list and the 'Named alternatives' section, but every major section earns its place given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with this complexity, the description covers execution model, authentication, side effects, latency caps, limitations, use cases, exclusions, and named alternatives. An output schema exists, so detailed return-value documentation is not required here; nothing essential is missing for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents urls, max_results, and include_details well, including defaults, ranges, and behavioral effects such as extra requests for include_details. The description does not add significant parameter-level meaning beyond that, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('Scan a batch of public websites and detect...') and a concrete resource with rich detail: CMS, ecommerce platform, payment gateway, CDN, analytics, hosting, plus 15 other categories from 75 signatures. It clearly differentiates this from the sibling business/job/map search tools by emphasizing website technology detection.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly lists when to use the tool for competitive tech research and B2B prospecting, and when NOT to use it, naming concrete alternatives like us_business_entity_search, gleif_lei_search, linkedin_jobs_search, glassdoor_jobs_search, google_play_reviews_search, and google_maps_search. This gives an agent strong routing guidance beyond any schema information.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ted_eu_tender_searchTED European Tender SearchARead-only
Search official Tenders Electronic Daily notices by keywords, contracting authority, country, CPV code and publication date. Returns buyers, deadlines, estimated values, classifications and direct TED documents.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/ted-eu-tender-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-45 seconds; output is capped by max_results.
Usage Guidelines:
When to use: Use for European public-procurement discovery, bid monitoring, buyer research and CPV market analysis.
When NOT to use: Do not use for US grants (use 'grants_gov_opportunity_search') or completed US federal awards (use 'usaspending_contracts').
Named alternatives: Use 'grants_gov_opportunity_search' for US funding opportunities or 'usaspending_contracts' for awarded US contracts.
| Name | Required | Description | Default |
|---|---|---|---|
| cpv_code | No | Eight-digit Common Procurement Vocabulary code. | |
| keywords | No | Words or phrase to match in TED notice titles. | |
| language | No | Three-letter TED language code. | eng |
| buyer_name | No | Text to match in contracting authority names. | |
| max_results | No | Maximum tender notices to return. | |
| buyer_country | No | ISO alpha-3 buyer country code, for example DEU or FRA. | |
| sort_direction | No | Newest or oldest publication date first. | desc |
| publication_date_to | No | Latest publication date, YYYY-MM-DD. | |
| publication_date_from | No | Earliest publication date, YYYY-MM-DD. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations, the description discloses execution model (synchronous cloud Actor), side effects (billed Actor run and dataset), authentication requirement (APIFY_TOKEN), and latency limits (10-45 seconds, max_results cap). This meaningfully augments the annotations without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with focused sections: a one-sentence summary, a behavioral transparency block, and a usage-guideline block. Every sentence provides actionable information, and key facts are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 9-parameter tool, the description covers when to use it, when not to use it, authentication, side effects, latency, limits, and output content. Combined with the full schema and output schema, nothing essential for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents every parameter in detail. The description does not clarify additional meaning beyond the schema, but because baseline 3 is appropriate when the schema fully covers parameter semantics, it neither adds nor detracts.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource — 'Search official Tenders Electronic Daily notices' — and enumerates the distinct search dimensions (keywords, contracting authority, country, CPV code, publication date. It also states what is returned, making the tool's purpose unmistakable even among 30 sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Usage Guidelines section explicitly provides explicit when-to-use scenarios and explicit exclusion cases, naming two sibling tools (grants_gov_opportunity_search and usaspending_contracts) for US grants and awarded contracts. This is the highest level of guidance an agent could receive.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
twitch_live_streamsTwitch Real-Time Live Stream Intelligence and ViewershipARead-only
Extract real-time live broadcasting streams, viewer counts, channel metadata, and game categories from Twitch.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/twitch-live-streams-scraper'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-25 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for live video broadcasting metrics, concurrent esports viewership tracking, influencer intelligence, and gaming category analysis.
When NOT to use: Do not use for recorded video-on-demand archives, YouTube channels, or employment job boards.
Named alternatives: Use 'glassdoor_jobs_search' for corporate hiring data, 'google_maps_search' for local retail directories, or 'airbnb_listings_search' for travel pricing.
| Name | Required | Description | Default |
|---|---|---|---|
| language | No | ISO 639-1 language code filter for the live broadcast (e.g. 'en' for English, 'es' for Spanish, 'fr' for French). Defaults to 'en'. | en |
| game_name | No | Twitch category slug, such as minecraft or just-chatting. Defaults to minecraft. | minecraft |
| max_results | No | Maximum number of live stream channels to return. Integer between 1 and 100. Defaults to 10. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even though annotations include readOnlyHint and destructiveHint, the description adds substantial behavioral context: synchronous cloud execution via a named Apify Actor, billing side effects and dataset creation, APIFY_TOKEN authentication requirement, and latency/timeout expectations. This goes well beyond what annotations provide and directly informs invocation decisions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description uses clear headings and bullet-style scannable sections. Every sentence contributes meaningful operational or selection information, and the core purpose is front-loaded before behavioral and usage details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a network-backed tool with billing, authentication, and latency characteristics, the description covers all essential operational context. The output schema exists, so return-value details are not required in the description, and the usage and side-effect sections fully equip an agent to decide and execute correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, with each parameter already documenting its purpose, default, and constraints. The tool description itself adds no additional parameter-level detail, but none is needed given the schema's completeness.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource ('Extract real-time live broadcasting streams, viewer counts, channel metadata, and game categories from Twitch'), and differentiates itself from unrelated siblings by explicitly naming alternatives. The title also reinforces the tool's live-streaming focus, leaving no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains a dedicated 'Usage Guidelines' section with both 'When to use' and 'When NOT to use' conditions, and provides named alternatives (glassdoor_jobs_search, google_maps_search, airbnb_listings_search). This gives an agent clear routing criteria and explicitly excludes VOD archives, YouTube channels, and job boards.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
usaspending_contractsUSAspending Federal Procurement and Defense Awards SearchARead-only
Search United States federal procurement contracts, defense department awards, and prime agency obligations from the official USAspending database.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/usaspending-federal-awards'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-35 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for government contracting intelligence, prime federal vendor tracking, defense obligation amounts, and public procurement research.
When NOT to use: Do not use for commercial retail leads, corporate equity SEC filings, or consumer vacation pricing.
Named alternatives: Use 'sec_edgar_filings' for corporate 10-K annual reports, 'google_maps_search' for private commercial trade vendors, or 'glassdoor_jobs_search' for company hiring data.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of federal contract award records to retrieve. Defaults to 10. | |
| recipient_name | Yes | Legal entity name of the prime contractor, corporate vendor, or recipient institution (e.g. 'Lockheed Martin', 'Palantir Technologies', or 'Boeing'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, but the description adds valuable context: synchronous execution via Apify Actor, billing side effects (billed run and dataset), authentication requirement (APIFY_TOKEN), and latency limits. This goes beyond annotations and helps agents anticipate costs and runtime.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with distinct sections for purpose, behavior, and usage. Every bullet adds information and is directly relevant. No filler or redundancy exists; the length is justified by the tool's operational complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present, the description need not detail return values. It covers execution environment, side effects, authentication, latency, and usage boundaries. For a network-backed tool with two parameters, nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters with clear descriptions (recipient_name with examples, max_results with bounds and default). The description adds no additional semantic detail about the parameters themselves, so it meets the baseline but does not exceed it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search') and a clear resource ('federal procurement contracts, defense department awards, and prime agency obligations') from the official USAspending database. It distinguishes itself from siblings by explicitly naming alternatives like sec_edgar_filings and google_maps_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides explicit when-to-use guidance (government contracting intelligence, prime vendor tracking) and when-not-to-use scenarios (commercial retail, SEC filings, vacation pricing). It also names specific alternative tools for each excluded use case, leaving no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
us_business_entity_searchUS Multi-State Business Entity SearchARead-only
Search public Secretary of State business registries across Florida, Alabama, and Wisconsin in one call, returning a normalized, source-tagged record per state match.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/us-business-entity-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-45 seconds without detail pages, longer with include_details enabled and with more states selected; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use when a company name lookup should span multiple states at once, or when the entity's state of registration is unknown among Florida, Alabama, or Wisconsin.
When NOT to use: Do not use for a single known state where a dedicated tool exists and is faster (e.g. 'alabama_business_search' or 'florida_new_filings_search'), for states outside this coverage, for officer/person-name lookups (use 'florida_officer_search'), or for contractor licences.
Named alternatives: Use 'alabama_business_search' or 'florida_new_filings_search' for a single-state lookup, 'florida_officer_search' for a person-to-company search, or 'us_contractor_license_search'/'california_contractor_license_search' for licensed contractors rather than general business entities.
| Name | Required | Description | Default |
|---|---|---|---|
| states | No | State registries to search. Defaults to all four supported states; narrow this to speed up a run when the state is already known. | |
| max_results | No | Maximum number of normalized entity records to return and bill across all selected states. Defaults to 10. | |
| search_query | Yes | Full or partial business name to search across the selected state registries (e.g. 'SMITH' or 'Smith Services LLC'). | |
| include_details | No | When true, opens each result's detail page to add formation date, registered agent, officers, and both address blocks. Adds one request per record and per state; leave off for a fast lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only/non-destructive, and the description adds execution model (Apify Actor), billing side effects, APIFY_TOKEN requirement, and latency/timeout bounds – all beyond what annotations provide. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well front-loaded with purpose first, then organized sections. However, the 'When NOT to use' and 'Named alternatives' bullets repeat the same alternatives, which is slightly redundant; still, every other sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the output schema exists and annotations cover safety, the description covers execution, cost, auth, limits, and alternative routing – an agent has everything needed to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds operational color (e.g., include_details slows the run) but these details are also present in the schema's parameter descriptions. It does not materially expand per-parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb ('Search'), identifies the resource ('public Secretary of State business registries'), names the exact states covered, and explains the return shape ('normalized, source-tagged record per state match'). It clearly differentiates from siblings by naming alternatives later.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit 'When to use' and 'When NOT to use' sections with named alternatives include single-state tools, officer/person searches, and contractor-license searches, leaving no ambiguity about routing. This exceeds typical guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
us_census_geocoderUS Census Address GeocoderARead-only
Geocode US street addresses into full Census Bureau geography, not just a pin: state and county FIPS, census tract and block GEOIDs, congressional district, incorporated place, school district and metro area (CBSA). Built on the official, public-domain Census Bureau geocoder.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/us-census-geocoder'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Requests run five addresses at a time against the Census Bureau's geocoder with a 60-second timeout each; typical run duration is 10-60 seconds depending on list size, timeout capped at 120 seconds. Returns exactly one row per address, matched or not - output volume is set by the length of 'addresses', not by 'max_results'.
Usage Guidelines:
When to use: Use to append census tract, block, county FIPS, congressional district or school district GEOIDs to US street addresses for demographic joins, site selection, fair-lending/CRA reporting, or district-based targeting.
When NOT to use: Do not use for interactive place search, driving directions or points of interest; do not use for business entity or contractor license lookups (use 'us_business_entity_search' or 'us_contractor_license_search'). Addresses outside the United States are not supported.
Named alternatives: Use 'us_business_entity_search' or 'us_contractor_license_search' for entity and licensing lookups instead of an address. No other tool in this toolset performs US address geocoding.
| Name | Required | Description | Default |
|---|---|---|---|
| vintage | No | Which geography vintage to report tract, block and district boundaries from. Defaults to 'Current_Current'. Use 'Census2020_Current' when you need boundaries as drawn at the 2020 Census, e.g. before a later congressional redistricting. | Current_Current |
| addresses | Yes | One or more one-line US addresses to geocode, e.g. ['1600 Amphitheatre Pkwy, Mountain View, CA 94043']. The Census parser is tolerant of punctuation but wants at least a street, a city and a state. Each address returns exactly one result row, matched or not. | |
| benchmark | No | Which Census address file to match against. Defaults to 'Public_AR_Current', the live, continuously updated file. Use 'Public_AR_Census2020' to reconcile against the address file as it stood at the 2020 Census. | Public_AR_Current |
| max_results | No | Ceiling on the number of address rows you are willing to pay for. Defaults to 10. This Actor emits exactly one row per address (matched or not) and does not truncate your address list to this number, so keep 'addresses' at or below max_results to control both output volume and cost. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description includes a dedicated Behavioral Transparency section detailing execution (network call, Apify Actor), side effects (billed run, dataset creation), authentication (APIFY_TOKEN), latency/limits (5 addresses per batch, 60s timeout, 10-60s typical), and output behavior (one row per address). This significantly enriches the annotations (readOnlyHint, destructiveHint) by explaining billing, timeout, and output volume without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (purpose, behavioral transparency, usage guidelines). Every sentence serves a purpose: it starts with the core value proposition, then addresses operational details and routing. It is long but not verbose, with no filler or redundant statements.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (network call, billing, enums, latency), the description covers all essential aspects: what it does, when to use it, side effects, authentication, limits, and output behavior. The presence of an output schema means return format details are handled structurally, so the description is complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters with clear descriptions, including the enums and their meanings. The description reiterates key points about max_results and output volume, but adds no new information beyond what the schema provides. Per the rubric, a baseline of 3 is appropriate when the schema fully covers parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('geocode'), resource ('US street addresses'), and the exact output ('full Census Bureau geography... FIPS, GEOIDs, etc.'). It explicitly distinguishes from 'just a pin' and lists the specific geography attributes, making the tool's purpose unmistakable and clearly separate from any sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description contains explicit 'When to use' and 'When NOT to use' sections, with named alternatives ('us_business_entity_search' and 'us_contractor_license_search'). It also clarifies exclusions like interactive place search and non-US addresses, leaving no ambiguity about when to select this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
us_contractor_license_searchUS Multi-State Contractor License SearchARead-only
Search California CSLB and Oregon CCB contractor-license records from one call by business, qualifier, or person name, returning a normalized, source-tagged record per state match.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/us-contractor-license-search'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 15-45 seconds without detail pages, longer with include_details enabled and with more states selected; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for contractor vetting or lead building across California and Oregon in one call, or when it is not yet known which of the two states holds the licence.
When NOT to use: Do not use for a single known state where a dedicated tool is faster (e.g. 'california_contractor_license_search'), for states outside California/Oregon, or for general business-entity (non-licence) registry lookups.
Named alternatives: Use 'california_contractor_license_search' for a California-only lookup, or 'alabama_business_search'/'florida_new_filings_search'/'us_business_entity_search' for general business-entity registries rather than contractor licences.
| Name | Required | Description | Default |
|---|---|---|---|
| states | No | State licence sources to search. Defaults to both California and Oregon; narrow this to speed up a run when the state is already known. | |
| max_results | No | Maximum number of licence records to return and bill across all selected states. Defaults to 10. | |
| search_query | Yes | Business, qualifier, or person name to look up in the selected contractor-license registries (e.g. 'SMITH' or 'Smith Construction'). | |
| include_details | No | When true, opens each licence's detail page to add bonding, insurance, workers' compensation, classifications, disciplinary history, and issue/expiry dates. Adds one request per record; leave off for a fast lookup. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal a safe read, and the description goes further: synchronous cloud execution via Apify Actor, billed dataset creation, APIFY_TOKEN requirement, and concrete latency/timeout limits. These behavioral details are valuable and do not contradict the readOnly/openWorld annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is organized into short labeled sections with no filler; each sentence carries load-bearing information (execution model, side effects, latency, routing guidance). It is longer than minimal, but every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given an output schema exists and all parameters are documented, the description covers execution, side effects, authentication, latency, limits, and alternatives. An agent has everything needed to select and invoke this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents all four parameters. The description adds useful operational meaning, such as how states and include_details affect runtime and cost. Only minor extra parameter-level guidance is added beyond the already-rich schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The opening sentence names a specific action ('Search California CSLB and Oregon CCB contractor-license records') with a clear scope ('from one call... returning a normalized, source-tagged record per state match'). It also identifies the resource and distinguishes the multi-state tool from state-specific siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The Usage Guidelines section gives explicit when-to-use conditions, explicit when-NOT-to-use conditions, and named alternatives such as 'california_contractor_license_search'. This leaves no ambiguity about routing to a single-state or general business registry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
us_nonprofit_searchUS Nonprofit and IRS Form 990 SearchARead-only
Search US nonprofit and charity records from ProPublica Nonprofit Explorer. Returns organization identity, EIN, location, classification, and reported revenue, with optional IRS Business Master File and Form 990 financial detail.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/us-nonprofit-search'.
Side Effects: Creates a billed Actor run and dataset on your Apify account; queries public nonprofit and IRS-derived records.
Authentication: Requires APIFY_TOKEN.
Latency & Limits: Typical runs take 10-30 seconds without details and longer with Form 990 enrichment; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for nonprofit discovery, EIN lookup, charity research, grant-market analysis, and public Form 990 financial screening.
When NOT to use: Do not use as a tax-exemption determination, charity recommendation, or substitute for the latest IRS record.
Named alternatives: Use 'grants_gov_opportunity_search' for funding opportunities, 'us_business_entity_search' for state-registered businesses, or 'company_registry_search' for UK, French, and LEI entities.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum nonprofit records returned and billed. | |
| search_query | Yes | Organization name or nonprofit keyword. | |
| include_details | No | Add IRS Business Master File fields and latest machine-readable Form 990 financials. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Goes well beyond the annotations by disclosing execution style, billing side effects, authentication requirements, and latency limits. The description's side-effect note does not contradict readOnlyHint=true because it describes account-level billing, not external data mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections for behavior and usage, and every sentence adds context an agent needs. It is slightly long but justified by the tool's complexity and side effects.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a network-backed, billed search tool, the description covers execution model, auth, side effects, latency, usage boundaries, alternatives, and output scope. An output schema exists, so return-value details do not need to be repeated here. Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the structured schema already documents all three parameters. The description adds minimal new parameter meaning, though the 'optional IRS Business Master File and Form 990 financial detail' phrasing helps map include_details to real-world data. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource: 'Search US nonprofit and charity records from ProPublica Nonprofit Explorer.' It further describes the output fields, making the tool's purpose clear and distinct from siblings like us_business_entity_search and company_registry_search.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance, clear when-not-to-use limitations, and names three alternative sibling tools with their respective scopes. This gives an agent a complete decision framework for selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
wisconsin_business_searchWisconsin Business Entity Registry SearchARead-only
Search the official Wisconsin DFI corporate registry by company name. Returns entity ID, legal name, entity type, registration date, and status, with optional agent, office, annual-report, former-name, and foreign-organization detail.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/wi-business-entity-search'.
Side Effects: Creates a billed Actor run and dataset on your Apify account; queries the public Wisconsin DFI registry.
Authentication: Requires APIFY_TOKEN.
Latency & Limits: Typical runs take 10-30 seconds without details and longer with detail pages; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for Wisconsin entity verification, status checks, registered-agent research, former-name discovery, and business lead enrichment.
When NOT to use: Do not use for other states, contractor licences, or a legal good-standing determination.
Named alternatives: Use 'us_business_entity_search' for a multi-state lookup, 'us_contractor_license_search' for licensed contractors.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum records returned and billed. | |
| search_query | Yes | Full or partial Wisconsin business name. | |
| include_details | No | Add registered agent, office addresses, annual-report year, former name, and foreign-entity details. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and destructiveHint, but the description goes well beyond by disclosing synchronous network execution via an Apify Actor, billing side-effects on the user's account, APIFY_TOKEN requirement, typical latency, and a 120-second timeout. This adds substantive behavioral context not present in the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose is front-loaded in the first sentence, and the remaining content is organized into clearly labeled sections (Behavioral Transparency, Usage Guidelines). Every sentence serves a purpose, and the length is justified by the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's network/billing complexity and the existing output schema, the description is complete: it covers purpose, usage, side-effects, authentication, latency, limits, and alternatives. An agent has everything needed to decide when to use it and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter already has a clear description. The description's mention of 'optional agent, office, annual-report, former-name, and foreign-organization detail' largely mirrors the include_details schema text, so it adds marginal new value. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), resource ('official Wisconsin DFI corporate registry'), and scope ('by company name'), and enumerates the returned fields. The title and opening sentence clearly differentiate it from multi-state and contractor tools, and the Usage Guidelines section explicitly names alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios (verification, status checks, registered-agent research, former-name discovery, lead enrichment), when-not-to-use (other states, contractor licenses, legal good-standing), and named alternatives ('us_business_entity_search', 'us_contractor_license_search'). This is the strongest possible usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
youtube_video_searchYouTube Video SearchARead-only
Search public YouTube videos by keyword, returning title, channel, canonical video URL, view count, duration, and publish date - no YouTube Data API quota required.
Behavioral Transparency:
Execution: Network call executed synchronously in the cloud via Apify Actor 'captainhandsome/youtube-search-scraper'.
Side Effects: Reads public sources and creates a billed Actor run and dataset on your Apify account.
Authentication: Requires APIFY_TOKEN environment variable.
Latency & Limits: Typical run duration is 10-30 seconds; timeout capped at 120 seconds.
Usage Guidelines:
When to use: Use for content research, competitor video monitoring, trend discovery, or building a list of videos on a topic.
When NOT to use: Do not use for retrieving a video's transcript/captions, channel analytics dashboards, or non-YouTube platforms.
Named alternatives: Use 'google_play_reviews_search' for app-store sentiment or 'linkedin_jobs_search' for job-market data; neither covers video content.
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of unique video records to return. Defaults to 25. | |
| search_query | Yes | Keyword or phrase to search for on YouTube (e.g. 'small business marketing'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| error | No | |
| status | Yes | |
| results | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond annotations by disclosing the execution model (synchronous network call via Apify Actor), side effects (billed Actor run and dataset creation), authentication requirement (APIFY_TOKEN), and latency limit (120s timeout). This fully informs the agent of the operational consequences, and it does not contradict the readOnly/openWorld/destructive annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-organized with clear sections (Behavioral Transparency, Usage Guidelines) and front-loads the core purpose and outputs. Every sentence adds meaningful information, and the length is proportionate to the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers purpose, output fields, usage boundaries, alternatives, auth, side effects, latency, and execution model. With an output schema present, nothing essential is missing for an agent to decide to use or correctly invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the schema already documents both parameters with descriptions, defaults, constraints, and examples. The description adds minimal param-level meaning beyond the schema, only restating that it searches 'by keyword', so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Search'), a clear resource ('public YouTube videos'), and enumerates the exact returned fields (title, channel, canonical URL, view count, duration, publish date). It also distinguishes itself by noting 'no YouTube Data API quota required', which clearly differentiates it from typical YouTube API tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly provides when-to-use scenarios (content research, competitor monitoring, trend discovery), clear when-NOT-to-use exclusions (transcripts, channel analytics, non-YouTube platforms), and names specific alternative tools (google_play_reviews_search, linkedin_jobs_search). This is complete routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.4.0- Added
app_store_reviews_search
5 tool updates
v1.3.0- Added
federal_register_search - Added
oregon_contractor_license_search - Changed
us_business_entity_search2 fields changed- changed
Input schema / properties / states / defaultPrevious value: -[ - "florida", - "alabama", - "iowa", - "wisconsin" -]New value: +[ + "florida", + "alabama", + "wisconsin" +] - changed
Input schema / properties / states / items / enumPrevious value: -[ - "florida", - "alabama", - "iowa", - "wisconsin" -]New value: +[ + "florida", + "alabama", + "wisconsin" +]
- Added
us_nonprofit_search - Added
wisconsin_business_search
5 tool updates
v1.2.0- Added
company_registry_search - Added
courtlistener_case_search - Added
cve_vulnerability_intelligence - Added
ofac_sanctions_search - Added
sec_form_4_insider_transactions
33 tool updates
v1.1.0- Changed
airbnb_listings_search32 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of short-term vacation rental property listings extracted from Airbnb." - added
Output schema / properties / results / items / properties / areaAdded value: +{ + "description": "City, borough or neighbourhood named alongside the property type. A home card names its city or town; a hotel-brand card names its neighbourhood.", + "title": "Area", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / badgeAdded value: +{ + "description": "Promotional badge shown on the card image, when there is one: Guest favorite, Top guest favorite, Superhost or Featured hotel.", + "title": "Card badge", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / checkin_dateAdded value: +{ + "description": "Check-in date the card's price is quoted for, in YYYY-MM-DD. Airbnb picks a different window per card when the search itself carries no dates, so prices are only comparable once you read this column.", + "title": "Check-in date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / checkout_dateAdded value: +{ + "description": "Check-out date the card's price is quoted for, in YYYY-MM-DD.", + "title": "Check-out date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / descriptionAdded value: +{ + "description": "Displayed summary such as room type, beds, or date context.", + "title": "Listing-card description", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / image_urlAdded value: +{ + "description": "Direct URL of the listing's first card photo.", + "title": "Cover image URL", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / listingNameRemoved value: -{ - "description": "Headline property title or host description.", - "type": "string" -} - removed
Output schema / properties / results / items / properties / listingUrlRemoved value: -{ - "description": "Canonical HTTPS link to the Airbnb listing reservation page.", - "type": "string" -} - added
Output schema / properties / results / items / properties / listing_idAdded value: +{ + "description": "Numeric Airbnb room ID taken from the listing URL. Stable per listing, so it is the key to join this dataset against later runs or your own records.", + "title": "Listing ID", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / listing_nameAdded value: +{ + "description": "Host-written name of the listing, on its own without the beds, baths and date text that share the card's subtitle block.", + "title": "Listing name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / nightsAdded value: +{ + "description": "Number of nights the displayed price covers, from the card's own price qualifier.", + "title": "Nights covered by the price", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / photos_countAdded value: +{ + "description": "Number of photos in the listing's card carousel.", + "title": "Photo count", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / priceAdded value: +{ + "description": "Price text exactly as displayed for the selected search context.", + "title": "Displayed price", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / pricePerNightRemoved value: -{ - "description": "Nightly accommodation tariff rate in local currency.", - "type": "string" -} - added
Output schema / properties / results / items / properties / price_totalAdded value: +{ + "description": "The payable price figure on the card, with its currency symbol as displayed. On discounted cards this is the reduced price, not the struck-through original.", + "title": "Price figure", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / property_typeAdded value: +{ + "description": "Accommodation type as Airbnb prints it: Apartment, Home, Room, Loft, Villa, Guesthouse, Cabin, Treehouse, Tiny home, Farm stay or Hotel. Read from the card title for homes and from the card subtitle for hotel-brand cards.", + "title": "Property type", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / properties / rating / descriptionPrevious value: -"Aggregate guest cleanliness and satisfaction score on a 1.0 to 5.0 scale."New value: +"Average guest rating out of 5. Empty for listings with no reviews yet, which show 'New' on the card instead." - added
Output schema / properties / results / items / properties / rating / titleAdded value: +"Average rating" - changed
Output schema / properties / results / items / properties / rating / typePrevious value: -"number"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / properties / reviewCountRemoved value: -{ - "description": "Total number of verified guest reviews posted for the property.", - "type": "integer" -} - added
Output schema / properties / results / items / properties / reviews_countAdded value: +{ + "description": "Number of guest reviews behind the average rating. Empty for listings with no reviews yet.", + "title": "Review count", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / roomTypeRemoved value: -{ - "description": "Accommodation category (e.g. Entire home, Private room, Hotel room).", - "type": "string" -} - added
Output schema / properties / results / items / properties / room_detailsAdded value: +{ + "description": "Capacity facts printed on the card, joined with a middle dot. Which of the three Airbnb prints varies by listing and by page render, so a listing may show only bedrooms and beds.", + "title": "Bedrooms, beds and baths", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / titleAdded value: +{ + "description": "Public title displayed on the Airbnb listing card.", + "title": "Listing title", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / urlAdded value: +{ + "description": "Canonical public Airbnb room URL.", + "title": "Listing URL", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "listingName", - "pricePerNight" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
alabama_business_search18 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of Alabama business-entity records matching the search query." - added
Output schema / properties / results / items / properties / entity_id / titleAdded value: +"Entity ID" - added
Output schema / properties / results / items / properties / entity_name / titleAdded value: +"Legal entity name" - added
Output schema / properties / results / items / properties / entity_type / titleAdded value: +"Entity type" - changed
Output schema / properties / results / items / properties / formation_date / descriptionPrevious value: -"Date the entity was formed, from the detail record (requires include_details)."New value: +"Date the entity was formed, from the state's detail record." - added
Output schema / properties / results / items / properties / formation_date / titleAdded value: +"Formation date" - added
Output schema / properties / results / items / properties / location / titleAdded value: +"Location" - changed
Output schema / properties / results / items / properties / principal_address / descriptionPrevious value: -"Principal place of business, where the state records one (requires include_details)."New value: +"Principal place of business, where the state records one." - added
Output schema / properties / results / items / properties / principal_address / titleAdded value: +"Principal address" - changed
Output schema / properties / results / items / properties / registered_agent / descriptionPrevious value: -"Name of the entity's registered agent (requires include_details)."New value: +"Name of the entity's registered agent." - added
Output schema / properties / results / items / properties / registered_agent / titleAdded value: +"Registered agent" - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Current registry status when present (e.g. Exists, Dissolved, Revoked)."New value: +"Current registry status when present." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Entity status" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
california_contractor_license_search19 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of California contractor-license records matching the search query." - changed
Output schema / properties / results / items / properties / business_entity / descriptionPrevious value: -"Legal form CSLB holds for the licensee, from the licence detail page (requires include_details)."New value: +"Legal form CSLB holds for the licensee, from the licence detail page." - added
Output schema / properties / results / items / properties / business_entity / titleAdded value: +"Business entity type" - added
Output schema / properties / results / items / properties / city / titleAdded value: +"City" - added
Output schema / properties / results / items / properties / contractor_name / titleAdded value: +"Contractor name" - changed
Output schema / properties / results / items / properties / expire_date / descriptionPrevious value: -"Date the licence expires (requires include_details)."New value: +"Date the licence expires." - added
Output schema / properties / results / items / properties / expire_date / titleAdded value: +"Expiration date" - changed
Output schema / properties / results / items / properties / issue_date / descriptionPrevious value: -"Date CSLB issued the licence (requires include_details)."New value: +"Date CSLB issued the licence." - added
Output schema / properties / results / items / properties / issue_date / titleAdded value: +"Issue date" - added
Output schema / properties / results / items / properties / license_number / titleAdded value: +"License number" - changed
Output schema / properties / results / items / properties / name_type / descriptionPrevious value: -"CSLB classification for the displayed name when present (e.g. print, previous)."New value: +"CSLB classification for the displayed name when present." - added
Output schema / properties / results / items / properties / name_type / titleAdded value: +"Name type" - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Current license status displayed by CSLB (e.g. Active, Expired)."New value: +"Current license status displayed by CSLB." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"License status" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
clinical_trials_search29 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of ClinicalTrials.gov study records matching the search." - changed
Output schema / properties / results / items / properties / conditions / descriptionPrevious value: -"Comma-separated medical conditions the study addresses."New value: +"Diseases or conditions studied, as written by the sponsor, comma separated." - added
Output schema / properties / results / items / properties / conditions / titleAdded value: +"Conditions" - changed
Output schema / properties / results / items / properties / conditions / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / enrollment / descriptionPrevious value: -"Actual or estimated participant enrollment count."New value: +"Number of participants enrolled or targeted." - added
Output schema / properties / results / items / properties / enrollment / titleAdded value: +"Enrollment" - changed
Output schema / properties / results / items / properties / enrollment / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / nct_id / descriptionPrevious value: -"Unique ClinicalTrials.gov study identifier."New value: +"Unique ClinicalTrials.gov study identifier, the primary key for this record." - added
Output schema / properties / results / items / properties / nct_id / titleAdded value: +"NCT ID" - changed
Output schema / properties / results / items / properties / nct_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / phase / descriptionPrevious value: -"Trial phase, e.g. PHASE1, PHASE2, PHASE3."New value: +"Trial phase or phases, for example PHASE2 or PHASE2, PHASE3. NA means a trial without FDA-defined phases." - added
Output schema / properties / results / items / properties / phase / titleAdded value: +"Phase" - changed
Output schema / properties / results / items / properties / phase / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / sponsor / descriptionPrevious value: -"Lead sponsor organization name."New value: +"Organization responsible for the overall conduct of the study." - added
Output schema / properties / results / items / properties / sponsor / titleAdded value: +"Lead Sponsor" - changed
Output schema / properties / results / items / properties / sponsor / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Current overall recruitment status, e.g. RECRUITING or COMPLETED."New value: +"Current recruitment status of the study, for example RECRUITING or COMPLETED." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Overall Status" - changed
Output schema / properties / results / items / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Title" - changed
Output schema / properties / results / items / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / url / titleAdded value: +"Source record URL" - changed
Output schema / properties / results / items / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "nct_id", - "title" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
cms_healthcare_provider_search38 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / provider_types / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of normalized Medicare-certified provider records matching the search." - changed
Output schema / properties / results / items / properties / address / descriptionPrevious value: -"Public street address reported by CMS."New value: +"Public street address reported by the source." - added
Output schema / properties / results / items / properties / address / titleAdded value: +"Street address" - changed
Output schema / properties / results / items / properties / beds / descriptionPrevious value: -"Number of certified beds. Nursing homes and long-term care hospitals only."New value: +"Structured beds value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / beds / titleAdded value: +"Beds" - changed
Output schema / properties / results / items / properties / ccn / descriptionPrevious value: -"CMS Certification Number, the stable identifier for the provider (hospitals use their facility ID here)."New value: +"Structured ccn value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / ccn / titleAdded value: +"Ccn" - changed
Output schema / properties / results / items / properties / certification_date / descriptionPrevious value: -"Date CMS certified the provider, in YYYY-MM-DD form where available."New value: +"Structured certification date value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / certification_date / titleAdded value: +"Certification Date" - changed
Output schema / properties / results / items / properties / chain / descriptionPrevious value: -"Chain or corporate ownership group name, when CMS reports one. Nursing homes and dialysis facilities only."New value: +"Structured chain value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / chain / titleAdded value: +"Chain" - added
Output schema / properties / results / items / properties / city / titleAdded value: +"City" - changed
Output schema / properties / results / items / properties / county / descriptionPrevious value: -"County reported for the record."New value: +"Structured county value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / county / titleAdded value: +"County" - changed
Output schema / properties / results / items / properties / emergency_services / descriptionPrevious value: -"Whether the hospital reports emergency services ('Yes'/'No'). Hospitals only."New value: +"Structured emergency services value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / emergency_services / titleAdded value: +"Emergency Services" - changed
Output schema / properties / results / items / properties / name / descriptionPrevious value: -"Facility or provider name as published by CMS."New value: +"Organization, company, facility or record name as published by the source." - added
Output schema / properties / results / items / properties / name / titleAdded value: +"Name" - changed
Output schema / properties / results / items / properties / ownership / descriptionPrevious value: -"Ownership or profit status as classified by CMS for this directory."New value: +"Structured ownership value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / ownership / titleAdded value: +"Ownership" - changed
Output schema / properties / results / items / properties / phone / descriptionPrevious value: -"Public provider telephone number in CMS display format."New value: +"Public provider telephone number in source display format." - added
Output schema / properties / results / items / properties / phone / titleAdded value: +"Telephone number" - changed
Output schema / properties / results / items / properties / provider_type / descriptionPrevious value: -"Which CMS directory this row came from (hospital, nursing_home, home_health, hospice, dialysis, long_term_care_hospital, or inpatient_rehab)."New value: +"Structured provider type value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / provider_type / titleAdded value: +"Provider Type" - changed
Output schema / properties / results / items / properties / star_rating / descriptionPrevious value: -"CMS overall one-to-five star rating for the provider, when the directory publishes one."New value: +"Structured star rating value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / star_rating / titleAdded value: +"Star Rating" - changed
Output schema / properties / results / items / properties / state / descriptionPrevious value: -"Two-letter US state or territory abbreviation."New value: +"US state or territory abbreviation." - added
Output schema / properties / results / items / properties / state / titleAdded value: +"State" - changed
Output schema / properties / results / items / properties / subtype / descriptionPrevious value: -"Directory-specific subtype, e.g. hospital type for hospitals or provider type for nursing homes."New value: +"Structured subtype value returned by official CMS Provider Data Catalog APIs." - added
Output schema / properties / results / items / properties / subtype / titleAdded value: +"Subtype" - added
Output schema / properties / results / items / properties / zip / titleAdded value: +"Postal code" - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "ccn", - "name" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Removed
cve_vulnerability_intelligence - Changed
epa_facility_search28 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of EPA-regulated facility records with compliance detail." - added
Output schema / properties / results / items / properties / city / titleAdded value: +"City" - changed
Output schema / properties / results / items / properties / city / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / compliance_status / descriptionPrevious value: -"Overall current compliance status, e.g. 'Violation Identified'."New value: +"Overall current compliance status across all programs." - added
Output schema / properties / results / items / properties / compliance_status / titleAdded value: +"Compliance status" - changed
Output schema / properties / results / items / properties / compliance_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / naics_codes / descriptionPrevious value: -"Space-separated NAICS industry codes for the facility."New value: +"North American Industry Classification System codes reported for the facility." - added
Output schema / properties / results / items / properties / naics_codes / titleAdded value: +"NAICS codes" - changed
Output schema / properties / results / items / properties / naics_codes / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / name / titleAdded value: +"Facility name" - changed
Output schema / properties / results / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / registry_id / descriptionPrevious value: -"EPA Facility Registry Service ID, the stable key for this facility."New value: +"EPA Facility Registry Service ID. The stable key for this facility across every EPA system." - added
Output schema / properties / results / items / properties / registry_id / titleAdded value: +"Registry ID" - changed
Output schema / properties / results / items / properties / registry_id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / state / titleAdded value: +"State" - changed
Output schema / properties / results / items / properties / state / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / total_penalties / descriptionPrevious value: -"Total dollar amount of penalties assessed against the facility."New value: +"Total penalties assessed across all programs in the last five years, in US dollars." - added
Output schema / properties / results / items / properties / total_penalties / titleAdded value: +"Total penalties (USD)" - changed
Output schema / properties / results / items / properties / total_penalties / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Direct link to the EPA ECHO detailed facility report."New value: +"Link to the full EPA detailed facility report for this facility." - added
Output schema / properties / results / items / properties / url / titleAdded value: +"Report URL" - changed
Output schema / properties / results / items / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "registry_id", - "name" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
europe_pmc_paper_search61 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of Europe PMC records matching the search." - added
Output schema / properties / results / items / properties / abstract / titleAdded value: +"Abstract" - changed
Output schema / properties / results / items / properties / abstract / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / authors / descriptionPrevious value: -"Full author byline as one comma-separated string."New value: +"Structured authors value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / authors / titleAdded value: +"Authors" - changed
Output schema / properties / results / items / properties / authors / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / cited_by_count / descriptionPrevious value: -"Number of citing works recorded by Europe PMC."New value: +"Structured cited by count value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / cited_by_count / titleAdded value: +"Cited By Count" - changed
Output schema / properties / results / items / properties / cited_by_count / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - added
Output schema / properties / results / items / properties / doi / titleAdded value: +"DOI" - changed
Output schema / properties / results / items / properties / doi / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / first_author / descriptionPrevious value: -"First author in abbreviated form, e.g. 'Kara G'."New value: +"Structured first author value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / first_author / titleAdded value: +"First Author" - changed
Output schema / properties / results / items / properties / first_author / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / full_text_availability / descriptionPrevious value: -"Best access available across providers: 'Open access', 'Free', or 'Subscription required'."New value: +"Best access available across all providers: Open access, Free, or Subscription required." - added
Output schema / properties / results / items / properties / full_text_availability / titleAdded value: +"Full text availability" - changed
Output schema / properties / results / items / properties / full_text_availability / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / funders / descriptionPrevious value: -"Agencies that funded the work, comma separated."New value: +"Agencies that funded the work, comma separated. The strongest signal in the record for who is paying for a research area." - added
Output schema / properties / results / items / properties / funders / titleAdded value: +"Funding agencies" - changed
Output schema / properties / results / items / properties / funders / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / id / titleAdded value: +"Id" - changed
Output schema / properties / results / items / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / is_open_access / descriptionPrevious value: -"True when Europe PMC marks the record as open access."New value: +"Structured is open access value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / is_open_access / titleAdded value: +"Is Open Access" - changed
Output schema / properties / results / items / properties / is_open_access / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / items / properties / journal / descriptionPrevious value: -"Journal title the paper was published in."New value: +"Structured journal value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / journal / titleAdded value: +"Journal" - changed
Output schema / properties / results / items / properties / journal / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / keywords / descriptionPrevious value: -"Author-supplied keywords, comma separated."New value: +"Structured keywords value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / keywords / titleAdded value: +"Keywords" - changed
Output schema / properties / results / items / properties / keywords / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / mesh_terms / descriptionPrevious value: -"Medical Subject Headings assigned to the paper, comma separated."New value: +"Medical Subject Headings assigned to the paper, comma separated and capped at 30 terms." - added
Output schema / properties / results / items / properties / mesh_terms / titleAdded value: +"MeSH terms" - changed
Output schema / properties / results / items / properties / mesh_terms / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / pdf_url / descriptionPrevious value: -"Direct link to the PDF, preferring an open-access or free copy."New value: +"Direct link to the PDF, preferring an open-access or free copy over a paywalled one." - added
Output schema / properties / results / items / properties / pdf_url / titleAdded value: +"PDF URL" - changed
Output schema / properties / results / items / properties / pdf_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / pmcid / titleAdded value: +"PubMed Central ID" - changed
Output schema / properties / results / items / properties / pmcid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / pmid / titleAdded value: +"PubMed ID" - changed
Output schema / properties / results / items / properties / pmid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / pub_year / descriptionPrevious value: -"Year of publication."New value: +"Structured pub year value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / pub_year / titleAdded value: +"Pub Year" - changed
Output schema / properties / results / items / properties / pub_year / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / publication_date / descriptionPrevious value: -"First publication date of the record."New value: +"Structured publication date value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / publication_date / titleAdded value: +"Publication Date" - changed
Output schema / properties / results / items / properties / publication_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / source / descriptionPrevious value: -"Source database the record came from, e.g. 'MED' for PubMed, 'PPR' for preprint, 'PAT' for patent."New value: +"Structured source value returned by the official Europe PMC REST API." - added
Output schema / properties / results / items / properties / source / titleAdded value: +"Source" - changed
Output schema / properties / results / items / properties / source / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Title" - changed
Output schema / properties / results / items / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Canonical public URL for the source record on europepmc.org."New value: +"Canonical public URL for the source record." - added
Output schema / properties / results / items / properties / url / titleAdded value: +"Source record URL" - changed
Output schema / properties / results / items / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "id", - "title" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
fec_campaign_finance_search31 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of FEC candidate, committee, or contribution records." - changed
Output schema / properties / results / items / properties / district / descriptionPrevious value: -"Congressional district. House candidates only."New value: +"Congressional district, returned as a string rather than a number so that it sorts and exports predictably. House candidates only." - added
Output schema / properties / results / items / properties / district / titleAdded value: +"District" - changed
Output schema / properties / results / items / properties / district / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / id / descriptionPrevious value: -"FEC identifier for the row (candidate ID, committee ID, or transaction sub_id)."New value: +"FEC identifier for the row. Candidates get a candidate ID, committees an ID beginning with C, and contributions the filing line's sub_id - a transaction identifier, not a donor identifier, so the same person carries a different id on every gift." - added
Output schema / properties / results / items / properties / id / titleAdded value: +"Record ID" - changed
Output schema / properties / results / items / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / name / descriptionPrevious value: -"Registered name of the candidate or committee. Null on contribution rows."New value: +"Registered name of the candidate or committee, surname first for candidates. Null on contribution rows, which carry the donor in contributor_name instead." - added
Output schema / properties / results / items / properties / name / titleAdded value: +"Name" - changed
Output schema / properties / results / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / office / descriptionPrevious value: -"Office sought, expanded to a readable label. Candidate rows only."New value: +"Office the candidate is running for, expanded to a readable label rather than the FEC's H, S or P code. Candidate rows only." - added
Output schema / properties / results / items / properties / office / titleAdded value: +"Office sought" - changed
Output schema / properties / results / items / properties / office / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / party / descriptionPrevious value: -"Full party name as filed."New value: +"Full party name as filed. Candidates almost always carry one. Committees often do not: Super PACs return null and some campaign committees return NON-PARTY." - added
Output schema / properties / results / items / properties / party / titleAdded value: +"Party" - changed
Output schema / properties / results / items / properties / party / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / record_type / descriptionPrevious value: -"Which search produced this row: candidate, committee, or contribution."New value: +"Which of the three searches produced this row: candidate, committee or contribution. A run returns one type only, so this value is identical on every row and exists so that merged exports stay separable." - added
Output schema / properties / results / items / properties / record_type / titleAdded value: +"Record type" - changed
Output schema / properties / results / items / properties / record_type / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / state / descriptionPrevious value: -"Two-letter state code relevant to the record."New value: +"Two-letter state code. On candidate rows this is the state of the office sought; on committee rows it is the committee's own filing address, which is not necessarily where it spends." - added
Output schema / properties / results / items / properties / state / titleAdded value: +"State" - changed
Output schema / properties / results / items / properties / state / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Canonical FEC.gov URL for the record."New value: +"Link to the record on fec.gov. Candidate and committee rows only - an individual contribution line has no page of its own." - added
Output schema / properties / results / items / properties / url / titleAdded value: +"FEC record URL" - changed
Output schema / properties / results / items / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "record_type", - "id" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
florida_new_filings_search20 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of Florida Sunbiz business-entity records matching the search query." - changed
Output schema / properties / results / items / properties / date_filed / descriptionPrevious value: -"Date the entity was filed with the Florida Division of Corporations (requires include_details)."New value: +"Date the entity was filed with the Florida Division of Corporations." - added
Output schema / properties / results / items / properties / date_filed / titleAdded value: +"Date filed" - added
Output schema / properties / results / items / properties / document_number / titleAdded value: +"Document number" - added
Output schema / properties / results / items / properties / entity_name / titleAdded value: +"Entity name" - changed
Output schema / properties / results / items / properties / entity_type / descriptionPrevious value: -"Florida registry classification, such as a domestic or foreign LLC or corporation."New value: +"Florida registry classification, such as a domestic or foreign profit corporation or limited liability company." - added
Output schema / properties / results / items / properties / entity_type / titleAdded value: +"Entity type" - changed
Output schema / properties / results / items / properties / fei_ein / descriptionPrevious value: -"Federal employer identification number on file with the state, where recorded (requires include_details)."New value: +"Federal employer identification number on file with the state, where one is recorded." - added
Output schema / properties / results / items / properties / fei_ein / titleAdded value: +"FEI/EIN number" - changed
Output schema / properties / results / items / properties / principal_address / descriptionPrevious value: -"Principal place of business on file with the state (requires include_details)."New value: +"Principal place of business on file with the state." - added
Output schema / properties / results / items / properties / principal_address / titleAdded value: +"Principal address" - changed
Output schema / properties / results / items / properties / registered_agent / descriptionPrevious value: -"Name of the entity's Florida registered agent (requires include_details)."New value: +"Name of the entity's Florida registered agent. Null when the state records no agent." - added
Output schema / properties / results / items / properties / registered_agent / titleAdded value: +"Registered agent" - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Entity status displayed in the Sunbiz result (e.g. Active, Inactive)."New value: +"Entity status displayed in the Sunbiz result." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Entity status" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
florida_officer_search19 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of Florida officer/registered-agent-to-entity records matching the search query." - changed
Output schema / properties / results / items / properties / date_filed / descriptionPrevious value: -"Date the entity was first filed with the Florida Division of Corporations (requires include_details)."New value: +"Date the entity was first filed with the Florida Division of Corporations, as MM/DD/YYYY." - added
Output schema / properties / results / items / properties / date_filed / titleAdded value: +"Date filed" - changed
Output schema / properties / results / items / properties / detail_url / descriptionPrevious value: -"Direct link to the company's Sunbiz detail page for audit against the state registry."New value: +"Direct link to the company's Sunbiz detail page, so any record can be audited against the state registry." - added
Output schema / properties / results / items / properties / detail_url / titleAdded value: +"Sunbiz record URL" - added
Output schema / properties / results / items / properties / document_number / titleAdded value: +"Document number" - added
Output schema / properties / results / items / properties / entity_name / titleAdded value: +"Entity name" - changed
Output schema / properties / results / items / properties / entity_type / descriptionPrevious value: -"Registry classification, such as Florida LLC or Foreign Profit Corporation (requires include_details)."New value: +"Registry classification, such as Florida Limited Liability Company or Foreign Profit Corporation." - added
Output schema / properties / results / items / properties / entity_type / titleAdded value: +"Entity type" - added
Output schema / properties / results / items / properties / officer_name / titleAdded value: +"Officer or agent name" - changed
Output schema / properties / results / items / properties / principal_address / descriptionPrevious value: -"Principal place of business on file (requires include_details)."New value: +"Principal place of business on file, street through ZIP as one line." - added
Output schema / properties / results / items / properties / principal_address / titleAdded value: +"Principal address" - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Current Florida registration status, normally ACTIVE or INACTIVE (requires include_details)."New value: +"Current Florida registration status, normally ACTIVE or INACTIVE." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Entity status" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
french_company_search31 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of French company records from the SIRENE register." - changed
Output schema / properties / results / items / properties / employees / descriptionPrevious value: -"Company-wide workforce size band."New value: +"Structured employees value returned by the French public company-data API backed by the SIRENE register." - added
Output schema / properties / results / items / properties / employees / titleAdded value: +"Employees" - changed
Output schema / properties / results / items / properties / employees / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / hq_city / descriptionPrevious value: -"Headquarters city."New value: +"Structured hq city value returned by the French public company-data API backed by the SIRENE register." - added
Output schema / properties / results / items / properties / hq_city / titleAdded value: +"Hq City" - changed
Output schema / properties / results / items / properties / hq_city / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / legal_name / descriptionPrevious value: -"Registered legal name of the company."New value: +"Structured legal name value returned by the French public company-data API backed by the SIRENE register." - added
Output schema / properties / results / items / properties / legal_name / titleAdded value: +"Legal Name" - changed
Output schema / properties / results / items / properties / legal_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / naf_code / descriptionPrevious value: -"Main NAF/APE economic activity code."New value: +"Structured naf code value returned by the French public company-data API backed by the SIRENE register." - added
Output schema / properties / results / items / properties / naf_code / titleAdded value: +"Naf Code" - changed
Output schema / properties / results / items / properties / naf_code / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / name / descriptionPrevious value: -"Organization or company name as published by the source."New value: +"Organization, company, facility or record name as published by the source." - added
Output schema / properties / results / items / properties / name / titleAdded value: +"Name" - changed
Output schema / properties / results / items / properties / name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / revenue / descriptionPrevious value: -"Most recently reported annual revenue."New value: +"Turnover for financials_year in whole euros, taken from the accounts filed with the commercial court. Only companies that file publicly have it." - added
Output schema / properties / results / items / properties / revenue / titleAdded value: +"Revenue (EUR)" - changed
Output schema / properties / results / items / properties / revenue / typePrevious value: -"number"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / siren / descriptionPrevious value: -"9-digit SIREN company identifier."New value: +"Structured siren value returned by the French public company-data API backed by the SIRENE register." - added
Output schema / properties / results / items / properties / siren / titleAdded value: +"Siren" - changed
Output schema / properties / results / items / properties / siren / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Current company status, e.g. 'active'."New value: +"Current source-defined status of the organization, provider or study." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Status" - changed
Output schema / properties / results / items / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "siren", - "name" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
glassdoor_jobs_search45 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of active employment job postings extracted from Glassdoor." - added
Output schema / properties / results / items / properties / age_in_daysAdded value: +{ + "description": "Exact number of days since the job was posted, as reported by Glassdoor. Uncapped, unlike the posting age shown on the card, which stops at 30d+.", + "title": "Age in days", + "type": [ + "integer", + "null" + ] +} - removed
Output schema / properties / results / items / properties / companyNameRemoved value: -{ - "description": "Name of the recruiting employer or corporate entity.", - "type": "string" -} - added
Output schema / properties / results / items / properties / easy_applyAdded value: +{ + "description": "True when the listing can be applied to directly on Glassdoor rather than on the employer's own site.", + "title": "Easy Apply", + "type": [ + "boolean", + "null" + ] +} - added
Output schema / properties / results / items / properties / employerAdded value: +{ + "description": "Hiring company name displayed on the job card.", + "title": "Employer", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / employer_idAdded value: +{ + "description": "Numeric Glassdoor company identifier, stable across listings and usable to group every job from one employer. 0 when the employer has no Glassdoor company profile.", + "title": "Glassdoor employer ID", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / employer_logo_urlAdded value: +{ + "description": "Direct URL to the employer's square logo image on Glassdoor's media CDN.", + "title": "Employer logo URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / employer_name_fullAdded value: +{ + "description": "Full registered company name including any legal suffix, where the job card shows only the short display name. Empty when the employer has no Glassdoor company profile.", + "title": "Employer full legal name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / is_sponsoredAdded value: +{ + "description": "True when the listing is a paid placement rather than an organic search result.", + "title": "Sponsored listing", + "type": [ + "boolean", + "null" + ] +} - removed
Output schema / properties / results / items / properties / jobTitleRemoved value: -{ - "description": "Official employment position or vacancy title.", - "type": "string" -} - removed
Output schema / properties / results / items / properties / jobUrlRemoved value: -{ - "description": "Direct canonical URL to the employment application posting.", - "type": "string" -} - added
Output schema / properties / results / items / properties / job_attributesAdded value: +{ + "description": "Wider set of attributes extracted from the posting - seniority, years of experience, schedule, benefits, certifications and tooling - comma separated, up to 30 values.", + "title": "Job attributes", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / job_description_snippetAdded value: +{ + "description": "Opening excerpt of the job description as Glassdoor summarises it on the results page. Truncated by the source, not the full posting text.", + "title": "Job description snippet", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / job_idAdded value: +{ + "description": "Stable numeric Glassdoor job listing identifier extracted from the listing URL.", + "title": "Glassdoor job ID", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / job_skillsAdded value: +{ + "description": "Key skills Glassdoor extracted from the job description, comma separated, up to 25 values.", + "title": "Required skills", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / job_titleAdded value: +{ + "description": "Title displayed on the Glassdoor job card.", + "title": "Job title", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / job_urlAdded value: +{ + "description": "Stable Glassdoor listing URL with tracking parameters removed.", + "title": "Canonical job URL", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / properties / location / descriptionPrevious value: -"Geographic workplace location or remote designation."New value: +"Location displayed for the job listing." - added
Output schema / properties / results / items / properties / location / titleAdded value: +"Job location" - changed
Output schema / properties / results / items / properties / location / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / location_idAdded value: +{ + "description": "Numeric Glassdoor location identifier for the job, the same id that appears as IC<id> in Glassdoor search URLs.", + "title": "Glassdoor location ID", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / location_typeAdded value: +{ + "description": "Granularity of the location field: city, state or country. Remote and nationwide postings resolve to country.", + "title": "Location granularity", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / normalized_job_titleAdded value: +{ + "description": "Glassdoor's canonical occupation title for the listing, useful for grouping and deduplicating roles whose advertised titles differ.", + "title": "Normalized job title", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pay_currencyAdded value: +{ + "description": "ISO currency code for the salary figures.", + "title": "Pay currency", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pay_periodAdded value: +{ + "description": "Period the salary figures are expressed in, such as ANNUAL or HOURLY.", + "title": "Pay period", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / posting_ageAdded value: +{ + "description": "Relative listing age reported by Glassdoor, such as 24h, 3d, or 30d+.", + "title": "Posting age", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / posting_date_estimatedAdded value: +{ + "description": "UTC calendar date estimated from posting_age at collection time. Treat as approximate, especially for values ending in +.", + "title": "Estimated posting date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / posting_date_exactAdded value: +{ + "description": "UTC calendar date the job was posted, derived from age_in_days at collection time. Accurate to the day and, where populated, preferable to posting_date_estimated.", + "title": "Posting date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / posting_date_precisionAdded value: +{ + "description": "estimated for ordinary relative ages or lower_bound for capped ages such as 30d+.", + "title": "Posting date precision", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / properties / rating / descriptionPrevious value: -"Employer workplace review rating on a 1.0 to 5.0 scale."New value: +"Employer rating displayed by Glassdoor." - added
Output schema / properties / results / items / properties / rating / titleAdded value: +"Employer rating" - changed
Output schema / properties / results / items / properties / rating / typePrevious value: -"number"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / salaryAdded value: +{ + "description": "Salary range or estimate exactly as displayed on the job card.", + "title": "Displayed salary", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / salaryEstimateRemoved value: -{ - "description": "Estimated annual or hourly compensation range when published.", - "type": "string" -} - added
Output schema / properties / results / items / properties / salary_maxAdded value: +{ + "description": "Upper bound of the pay range in pay_currency per pay_period.", + "title": "Salary high (90th percentile)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / salary_medianAdded value: +{ + "description": "Midpoint of the pay range in pay_currency per pay_period.", + "title": "Salary median (50th percentile)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / salary_minAdded value: +{ + "description": "Lower bound of the pay range in pay_currency per pay_period, parsed from the displayed salary into a sortable number.", + "title": "Salary low (10th percentile)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / salary_sourceAdded value: +{ + "description": "EMPLOYER_PROVIDED when the employer published the pay, ESTIMATED when Glassdoor modelled it. Tells you which salary rows are reported facts.", + "title": "Salary source", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / scraped_atAdded value: +{ + "description": "UTC timestamp when the result page was extracted.", + "title": "Collected at", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "jobTitle", - "companyName" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
gleif_lei_search40 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of GLEIF LEI records matching the search." - changed
Output schema / properties / results / items / properties / corroboration_level / descriptionPrevious value: -"How hard the data was verified: FULLY_CORROBORATED, PARTIALLY_CORROBORATED or ENTITY_SUPPLIED_ONLY."New value: +"How hard the data was verified: FULLY_CORROBORATED, PARTIALLY_CORROBORATED or ENTITY_SUPPLIED_ONLY. The quality flag to filter on." - added
Output schema / properties / results / items / properties / corroboration_level / titleAdded value: +"Corroboration level" - changed
Output schema / properties / results / items / properties / corroboration_level / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / gleif_profile_url / titleAdded value: +"GLEIF profile URL" - changed
Output schema / properties / results / items / properties / gleif_profile_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / jurisdiction / descriptionPrevious value: -"Two-letter code of the legal jurisdiction the entity is formed in."New value: +"Two-letter code of the legal jurisdiction the entity is formed in. Can differ from the address country." - added
Output schema / properties / results / items / properties / jurisdiction / titleAdded value: +"Jurisdiction" - changed
Output schema / properties / results / items / properties / jurisdiction / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / legal_city / titleAdded value: +"Legal city" - changed
Output schema / properties / results / items / properties / legal_city / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / legal_country / descriptionPrevious value: -"ISO 3166-1 alpha-2 country code of the registered legal address."New value: +"ISO 3166-1 alpha-2 country code of the legal address." - added
Output schema / properties / results / items / properties / legal_country / titleAdded value: +"Legal country code" - changed
Output schema / properties / results / items / properties / legal_country / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / legal_form_name / descriptionPrevious value: -"Legal form resolved to words, e.g. 'Private Limited Company'. Null when GLEIF has no free-text label for the code."New value: +"The ELF code resolved to words through GLEIF's entity-legal-forms table, English where published." - added
Output schema / properties / results / items / properties / legal_form_name / titleAdded value: +"Legal form name" - changed
Output schema / properties / results / items / properties / legal_form_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / legal_name / titleAdded value: +"Legal name" - changed
Output schema / properties / results / items / properties / legal_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / lei / titleAdded value: +"LEI" - changed
Output schema / properties / results / items / properties / lei / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / next_renewal_date / titleAdded value: +"Next renewal date" - changed
Output schema / properties / results / items / properties / next_renewal_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / registered_as / descriptionPrevious value: -"The company's number in its own national registry, the join key to Companies House, SIRENE, the Handelsregister and the rest."New value: +"The company's number in its OWN national registry - the join key to Companies House, SIRENE, the Handelsregister and the rest." - added
Output schema / properties / results / items / properties / registered_as / titleAdded value: +"Registered as" - changed
Output schema / properties / results / items / properties / registered_as / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / registered_at_name / descriptionPrevious value: -"Name of the national registration authority the entity is filed with, e.g. 'Companies House'."New value: +"The RA code resolved to the registry's name through GLEIF's registration-authorities table." - added
Output schema / properties / results / items / properties / registered_at_name / titleAdded value: +"Registration authority name" - changed
Output schema / properties / results / items / properties / registered_at_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / registration_status / descriptionPrevious value: -"Lifecycle of the LEI registration itself: ISSUED, LAPSED, RETIRED, ANNULLED and so on."New value: +"Lifecycle of the LEI registration itself: ISSUED, LAPSED, RETIRED, ANNULLED and so on. Distinct from entity status." - added
Output schema / properties / results / items / properties / registration_status / titleAdded value: +"Registration status" - changed
Output schema / properties / results / items / properties / registration_status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Entity status" - changed
Output schema / properties / results / items / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "lei", - "legal_name" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
google_autocomplete_keywords19 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - changed
Output schema / properties / results / items / properties / country / descriptionPrevious value: -"Country code used."New value: +"Country code used for the request." - added
Output schema / properties / results / items / properties / country / titleAdded value: +"Country" - changed
Output schema / properties / results / items / properties / expansion / descriptionPrevious value: -"Expansion prefix, suffix, or base."New value: +"Suffix or prefix that generated the request, or base for the unexpanded seed." - added
Output schema / properties / results / items / properties / expansion / titleAdded value: +"Expansion" - changed
Output schema / properties / results / items / properties / language / descriptionPrevious value: -"Language code used."New value: +"Language code used for the request." - added
Output schema / properties / results / items / properties / language / titleAdded value: +"Language" - changed
Output schema / properties / results / items / properties / rank / descriptionPrevious value: -"Position in the source response."New value: +"One-based position in the source suggestion response." - added
Output schema / properties / results / items / properties / rank / titleAdded value: +"Rank" - changed
Output schema / properties / results / items / properties / request_query / descriptionPrevious value: -"Exact expanded request phrase."New value: +"Exact phrase sent to the suggestion endpoint." - added
Output schema / properties / results / items / properties / request_query / titleAdded value: +"Request Query" - changed
Output schema / properties / results / items / properties / seed / descriptionPrevious value: -"Original seed phrase."New value: +"Original seed phrase supplied by the user." - added
Output schema / properties / results / items / properties / seed / titleAdded value: +"Seed" - changed
Output schema / properties / results / items / properties / suggestion / descriptionPrevious value: -"Autocomplete keyword suggestion."New value: +"Autocomplete suggestion returned by Google." - added
Output schema / properties / results / items / properties / suggestion / titleAdded value: +"Suggestion" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
google_maps_search49 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / locationAdded value: +{ + "default": "", + "description": "Optional city or region. Omit if already included in search_query.", + "type": "string" +} - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of verified commercial business entity records extracted from Google Maps." - changed
Output schema / properties / results / items / properties / address / descriptionPrevious value: -"Full formatted postal street address including city, state, and ZIP."New value: +"Public postal address displayed on Google Maps." - added
Output schema / properties / results / items / properties / address / titleAdded value: +"Street address" - changed
Output schema / properties / results / items / properties / address / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / booking_urlAdded value: +{ + "description": "Appointment, reservation or online-ordering link on the business profile.", + "title": "Booking or ordering URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / categoryAdded value: +{ + "description": "Primary category displayed for the business.", + "title": "Business category", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / categoryNameRemoved value: -{ - "description": "Primary industry classification or business trade category.", - "type": "string" -} - added
Output schema / properties / results / items / properties / cityAdded value: +{ + "description": "City parsed from the postal address.", + "title": "City", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / descriptionAdded value: +{ + "description": "Google's editorial summary of the business, when one is published.", + "title": "Business description", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / image_urlAdded value: +{ + "description": "Primary Google Maps photo for the business.", + "title": "Profile photo URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / latitudeAdded value: +{ + "description": "WGS84 latitude parsed from the Google Maps URL.", + "title": "Latitude", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / located_inAdded value: +{ + "description": "Building, mall or floor the business sits inside.", + "title": "Located in", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / longitudeAdded value: +{ + "description": "WGS84 longitude parsed from the Google Maps URL.", + "title": "Longitude", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / nameAdded value: +{ + "description": "Public business name displayed on Google Maps.", + "title": "Business name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / open_stateAdded value: +{ + "description": "Open or closed status line shown for the business right now.", + "title": "Current open state", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / opening_hoursAdded value: +{ + "description": "Opening hours for all seven days, joined with semicolons.", + "title": "Weekly opening hours", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / opening_hours_todayAdded value: +{ + "description": "Opening-hours text displayed for the current day.", + "title": "Today's opening hours", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / properties / phone / descriptionPrevious value: -"Primary commercial telephone number with regional area code."New value: +"Public telephone number in Google Maps display format." - added
Output schema / properties / results / items / properties / phone / titleAdded value: +"Formatted phone number" - changed
Output schema / properties / results / items / properties / phone / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / phone_unformattedAdded value: +{ + "description": "Telephone number with display punctuation removed when available.", + "title": "Dialable phone number", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / place_idAdded value: +{ + "description": "Google Maps place identifier when exposed in the place URL.", + "title": "Google place identifier", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / place_urlAdded value: +{ + "description": "Canonical Google Maps URL for the business place page.", + "title": "Google Maps place URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / plus_codeAdded value: +{ + "description": "Google Maps Plus Code for the location when available.", + "title": "Plus Code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / postal_codeAdded value: +{ + "description": "ZIP or postal code parsed from the postal address.", + "title": "Postal code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / ratingAdded value: +{ + "description": "Google Maps average rating on a zero-to-five scale.", + "title": "Average rating", + "type": [ + "number", + "null" + ] +} - removed
Output schema / properties / results / items / properties / reviewsCountRemoved value: -{ - "description": "Total count of public Google reviews submitted by customers.", - "type": "integer" -} - added
Output schema / properties / results / items / properties / reviews_1_starAdded value: +{ + "description": "Number of one-star reviews in the Google rating histogram.", + "title": "One-star reviews", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / reviews_2_starAdded value: +{ + "description": "Number of two-star reviews in the Google rating histogram.", + "title": "Two-star reviews", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / reviews_3_starAdded value: +{ + "description": "Number of three-star reviews in the Google rating histogram.", + "title": "Three-star reviews", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / reviews_4_starAdded value: +{ + "description": "Number of four-star reviews in the Google rating histogram.", + "title": "Four-star reviews", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / reviews_5_starAdded value: +{ + "description": "Number of five-star reviews in the Google rating histogram.", + "title": "Five-star reviews", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / reviews_countAdded value: +{ + "description": "Number of Google Maps reviews displayed for the business.", + "title": "Review count", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / search_urlAdded value: +{ + "description": "Google Maps search URL that produced this record.", + "title": "Source search URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / stateAdded value: +{ + "description": "Two-letter US state code parsed from the postal address.", + "title": "State or region code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / streetAdded value: +{ + "description": "Street line of the postal address, split out of the full address.", + "title": "Street address", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / titleRemoved value: -{ - "description": "Trading name or legal corporate title of the business.", - "type": "string" -} - removed
Output schema / properties / results / items / properties / totalScoreRemoved value: -{ - "description": "Aggregate customer review rating on a 1.0 to 5.0 scale.", - "type": "number" -} - removed
Output schema / properties / results / items / properties / urlRemoved value: -{ - "description": "Direct canonical Google Maps place URL.", - "type": "string" -} - changed
Output schema / properties / results / items / properties / website / descriptionPrevious value: -"Canonical HTTP/HTTPS business website or landing page."New value: +"Public website linked from the Google Maps business profile." - added
Output schema / properties / results / items / properties / website / titleAdded value: +"Business website" - changed
Output schema / properties / results / items / properties / website / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "title", - "address" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
google_news_search26 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / query / minLengthAdded value: +1 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - changed
Output schema / properties / results / items / properties / article_url / descriptionPrevious value: -"Google News result link."New value: +"Google News result link for the article." - added
Output schema / properties / results / items / properties / article_url / titleAdded value: +"Article URL" - changed
Output schema / properties / results / items / properties / article_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / published_at / descriptionPrevious value: -"Publication timestamp normalized to UTC."New value: +"Publication timestamp normalized to UTC when parseable." - added
Output schema / properties / results / items / properties / published_at / titleAdded value: +"Published At" - changed
Output schema / properties / results / items / properties / published_at / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / query / descriptionPrevious value: -"Search query used."New value: +"Search query that produced the news result." - added
Output schema / properties / results / items / properties / query / titleAdded value: +"Query" - changed
Output schema / properties / results / items / properties / snippet / descriptionPrevious value: -"Plain-text result snippet."New value: +"Plain-text result summary derived from the RSS description." - added
Output schema / properties / results / items / properties / snippet / titleAdded value: +"Snippet" - changed
Output schema / properties / results / items / properties / snippet / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / source_name / descriptionPrevious value: -"Publisher name."New value: +"Publisher or source name." - added
Output schema / properties / results / items / properties / source_name / titleAdded value: +"Publisher" - changed
Output schema / properties / results / items / properties / source_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / source_url / descriptionPrevious value: -"Publisher website."New value: +"Publisher website URL supplied by the feed." - added
Output schema / properties / results / items / properties / source_url / titleAdded value: +"Publisher URL" - changed
Output schema / properties / results / items / properties / source_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / title / descriptionPrevious value: -"News headline."New value: +"Headline supplied by Google News." - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Headline" - changed
Output schema / properties / results / items / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
google_play_reviews_search17 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / keywords / maxItemsAdded value: +100 - added
Input schema / properties / scores / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of Google Play review records extracted for the requested app(s)." - added
Output schema / properties / results / items / properties / app_id / titleAdded value: +"App package ID" - added
Output schema / properties / results / items / properties / app_title / titleAdded value: +"App name" - added
Output schema / properties / results / items / properties / developer_reply / titleAdded value: +"Developer reply" - added
Output schema / properties / results / items / properties / reviewed_at / titleAdded value: +"Review timestamp" - added
Output schema / properties / results / items / properties / score / titleAdded value: +"Star rating" - added
Output schema / properties / results / items / properties / text / titleAdded value: +"Review text" - added
Output schema / properties / results / items / properties / thumbs_up / titleAdded value: +"Helpful votes" - added
Output schema / properties / results / items / properties / user_name / titleAdded value: +"Reviewer name" - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "app_id", - "text" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
grants_gov_opportunity_search41 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / agency_codes / maxItemsAdded value: +100 - added
Input schema / properties / statuses / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - changed
Output schema / properties / results / items / properties / agency_name / descriptionPrevious value: -"Owning federal agency."New value: +"Owning federal agency name." - added
Output schema / properties / results / items / properties / agency_name / titleAdded value: +"Agency Name" - changed
Output schema / properties / results / items / properties / agency_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / award_ceiling / descriptionPrevious value: -"Maximum award amount."New value: +"Maximum award amount in US dollars when supplied." - added
Output schema / properties / results / items / properties / award_ceiling / titleAdded value: +"Award Ceiling" - changed
Output schema / properties / results / items / properties / award_ceiling / typePrevious value: -"number"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / award_floor / descriptionPrevious value: -"Minimum award amount."New value: +"Minimum award amount in US dollars when supplied." - added
Output schema / properties / results / items / properties / award_floor / titleAdded value: +"Award Floor" - changed
Output schema / properties / results / items / properties / award_floor / typePrevious value: -"number"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / close_date / descriptionPrevious value: -"Application deadline."New value: +"Opportunity closing date in YYYY-MM-DD form." - added
Output schema / properties / results / items / properties / close_date / titleAdded value: +"Close Date" - changed
Output schema / properties / results / items / properties / close_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / contact_email / descriptionPrevious value: -"Agency contact email."New value: +"Agency contact email address." - added
Output schema / properties / results / items / properties / contact_email / titleAdded value: +"Contact Email" - changed
Output schema / properties / results / items / properties / contact_email / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / eligibility / descriptionPrevious value: -"Applicant eligibility description."New value: +"Plain-text applicant eligibility description." - added
Output schema / properties / results / items / properties / eligibility / titleAdded value: +"Eligibility" - changed
Output schema / properties / results / items / properties / eligibility / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / estimated_funding / descriptionPrevious value: -"Estimated total program funding."New value: +"Estimated total program funding in US dollars when supplied." - added
Output schema / properties / results / items / properties / estimated_funding / titleAdded value: +"Estimated Funding" - changed
Output schema / properties / results / items / properties / estimated_funding / typePrevious value: -"number"New value: +[ + "integer", + "null" +] - added
Output schema / properties / results / items / properties / grants_gov_url / titleAdded value: +"Grants.gov URL" - changed
Output schema / properties / results / items / properties / grants_gov_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / open_date / descriptionPrevious value: -"Opportunity opening date."New value: +"Opportunity opening date in YYYY-MM-DD form." - added
Output schema / properties / results / items / properties / open_date / titleAdded value: +"Open Date" - changed
Output schema / properties / results / items / properties / open_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / opportunity_number / titleAdded value: +"Opportunity Number" - changed
Output schema / properties / results / items / properties / opportunity_number / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / status / descriptionPrevious value: -"Current Grants.gov status."New value: +"Current Grants.gov opportunity status." - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Status" - changed
Output schema / properties / results / items / properties / status / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / title / descriptionPrevious value: -"Official opportunity title."New value: +"Official funding opportunity title." - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Title" - changed
Output schema / properties / results / items / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
linkedin_jobs_search21 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of public LinkedIn job listing records." - changed
Output schema / properties / results / items / properties / company / descriptionPrevious value: -"Hiring company name."New value: +"Structured company value returned by the upstream source." - added
Output schema / properties / results / items / properties / company / titleAdded value: +"Company" - changed
Output schema / properties / results / items / properties / company_url / descriptionPrevious value: -"URL of the hiring organization's LinkedIn page."New value: +"URL of the hiring organisation's LinkedIn page, with tracking parameters removed." - added
Output schema / properties / results / items / properties / company_url / titleAdded value: +"Company LinkedIn page" - changed
Output schema / properties / results / items / properties / job_id / descriptionPrevious value: -"Numeric LinkedIn job posting ID, stable across runs."New value: +"Numeric LinkedIn job posting ID, stable across runs and usable as a join key." - added
Output schema / properties / results / items / properties / job_id / titleAdded value: +"LinkedIn job ID" - changed
Output schema / properties / results / items / properties / location / descriptionPrevious value: -"Workplace location as displayed on the posting."New value: +"Structured location value returned by the upstream source." - added
Output schema / properties / results / items / properties / location / titleAdded value: +"Location" - added
Output schema / properties / results / items / properties / posted_at / titleAdded value: +"Posting date" - changed
Output schema / properties / results / items / properties / posted_at_timestamp / descriptionPrevious value: -"posted_at parsed into a UTC ISO 8601 timestamp, when recognizable."New value: +"posted_at parsed into a UTC ISO 8601 timestamp. Null when posted_at is missing or not in a recognized absolute-date or relative-age ('3 days ago', 'Just now') shape." - added
Output schema / properties / results / items / properties / posted_at_timestamp / titleAdded value: +"Posting timestamp (ISO 8601)" - changed
Output schema / properties / results / items / properties / title / descriptionPrevious value: -"Job posting title."New value: +"Human-readable title from the source." - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Record title" - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Direct canonical URL to the job listing."New value: +"Direct URL for the source listing." - added
Output schema / properties / results / items / properties / url / titleAdded value: +"Canonical listing URL" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
nhtsa_vehicle_recall_search39 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - added
Output schema / properties / results / items / properties / campaign_number / titleAdded value: +"Campaign Number" - changed
Output schema / properties / results / items / properties / campaign_number / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / component / descriptionPrevious value: -"Affected vehicle system or component."New value: +"Vehicle system or component affected by the recall." - added
Output schema / properties / results / items / properties / component / titleAdded value: +"Component" - changed
Output schema / properties / results / items / properties / component / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / consequence / descriptionPrevious value: -"Official safety consequence."New value: +"Official safety consequence stated by NHTSA." - added
Output schema / properties / results / items / properties / consequence / titleAdded value: +"Consequence" - changed
Output schema / properties / results / items / properties / consequence / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / make / descriptionPrevious value: -"Vehicle make."New value: +"Vehicle make associated with this recall row." - added
Output schema / properties / results / items / properties / make / titleAdded value: +"Make" - changed
Output schema / properties / results / items / properties / make / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / manufacturer / descriptionPrevious value: -"Manufacturer named in the recall."New value: +"Manufacturer named in the NHTSA recall record." - added
Output schema / properties / results / items / properties / manufacturer / titleAdded value: +"Manufacturer" - changed
Output schema / properties / results / items / properties / manufacturer / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / model / descriptionPrevious value: -"Vehicle model."New value: +"Vehicle model associated with this recall row." - added
Output schema / properties / results / items / properties / model / titleAdded value: +"Model" - changed
Output schema / properties / results / items / properties / model / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / model_year / descriptionPrevious value: -"Vehicle model year."New value: +"Vehicle model year associated with this recall row." - added
Output schema / properties / results / items / properties / model_year / titleAdded value: +"Model Year" - changed
Output schema / properties / results / items / properties / model_year / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / park_it / descriptionPrevious value: -"Whether NHTSA issues a park-it warning."New value: +"Whether NHTSA marks the recall with a park-it warning." - added
Output schema / properties / results / items / properties / park_it / titleAdded value: +"Park It Warning" - changed
Output schema / properties / results / items / properties / park_it / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / items / properties / park_outside / descriptionPrevious value: -"Whether NHTSA issues a park-outside warning."New value: +"Whether NHTSA marks the recall with a park-outside warning." - added
Output schema / properties / results / items / properties / park_outside / titleAdded value: +"Park Outside Warning" - changed
Output schema / properties / results / items / properties / park_outside / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / items / properties / potential_units_affected / descriptionPrevious value: -"Potential number of affected units."New value: +"Potential number of affected units when supplied by NHTSA." - added
Output schema / properties / results / items / properties / potential_units_affected / titleAdded value: +"Potential Units Affected" - changed
Output schema / properties / results / items / properties / potential_units_affected / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - added
Output schema / properties / results / items / properties / remedy / titleAdded value: +"Remedy" - changed
Output schema / properties / results / items / properties / remedy / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / summary / descriptionPrevious value: -"Official defect summary."New value: +"Official description of the recalled products and defect." - added
Output schema / properties / results / items / properties / summary / titleAdded value: +"Summary" - changed
Output schema / properties / results / items / properties / summary / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Removed
ofac_sanctions_search - Changed
openfda_search26 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of openFDA records matching the search." - changed
Output schema / properties / results / items / properties / application_number / descriptionPrevious value: -"FDA application number (NDA, ANDA, or BLA) the product is marketed under."New value: +"FDA application number (NDA, ANDA or BLA) the product is marketed under." - added
Output schema / properties / results / items / properties / application_number / titleAdded value: +"Application number" - changed
Output schema / properties / results / items / properties / application_number / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / brand_name / titleAdded value: +"Brand name" - changed
Output schema / properties / results / items / properties / brand_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / dataset / descriptionPrevious value: -"Which openFDA dataset produced this row."New value: +"Selected openFDA dataset that produced this row." - added
Output schema / properties / results / items / properties / dataset / titleAdded value: +"Dataset" - changed
Output schema / properties / results / items / properties / dataset / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / generic_name / titleAdded value: +"Generic name" - changed
Output schema / properties / results / items / properties / generic_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / id / descriptionPrevious value: -"Primary identifier for the row (SPL id, application number, safety report id, or recall number)."New value: +"Primary identifier for the row: SPL id for labels, application number for approvals, safety report id for adverse events, recall number for recalls." - added
Output schema / properties / results / items / properties / id / titleAdded value: +"Record ID" - changed
Output schema / properties / results / items / properties / id / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / manufacturer / titleAdded value: +"Manufacturer" - changed
Output schema / properties / results / items / properties / manufacturer / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / route / titleAdded value: +"Route" - changed
Output schema / properties / results / items / properties / route / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / substance / titleAdded value: +"Substance" - changed
Output schema / properties / results / items / properties / substance / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "dataset", - "id" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
sec_edgar_filings85 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of official SEC EDGAR corporate regulatory filing disclosures." - added
Output schema / properties / results / items / properties / acceptance_datetimeAdded value: +{ + "description": "Structured acceptance datetime value returned by the upstream source.", + "title": "Acceptance Datetime", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / accessionNumberRemoved value: -{ - "description": "Unique SEC EDGAR document accession identifier.", - "type": "string" -} - added
Output schema / properties / results / items / properties / accession_numberAdded value: +{ + "description": "Structured accession number value returned by the upstream source.", + "title": "Accession Number", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / actAdded value: +{ + "description": "Structured act value returned by the upstream source.", + "title": "Act", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_addressAdded value: +{ + "description": "Registrant business address flattened to one line for CRM and mail-merge import.", + "title": "Business address", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_cityAdded value: +{ + "description": "City of the registrant business address.", + "title": "Business city", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_countryAdded value: +{ + "description": "Country of the registrant business address; null for US addresses.", + "title": "Business country", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_is_foreignAdded value: +{ + "description": "True when the registrant business address is outside the United States.", + "title": "Business address is foreign", + "type": "boolean" +} - added
Output schema / properties / results / items / properties / business_address_stateAdded value: +{ + "description": "EDGAR state or country code of the registrant business address.", + "title": "Business state or country code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_state_descriptionAdded value: +{ + "description": "Readable state or country of the business address, spelled out for foreign locations.", + "title": "Business state or country name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_street1Added value: +{ + "description": "First street line of the registrant business address.", + "title": "Business street line 1", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_street2Added value: +{ + "description": "Second street line of the registrant business address.", + "title": "Business street line 2", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / business_address_zipAdded value: +{ + "description": "Postal code of the registrant business address.", + "title": "Business postal code", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / properties / cik / descriptionPrevious value: -"Central Index Key (CIK) ten-digit company identifier assigned by the SEC."New value: +"SEC registrant CIK as a zero-padded string." - added
Output schema / properties / results / items / properties / cik / titleAdded value: +"Central Index Key" - changed
Output schema / properties / results / items / properties / cik / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / properties / companyNameRemoved value: -{ - "description": "Official registered legal name of the filing corporation.", - "type": "string" -} - added
Output schema / properties / results / items / properties / company_filings_urlAdded value: +{ + "description": "Human-readable EDGAR page listing all filings by the registrant.", + "title": "Company EDGAR page URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / company_nameAdded value: +{ + "description": "SEC registrant legal name.", + "title": "Company name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / company_submissions_urlAdded value: +{ + "description": "Official SEC submissions JSON URL for the company.", + "title": "Company submissions URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / current_name_sinceAdded value: +{ + "description": "Date the registrant's current SEC-registered name took effect.", + "title": "Current name since", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / documentUrlRemoved value: -{ - "description": "Canonical HTTPS link to the full filing disclosure on SEC.gov.", - "type": "string" -} - added
Output schema / properties / results / items / properties / document_countAdded value: +{ + "description": "Number of public documents in the submission. Requires include_filing_details.", + "title": "Document count", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / document_typesAdded value: +{ + "description": "Distinct document and exhibit types in the submission, joined with commas. Requires include_filing_details.", + "title": "Document types", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / einAdded value: +{ + "description": "Employer Identification Number on file with SEC; null when the registrant has no US taxpayer number.", + "title": "EIN", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / entity_typeAdded value: +{ + "description": "EDGAR registrant classification, such as operating, investment, or other.", + "title": "Entity type", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / exchangeAdded value: +{ + "description": "Primary listing exchange for the registrant.", + "title": "Primary exchange", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / exchangesAdded value: +{ + "description": "Structured exchanges value returned by the upstream source.", + "items": { + "type": "string" + }, + "title": "Exchanges", + "type": "array" +} - added
Output schema / properties / results / items / properties / exhibit_countAdded value: +{ + "description": "Number of EX- exhibit documents in the submission. Requires include_filing_details.", + "title": "Exhibit count", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / file_numberAdded value: +{ + "description": "Structured file number value returned by the upstream source.", + "title": "File Number", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filer_categoryAdded value: +{ + "description": "SEC filer status that sets the registrant's reporting deadlines.", + "title": "Filer category", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filer_ciksAdded value: +{ + "description": "CIK of each filing entity, in the same order as filer_names. Requires include_filing_details.", + "title": "Filer CIKs", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filer_namesAdded value: +{ + "description": "Names of the entities that filed the submission. Requires include_filing_details.", + "title": "Filer names", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / filingDateRemoved value: -{ - "description": "Official chronological submission date in YYYY-MM-DD format.", - "type": "string" -} - added
Output schema / properties / results / items / properties / filing_dateAdded value: +{ + "description": "Date the filing was submitted to SEC.", + "title": "Filing date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filing_date_changedAdded value: +{ + "description": "Date SEC last changed the filing record. Requires include_filing_details.", + "title": "Filing date changed", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filing_directory_urlAdded value: +{ + "description": "Directory listing every document filed in this submission.", + "title": "Filing directory URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filing_txt_urlAdded value: +{ + "description": "Single text file containing the entire submission, suitable for text and LLM pipelines.", + "title": "Complete submission text URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / filing_urlAdded value: +{ + "description": "Direct SEC filing index page URL.", + "title": "SEC filing index URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / film_numberAdded value: +{ + "description": "Structured film number value returned by the upstream source.", + "title": "Film Number", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / fiscal_year_endAdded value: +{ + "description": "Structured fiscal year end value returned by the upstream source.", + "title": "Fiscal Year End", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / formAdded value: +{ + "description": "Filed SEC form type, such as 10-K or 8-K.", + "title": "SEC form type", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / formTypeRemoved value: -{ - "description": "Regulatory filing form designation code (e.g. 10-K, 10-Q, 8-K).", - "type": "string" -} - added
Output schema / properties / results / items / properties / former_namesAdded value: +{ + "description": "Previous SEC-registered names of the company, most recent first, joined with commas.", + "title": "Former names", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / group_membersAdded value: +{ + "description": "Members of the reporting group on a Schedule 13D or 13G filing. Requires include_filing_details.", + "title": "Group members", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / has_insider_transactions_as_issuerAdded value: +{ + "description": "True when insiders file Forms 3, 4 or 5 against this registrant's securities.", + "title": "Has insider transactions as issuer", + "type": "boolean" +} - added
Output schema / properties / results / items / properties / has_insider_transactions_as_ownerAdded value: +{ + "description": "True when the registrant files Forms 3, 4 or 5 as a reporting owner of another issuer.", + "title": "Files insider transactions as owner", + "type": "boolean" +} - added
Output schema / properties / results / items / properties / is_amendmentAdded value: +{ + "description": "Structured is amendment value returned by the upstream source.", + "title": "Is Amendment", + "type": "boolean" +} - added
Output schema / properties / results / items / properties / is_inline_xbrlAdded value: +{ + "description": "Structured is inline xbrl value returned by the upstream source.", + "title": "Is Inline Xbrl", + "type": [ + "boolean", + "null" + ] +} - added
Output schema / properties / results / items / properties / is_xbrlAdded value: +{ + "description": "Structured is xbrl value returned by the upstream source.", + "title": "Is Xbrl", + "type": [ + "boolean", + "null" + ] +} - added
Output schema / properties / results / items / properties / issuer_cikAdded value: +{ + "description": "CIK of the issuer named in an ownership filing. Requires include_filing_details.", + "title": "Issuer CIK", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / issuer_nameAdded value: +{ + "description": "Issuer whose securities an ownership filing concerns. Requires include_filing_details.", + "title": "Issuer name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / item_descriptionsAdded value: +{ + "description": "Readable 8-K item names behind the numeric item codes. Requires include_filing_details.", + "title": "Item descriptions", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / itemsAdded value: +{ + "description": "Structured items value returned by the upstream source.", + "title": "Items", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_addressAdded value: +{ + "description": "Registrant mailing address flattened to one line for CRM and mail-merge import.", + "title": "Mailing address", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_address_cityAdded value: +{ + "description": "City of the registrant mailing address.", + "title": "Mailing city", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_address_countryAdded value: +{ + "description": "Country of the registrant mailing address; null for US addresses.", + "title": "Mailing country", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_address_stateAdded value: +{ + "description": "EDGAR state or country code of the registrant mailing address.", + "title": "Mailing state or country code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_address_street1Added value: +{ + "description": "First street line of the registrant mailing address.", + "title": "Mailing street line 1", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_address_street2Added value: +{ + "description": "Second street line of the registrant mailing address.", + "title": "Mailing street line 2", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / mailing_address_zipAdded value: +{ + "description": "Postal code of the registrant mailing address.", + "title": "Mailing postal code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / owner_orgAdded value: +{ + "description": "SEC Division of Corporation Finance office assigned to the registrant.", + "title": "SEC review office", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / phoneAdded value: +{ + "description": "Registrant business telephone number on file with SEC.", + "title": "Business phone", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / primary_documentAdded value: +{ + "description": "Structured primary document value returned by the upstream source.", + "title": "Primary Document", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / primary_document_descriptionAdded value: +{ + "description": "Structured primary document description value returned by the upstream source.", + "title": "Primary Document Description", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / primary_document_urlAdded value: +{ + "description": "Direct URL of the filing primary document.", + "title": "Primary filing document URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / report_dateAdded value: +{ + "description": "Structured report date value returned by the upstream source.", + "title": "Report Date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / reporting_owner_ciksAdded value: +{ + "description": "CIK of each reporting owner, in the same order as reporting_owner_names. Requires include_filing_details.", + "title": "Reporting owner CIKs", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / reporting_owner_namesAdded value: +{ + "description": "Insiders named as reporting owners on Forms 3, 4, 5 and 144. Requires include_filing_details.", + "title": "Reporting owner names", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / sicAdded value: +{ + "description": "Structured sic value returned by the upstream source.", + "title": "Sic", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / sic_descriptionAdded value: +{ + "description": "Structured sic description value returned by the upstream source.", + "title": "Sic Description", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / size_bytesAdded value: +{ + "description": "Structured size bytes value returned by the upstream source.", + "title": "Size Bytes", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / state_of_incorporationAdded value: +{ + "description": "Structured state of incorporation value returned by the upstream source.", + "title": "State Of Incorporation", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / state_of_incorporation_descriptionAdded value: +{ + "description": "Readable jurisdiction of incorporation, spelled out for non-US registrants.", + "title": "Incorporation jurisdiction name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / subject_company_cikAdded value: +{ + "description": "CIK of the subject company. Requires include_filing_details.", + "title": "Subject company CIK", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / subject_company_nameAdded value: +{ + "description": "Company that a Schedule 13D, 13G, 14D or Form 144 filing is about. Requires include_filing_details.", + "title": "Subject company name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / tickerAdded value: +{ + "description": "Primary public ticker associated with the registrant.", + "title": "Primary ticker", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / tickersAdded value: +{ + "description": "Structured tickers value returned by the upstream source.", + "items": { + "type": "string" + }, + "title": "Tickers", + "type": "array" +} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "formType", - "filingDate", - "documentUrl" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Removed
sec_form_4_insider_transactions - Changed
tech_stack_detector82 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / urls / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"One record per analyzed website." - changed
Output schema / properties / results / items / properties / analytics / descriptionPrevious value: -"Detected analytics and tag-management tools, comma separated."New value: +"Detected analytics and tag-management tools, comma-separated." - added
Output schema / properties / results / items / properties / analytics / titleAdded value: +"Analytics" - changed
Output schema / properties / results / items / properties / analytics / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / categories / descriptionPrevious value: -"Distinct categories of detected technologies, e.g. cdn, framework."New value: +"Distinct categories of detected technologies." - removed
Output schema / properties / results / items / properties / categories / itemsRemoved value: -{ - "type": "string" -} - added
Output schema / properties / results / items / properties / categories / titleAdded value: +"Categories" - changed
Output schema / properties / results / items / properties / categories / typePrevious value: -"array"New value: +[ + "array", + "null" +] - changed
Output schema / properties / results / items / properties / cdn / descriptionPrevious value: -"Detected content delivery networks, comma separated."New value: +"Detected content delivery networks, comma-separated." - added
Output schema / properties / results / items / properties / cdn / titleAdded value: +"Cdn" - changed
Output schema / properties / results / items / properties / cdn / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / cms / descriptionPrevious value: -"Detected content management systems, comma separated."New value: +"Detected content management systems, comma-separated." - added
Output schema / properties / results / items / properties / cms / titleAdded value: +"Cms" - changed
Output schema / properties / results / items / properties / cms / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / contact_page_url / descriptionPrevious value: -"Contact or about page found on the same host. Null unless include_details is on."New value: +"Contact or about page found on the same host and fetched for extra contact details. Null unless include_details is on." - added
Output schema / properties / results / items / properties / contact_page_url / titleAdded value: +"Contact Page Url" - changed
Output schema / properties / results / items / properties / contact_page_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / count / titleAdded value: +"Count" - changed
Output schema / properties / results / items / properties / count / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / domain / descriptionPrevious value: -"Registered host of the final URL with any leading www. removed."New value: +"Registered host of the final URL with any leading www. removed, for joining and de-duplicating lists." - added
Output schema / properties / results / items / properties / domain / titleAdded value: +"Domain" - changed
Output schema / properties / results / items / properties / domain / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / ecommerce_platform / descriptionPrevious value: -"Detected ecommerce platforms, comma separated."New value: +"Detected ecommerce platforms, comma-separated." - added
Output schema / properties / results / items / properties / ecommerce_platform / titleAdded value: +"Ecommerce Platform" - changed
Output schema / properties / results / items / properties / ecommerce_platform / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / emails / descriptionPrevious value: -"Email addresses published on the page (mailto: links plus same-domain plain-text addresses), comma separated."New value: +"Email addresses published on the page: every mailto: target, plus plain-text addresses on the site's own domain. Includes the contact page when include_details is on." - added
Output schema / properties / results / items / properties / emails / titleAdded value: +"Emails" - changed
Output schema / properties / results / items / properties / emails / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / error / descriptionPrevious value: -"Fetch or processing error for this site, or null on success."New value: +"Fetch or processing error, or null on success." - added
Output schema / properties / results / items / properties / error / titleAdded value: +"Error" - changed
Output schema / properties / results / items / properties / error / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / final_url / titleAdded value: +"Final Url" - changed
Output schema / properties / results / items / properties / final_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / framework / descriptionPrevious value: -"Detected web application frameworks, comma separated."New value: +"Detected web application frameworks, comma-separated." - added
Output schema / properties / results / items / properties / framework / titleAdded value: +"Framework" - changed
Output schema / properties / results / items / properties / framework / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / github_url / descriptionPrevious value: -"First GitHub organization or repository URL linked from the page."New value: +"First GitHub organisation or repository URL linked from the page." - added
Output schema / properties / results / items / properties / github_url / titleAdded value: +"Github Url" - changed
Output schema / properties / results / items / properties / github_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / hosting / descriptionPrevious value: -"Detected hosting and deployment platforms, comma separated."New value: +"Detected hosting and deployment platforms, comma-separated." - added
Output schema / properties / results / items / properties / hosting / titleAdded value: +"Hosting" - changed
Output schema / properties / results / items / properties / hosting / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / is_https / titleAdded value: +"Is Https" - changed
Output schema / properties / results / items / properties / is_https / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / items / properties / linkedin_url / descriptionPrevious value: -"First LinkedIn company, school, or member URL linked from the page."New value: +"First LinkedIn company, school or member URL linked from the page." - added
Output schema / properties / results / items / properties / linkedin_url / titleAdded value: +"Linkedin Url" - changed
Output schema / properties / results / items / properties / linkedin_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / meta_description / titleAdded value: +"Meta Description" - changed
Output schema / properties / results / items / properties / meta_description / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / payments / descriptionPrevious value: -"Detected payment providers, comma separated."New value: +"Detected payment providers, comma-separated." - added
Output schema / properties / results / items / properties / payments / titleAdded value: +"Payments" - changed
Output schema / properties / results / items / properties / payments / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / phones / descriptionPrevious value: -"Phone numbers taken from tel: links, comma separated."New value: +"Phone numbers taken from tel: links, comma-separated." - added
Output schema / properties / results / items / properties / phones / titleAdded value: +"Phones" - changed
Output schema / properties / results / items / properties / phones / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / robots_txt_found / titleAdded value: +"Robots Txt Found" - changed
Output schema / properties / results / items / properties / robots_txt_found / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / items / properties / security_tech / descriptionPrevious value: -"Detected bot-protection and CAPTCHA services, comma separated."New value: +"Detected bot-protection and CAPTCHA services, comma-separated." - added
Output schema / properties / results / items / properties / security_tech / titleAdded value: +"Security Tech" - changed
Output schema / properties / results / items / properties / security_tech / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / sitemap_url / titleAdded value: +"Sitemap Url" - changed
Output schema / properties / results / items / properties / sitemap_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Status" - changed
Output schema / properties / results / items / properties / status / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / technologies / descriptionPrevious value: -"Detected technology names, e.g. Fastly, Next.js."New value: +"Detected technology names." - removed
Output schema / properties / results / items / properties / technologies / itemsRemoved value: -{ - "type": "string" -} - added
Output schema / properties / results / items / properties / technologies / titleAdded value: +"Technologies" - changed
Output schema / properties / results / items / properties / technologies / typePrevious value: -"array"New value: +[ + "array", + "null" +] - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Title" - changed
Output schema / properties / results / items / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / twitter_url / titleAdded value: +"Twitter Url" - changed
Output schema / properties / results / items / properties / twitter_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / url / descriptionPrevious value: -"Requested website URL, as normalized before the request."New value: +"Requested website URL." - added
Output schema / properties / results / items / properties / url / titleAdded value: +"Url" - changed
Output schema / properties / results / items / properties / url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "url" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
ted_eu_tender_search40 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - changed
Output schema / properties / results / items / properties / buyer_countries / descriptionPrevious value: -"Buyer country codes."New value: +"Pipe-separated ISO alpha-3 buyer country codes." - added
Output schema / properties / results / items / properties / buyer_countries / titleAdded value: +"Buyer Countries" - changed
Output schema / properties / results / items / properties / buyer_countries / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / buyer_names / descriptionPrevious value: -"Contracting authority names."New value: +"Pipe-separated contracting authority names." - added
Output schema / properties / results / items / properties / buyer_names / titleAdded value: +"Buyer Names" - changed
Output schema / properties / results / items / properties / buyer_names / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / cpv_codes / descriptionPrevious value: -"Main CPV codes."New value: +"Pipe-separated main Common Procurement Vocabulary codes." - added
Output schema / properties / results / items / properties / cpv_codes / titleAdded value: +"CPV Codes" - changed
Output schema / properties / results / items / properties / cpv_codes / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / currency / descriptionPrevious value: -"Estimated-value currency."New value: +"Currency code for the estimated procedure value." - added
Output schema / properties / results / items / properties / currency / titleAdded value: +"Currency" - changed
Output schema / properties / results / items / properties / currency / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / deadlines / descriptionPrevious value: -"Tender receipt deadlines."New value: +"Pipe-separated tender receipt deadline dates." - added
Output schema / properties / results / items / properties / deadlines / titleAdded value: +"Deadlines" - changed
Output schema / properties / results / items / properties / deadlines / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / description / descriptionPrevious value: -"Lot descriptions."New value: +"Pipe-separated lot descriptions in the preferred available language." - added
Output schema / properties / results / items / properties / description / titleAdded value: +"Description" - changed
Output schema / properties / results / items / properties / description / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / estimated_value / descriptionPrevious value: -"Estimated procedure value."New value: +"Estimated procedure value as a number when supplied." - added
Output schema / properties / results / items / properties / estimated_value / titleAdded value: +"Estimated Value" - changed
Output schema / properties / results / items / properties / estimated_value / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / properties / results / items / properties / notice_url / descriptionPrevious value: -"Canonical TED notice page."New value: +"Canonical TED notice detail URL." - added
Output schema / properties / results / items / properties / notice_url / titleAdded value: +"Notice URL" - changed
Output schema / properties / results / items / properties / notice_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / pdf_url / descriptionPrevious value: -"Direct preferred-language PDF."New value: +"Direct preferred-language TED PDF URL." - added
Output schema / properties / results / items / properties / pdf_url / titleAdded value: +"PDF URL" - changed
Output schema / properties / results / items / properties / pdf_url / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / publication_date / descriptionPrevious value: -"TED publication date."New value: +"TED publication date normalized to YYYY-MM-DD." - added
Output schema / properties / results / items / properties / publication_date / titleAdded value: +"Publication Date" - changed
Output schema / properties / results / items / properties / publication_date / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / publication_number / titleAdded value: +"Publication Number" - changed
Output schema / properties / results / items / properties / publication_number / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / title / descriptionPrevious value: -"Notice title."New value: +"Notice title in the preferred available language." - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Notice Title" - changed
Output schema / properties / results / items / properties / title / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
twitch_live_streams28 fields changed- added
Input schema / additionalPropertiesAdded value: +false - changed
Input schema / properties / game_name / defaultPrevious value: -""New value: +"minecraft" - changed
Input schema / properties / game_name / descriptionPrevious value: -"Specific video game title or streaming category filter (e.g. 'Fortnite', 'Minecraft', or 'Just Chatting'). Leave empty for top streams across all categories."New value: +"Twitch category slug, such as minecraft or just-chatting. Defaults to minecraft." - added
Input schema / properties / game_name / patternAdded value: +"^[a-z0-9-]+$" - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of active real-time Twitch stream broadcast records." - removed
Output schema / properties / results / items / properties / channelNameRemoved value: -{ - "description": "Twitch username or broadcaster channel handle.", - "type": "string" -} - added
Output schema / properties / results / items / properties / channel_display_nameAdded value: +{ + "description": "Public display name of the channel, preserving capitalization and non-Latin characters. Differs from channel_name, which is the lowercase URL login.", + "title": "Channel display name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / channel_nameAdded value: +{ + "description": "Twitch channel identifier parsed from its canonical URL.", + "minLength": 2, + "title": "Channel name", + "type": "string" +} - added
Output schema / properties / results / items / properties / channel_urlAdded value: +{ + "description": "Canonical public URL of the live channel.", + "pattern": "^https?://", + "title": "Twitch channel URL", + "type": "string" +} - removed
Output schema / properties / results / items / properties / gameNameRemoved value: -{ - "description": "Primary game title or stream category.", - "type": "string" -} - removed
Output schema / properties / results / items / properties / languageRemoved value: -{ - "description": "Language code of the broadcast.", - "type": "string" -} - added
Output schema / properties / results / items / properties / live_statusAdded value: +{ + "description": "Point-in-time live-state label.", + "title": "Live status", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / profile_image_urlAdded value: +{ + "description": "Channel profile picture shown on the card, at 50x50 pixels.", + "title": "Channel avatar URL", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / streamTitleRemoved value: -{ - "description": "Broadcaster headline title for the active live session.", - "type": "string" -} - removed
Output schema / properties / results / items / properties / streamUrlRemoved value: -{ - "description": "Canonical HTTPS stream link to the live broadcast channel.", - "type": "string" -} - added
Output schema / properties / results / items / properties / stream_categoryAdded value: +{ + "description": "Game or category the stream is listed under. Populated on multi-category listing URLs such as twitch.tv/directory/all; empty on a single-category page, where the category is your input.", + "title": "Stream category", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / stream_labelAdded value: +{ + "description": "Accessible stream title or preview label.", + "minLength": 3, + "title": "Stream label", + "type": "string" +} - added
Output schema / properties / results / items / properties / stream_tagsAdded value: +{ + "description": "Tags shown on the stream card, comma-separated. Mixes language, content and community tags, for example 'justchatting, drops, DropsEnabled'.", + "title": "Stream tags", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / stream_titleAdded value: +{ + "description": "Title the streamer set for the live broadcast, in the original capitalization and without the ' - channel' suffix that stream_label carries.", + "title": "Stream title", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / thumbnail_urlAdded value: +{ + "description": "Point-in-time Twitch stream preview image URL.", + "title": "Preview thumbnail URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / verified_badgeAdded value: +{ + "description": "Badge label Twitch renders next to the channel name, 'Verified' for verified channels. Empty when the channel carries no badge.", + "title": "Verified badge", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / viewerCountRemoved value: -{ - "description": "Number of concurrent live spectators actively watching the stream.", - "type": "integer" -} - added
Output schema / properties / results / items / properties / viewer_countAdded value: +{ + "description": "Point-in-time viewer-count label shown by Twitch.", + "title": "Viewer count label", + "type": [ + "string", + "null" + ] +} - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "channelName", - "viewerCount" -]New value: +[ + "stream_label", + "channel_url", + "channel_name" +] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
us_business_entity_search18 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / states / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of normalized, source-tagged business-entity records matching the search query." - changed
Output schema / properties / results / items / properties / date_filed / descriptionPrevious value: -"Date the entity was filed, when the source registry records one."New value: +"Date the entity was filed with the Florida Division of Corporations." - added
Output schema / properties / results / items / properties / date_filed / titleAdded value: +"Date filed" - added
Output schema / properties / results / items / properties / entity_id / titleAdded value: +"Entity ID" - added
Output schema / properties / results / items / properties / entity_name / titleAdded value: +"Entity name" - added
Output schema / properties / results / items / properties / entity_type / titleAdded value: +"Entity type" - added
Output schema / properties / results / items / properties / location / titleAdded value: +"Location" - changed
Output schema / properties / results / items / properties / registered_agent / descriptionPrevious value: -"Name of the entity's registered agent, where recorded (requires include_details on most sources)."New value: +"Name of the entity's Florida registered agent. Null when the state records no agent." - added
Output schema / properties / results / items / properties / registered_agent / titleAdded value: +"Registered agent" - changed
Output schema / properties / results / items / properties / source / descriptionPrevious value: -"State registry that produced the record (florida, alabama, iowa, or wisconsin)."New value: +"State registry that produced the record." - added
Output schema / properties / results / items / properties / source / titleAdded value: +"Source registry" - added
Output schema / properties / results / items / properties / status / titleAdded value: +"Entity status" - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
us_census_geocoder82 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / addresses / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"One geocoded row per input address, in input order, including addresses that failed to match." - changed
Output schema / properties / results / items / properties / benchmark_name / descriptionPrevious value: -"The Census address benchmark that actually answered, echoed back by the API on every row."New value: +"The Census address benchmark that actually answered, echoed back by the API. Recorded per row so exports made weeks apart stay comparable after the Bureau rolls the benchmark forward." - added
Output schema / properties / results / items / properties / benchmark_name / titleAdded value: +"Benchmark used" - changed
Output schema / properties / results / items / properties / benchmark_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / block_geoid / descriptionPrevious value: -"Fifteen-digit census block GEOID, the finest geography the Bureau publishes and the join key to decennial block data. Null when matched is false."New value: +"Fifteen-digit block GEOID: state (2) plus county (3) plus tract (6) plus block (4). The block is the finest geography the Bureau publishes and the join key to decennial block data. Null when matched is false." - added
Output schema / properties / results / items / properties / block_geoid / titleAdded value: +"Census block GEOID" - changed
Output schema / properties / results / items / properties / block_geoid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / block_group_geoid / descriptionPrevious value: -"Twelve-digit block group GEOID, the finest geography the American Community Survey publishes estimates for. Null when matched is false."New value: +"Twelve-digit block group GEOID: state (2) plus county (3) plus tract (6) plus block group (1). This is the finest geography the American Community Survey publishes estimates for - the block below it only carries decennial counts - so for income, housing or commute data this is the join key you actually want. Null when matched is false." - added
Output schema / properties / results / items / properties / block_group_geoid / titleAdded value: +"Block group GEOID" - changed
Output schema / properties / results / items / properties / block_group_geoid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / cbsa_name / descriptionPrevious value: -"Combined Statistical Area name, broader than the single metro area inside it (e.g. Washington joined with Baltimore). Null outside any CSA and when matched is false."New value: +"Name of the Combined Statistical Area containing the address. Despite the field name this is the Combined Statistical Areas layer, which is broader than the single CBSA metro area inside it, so Washington comes back joined with Baltimore. Null for addresses outside any CSA. Null when matched is false." - added
Output schema / properties / results / items / properties / cbsa_name / titleAdded value: +"Combined statistical area" - changed
Output schema / properties / results / items / properties / cbsa_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / city / descriptionPrevious value: -"Postal city of the matched address, upper case. Can differ from place_name, the legally incorporated place. Null when matched is false."New value: +"Postal city of the matched address, upper case. This is the mailing city and can differ from place_name, which is the legally incorporated place. Null when matched is false." - added
Output schema / properties / results / items / properties / city / titleAdded value: +"City" - changed
Output schema / properties / results / items / properties / city / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / congressional_district_geoid / descriptionPrevious value: -"Four-digit congressional district GEOID (state FIPS plus district), unique nationally and the join key to district-level Census tables. Null when matched is false."New value: +"Four-digit congressional district GEOID: state FIPS (2) plus district (2). Unlike congressional_district, which is a bare number repeated in every state, this is unique nationally and is the join key to district-level Census tables. Null when matched is false." - added
Output schema / properties / results / items / properties / congressional_district_geoid / titleAdded value: +"Congressional district GEOID" - changed
Output schema / properties / results / items / properties / congressional_district_geoid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / county_fips / descriptionPrevious value: -"Five-digit county GEOID (state FIPS plus county code), the county key used by ACS, BLS and most federal datasets. Null when matched is false."New value: +"Five-digit county GEOID: the two-digit state FIPS followed by the three-digit county code. This is the county key used by the American Community Survey, BLS and most other federal datasets. Null when matched is false." - added
Output schema / properties / results / items / properties / county_fips / titleAdded value: +"County FIPS code (GEOID)" - changed
Output schema / properties / results / items / properties / county_fips / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / county_name / descriptionPrevious value: -"County or county-equivalent name (parish, borough, independent city). Null when matched is false."New value: +"County or county-equivalent name (parish, borough, independent city), without the trailing word County. Null when matched is false." - added
Output schema / properties / results / items / properties / county_name / titleAdded value: +"County name" - changed
Output schema / properties / results / items / properties / county_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / input_address / descriptionPrevious value: -"The address string exactly as supplied, so results can be joined back to the source list."New value: +"The address string exactly as you supplied it, so results can be joined straight back to your source list. Rows come back in input order, one per address, including the ones that did not match." - added
Output schema / properties / results / items / properties / input_address / titleAdded value: +"Input address" - changed
Output schema / properties / results / items / properties / input_address / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / latitude / descriptionPrevious value: -"Latitude in decimal degrees, interpolated along the matched TIGER street segment (street frontage, not rooftop). Null when matched is false."New value: +"Latitude in decimal degrees. Census interpolates the point along the matched TIGER street segment, so it lands on the street frontage rather than on the rooftop or the parcel centroid. Null when matched is false." - added
Output schema / properties / results / items / properties / latitude / titleAdded value: +"Latitude" - changed
Output schema / properties / results / items / properties / latitude / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / properties / results / items / properties / longitude / descriptionPrevious value: -"Longitude in decimal degrees, same street-segment interpolation as latitude. Null when matched is false."New value: +"Longitude in decimal degrees, negative across the United States. Same street-segment interpolation as latitude. Null when matched is false." - added
Output schema / properties / results / items / properties / longitude / titleAdded value: +"Longitude" - changed
Output schema / properties / results / items / properties / longitude / typePrevious value: -"number"New value: +[ + "number", + "null" +] - changed
Output schema / properties / results / items / properties / match_count / descriptionPrevious value: -"How many candidate addresses Census returned. 1 is a clean hit; more than 1 means the address was ambiguous and the row describes only the first candidate. 0 on unmatched rows."New value: +"How many candidate addresses Census returned for this input. 1 is a clean hit. Anything above 1 means the address was ambiguous and the row describes only the first candidate - '1 Main St, Springfield, MA' returns 3. 0 on rows that did not match. Use it to quarantine addresses a human should re-check." - added
Output schema / properties / results / items / properties / match_count / titleAdded value: +"Number of candidate matches" - changed
Output schema / properties / results / items / properties / match_count / typePrevious value: -"integer"New value: +[ + "integer", + "null" +] - changed
Output schema / properties / results / items / properties / matched / descriptionPrevious value: -"True when the Census geocoder returned at least one candidate for the address. False rows carry every other field as null rather than being dropped."New value: +"True when the Census geocoder returned at least one candidate for the address. False rows are still written to the dataset, with every other field null, so a bad address is visibly different from a lost one." - added
Output schema / properties / results / items / properties / matched / titleAdded value: +"Match found" - changed
Output schema / properties / results / items / properties / matched / typePrevious value: -"boolean"New value: +[ + "boolean", + "null" +] - changed
Output schema / properties / results / items / properties / matched_address / descriptionPrevious value: -"The address as Census standardised it: upper case, standardised street type, and the ZIP it actually resolved to. Null when matched is false."New value: +"The address as Census normalised it: upper case, standardised street type, and the ZIP it actually resolved to. Use this rather than your input when de-duplicating. Null when matched is false." - added
Output schema / properties / results / items / properties / matched_address / titleAdded value: +"Standardised address" - changed
Output schema / properties / results / items / properties / matched_address / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / metro_area_name / descriptionPrevious value: -"Name of the Core Based Statistical Area (the actual metro or micro area) containing the address. Null outside any CBSA and when matched is false."New value: +"Name of the Core Based Statistical Area containing the address - the actual metro area, distinct from the broader cbsa_name column, which despite its name carries the Combined Statistical Area that can bundle several metros together. Rural addresses return their micropolitan area here instead. Null outside any CBSA and when matched is false." - added
Output schema / properties / results / items / properties / metro_area_name / titleAdded value: +"Metro or micro area (CBSA)" - changed
Output schema / properties / results / items / properties / metro_area_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / place_geoid / descriptionPrevious value: -"Seven-digit place GEOID, the join key to Census place-level tables since place names repeat across states. Null when matched is false."New value: +"Seven-digit place GEOID: state (2) plus place (5). Join key to Census place-level tables. Place names repeat across states, so join on this rather than place_name. Null in unincorporated territory and when matched is false." - added
Output schema / properties / results / items / properties / place_geoid / titleAdded value: +"Incorporated place GEOID" - changed
Output schema / properties / results / items / properties / place_geoid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / place_name / descriptionPrevious value: -"Name of the incorporated place (city, town, village) containing the address. Null in unincorporated territory and when matched is false."New value: +"Name of the incorporated place (city, town, village) containing the address, from the Census Places layer. It can differ from the postal city, and it is null for addresses in unincorporated territory. Null when matched is false." - added
Output schema / properties / results / items / properties / place_name / titleAdded value: +"Incorporated place" - changed
Output schema / properties / results / items / properties / place_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / school_district_name / descriptionPrevious value: -"Name of the school district containing the address; a unified district where one exists, otherwise the elementary or secondary district per school_district_type. Null when matched is false."New value: +"Name of the school district containing the address. Unified districts are reported where they exist; in states that split schooling, the elementary district is reported and school_district_type says which. The single strongest predictor in US residential property pricing, and normally only obtainable one state at a time. Null when matched is false." - added
Output schema / properties / results / items / properties / school_district_name / titleAdded value: +"School district" - changed
Output schema / properties / results / items / properties / school_district_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - added
Output schema / properties / results / items / properties / state / titleAdded value: +"State" - changed
Output schema / properties / results / items / properties / state / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / state_fips / descriptionPrevious value: -"Two-digit state FIPS code, the first component of every Census GEOID. Null when matched is false."New value: +"Two-digit state FIPS code, 11 for the District of Columbia and 36 for New York. It is the first component of every Census GEOID and the join key to state-level Census tables. Null when matched is false." - added
Output schema / properties / results / items / properties / state_fips / titleAdded value: +"State FIPS code" - changed
Output schema / properties / results / items / properties / state_fips / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / tract_geoid / descriptionPrevious value: -"Eleven-digit census tract GEOID, the join key for American Community Survey tract tables. Null when matched is false."New value: +"Eleven-digit tract GEOID: state (2) plus county (3) plus tract (6). This is the join key for American Community Survey tract tables and for almost every tract-level demographic product. Null when matched is false." - added
Output schema / properties / results / items / properties / tract_geoid / titleAdded value: +"Census tract GEOID" - changed
Output schema / properties / results / items / properties / tract_geoid / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / urban_rural / descriptionPrevious value: -"Census urban/rural classification of the containing block: U for urban, R for rural. Null when matched is false."New value: +"Census urban/rural classification of the containing block: U for urban, R for rural. This is the Bureau's own definition, not a population guess, and it is the standard filter for rural-eligibility programmes such as USDA lending. Null when matched is false." - added
Output schema / properties / results / items / properties / urban_rural / titleAdded value: +"Urban or rural" - changed
Output schema / properties / results / items / properties / urban_rural / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / vintage_name / descriptionPrevious value: -"The geography vintage that actually answered, echoed back by the API on every row."New value: +"The geography vintage that actually answered, echoed back by the API. Tract and block boundaries are redrawn between vintages, so two rows with the same tract_geoid only describe the same ground when this column agrees." - added
Output schema / properties / results / items / properties / vintage_name / titleAdded value: +"Geography vintage used" - changed
Output schema / properties / results / items / properties / vintage_name / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / zcta / descriptionPrevious value: -"Five-digit ZIP Code Tabulation Area containing the point, the only ZIP-shaped geography the Bureau actually publishes data for. Can differ from zip. Null when matched is false."New value: +"Five-digit ZCTA containing the point. A ZCTA is the Census areal approximation of a ZIP code and is the only ZIP-shaped geography the Bureau publishes data for; it often differs from the mailing zip, as the White House shows with ZIP 20500 inside ZCTA 20006. Join demographic data on this, mail on zip. Null when matched is false." - added
Output schema / properties / results / items / properties / zcta / titleAdded value: +"ZIP Code Tabulation Area" - changed
Output schema / properties / results / items / properties / zcta / typePrevious value: -"string"New value: +[ + "string", + "null" +] - changed
Output schema / properties / results / items / properties / zip / descriptionPrevious value: -"Five-digit ZIP code Census resolved the address to, kept as a string so leading zeros survive export. Null when matched is false."New value: +"Five-digit ZIP code Census resolved the address to, which is not always the ZIP you submitted. Kept as a string so leading zeros survive export to CSV or Excel. Null when matched is false." - added
Output schema / properties / results / items / properties / zip / titleAdded value: +"ZIP code" - changed
Output schema / properties / results / items / properties / zip / typePrevious value: -"string"New value: +[ + "string", + "null" +] - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "input_address", - "matched", - "match_count" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
us_contractor_license_search22 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Input schema / properties / states / maxItemsAdded value: +100 - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of normalized, source-tagged contractor-license records matching the search query." - changed
Output schema / properties / results / items / properties / business_entity / descriptionPrevious value: -"Legal form held for the licensee, from the licence detail page (requires include_details)."New value: +"Legal form CSLB holds for the licensee, from the licence detail page." - added
Output schema / properties / results / items / properties / business_entity / titleAdded value: +"Business entity type" - changed
Output schema / properties / results / items / properties / business_name / descriptionPrevious value: -"Business name value returned by the upstream source."New value: +"Structured business name value returned by the upstream source." - added
Output schema / properties / results / items / properties / business_name / titleAdded value: +"Business Name" - changed
Output schema / properties / results / items / properties / city / descriptionPrevious value: -"City displayed for the license record."New value: +"California city displayed for the license record." - added
Output schema / properties / results / items / properties / city / titleAdded value: +"City" - changed
Output schema / properties / results / items / properties / contractor_name / descriptionPrevious value: -"Contractor or business name shown in the result."New value: +"Contractor or business name shown in the CSLB result." - added
Output schema / properties / results / items / properties / contractor_name / titleAdded value: +"Contractor name" - added
Output schema / properties / results / items / properties / license_number / titleAdded value: +"License number" - changed
Output schema / properties / results / items / properties / name_type / descriptionPrevious value: -"Structured name-type value returned by the upstream source."New value: +"Structured name type value returned by the upstream source." - added
Output schema / properties / results / items / properties / name_type / titleAdded value: +"Name Type" - changed
Output schema / properties / results / items / properties / source / descriptionPrevious value: -"State licence registry that produced the record (california or oregon)."New value: +"Structured source value returned by the upstream source." - added
Output schema / properties / results / items / properties / source / titleAdded value: +"Source" - added
Output schema / properties / results / items / properties / status / titleAdded value: +"License status" - changed
Output schema / properties / results / items / requiredPrevious value: -[ - "source" -]New value: +[ + "source", + "license_number", + "status" +] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
usaspending_contracts94 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of official federal contract and award obligation records." - added
Output schema / properties / results / items / properties / amountAdded value: +{ + "description": "Structured amount value returned by the upstream source.", + "title": "Amount", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / assistance_listingsAdded value: +{ + "description": "Every CFDA program attached to the award as 'number title', comma separated and capped at ten.", + "title": "Assistance listings", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / awardDateRemoved value: -{ - "description": "Action signing date in YYYY-MM-DD format.", - "type": "string" -} - removed
Output schema / properties / results / items / properties / awardDescriptionRemoved value: -{ - "description": "Executive summary statement of the contracted goods or defense services.", - "type": "string" -} - added
Output schema / properties / results / items / properties / award_familyAdded value: +{ + "description": "Structured award family value returned by the upstream source.", + "title": "Award Family", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / award_idAdded value: +{ + "description": "USAspending-generated federal award identifier.", + "title": "Award identifier", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / award_typeAdded value: +{ + "description": "Structured award type value returned by the upstream source.", + "title": "Award Type", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / award_type_codeAdded value: +{ + "description": "Raw federal award type code behind the award type description - A-D for contracts, IDV_A-IDV_E for vehicles, 02-05 grants, 06/10 direct payments, 07/08 loans. Requires Fetch full award details.", + "title": "Award type code", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / awardingAgencyRemoved value: -{ - "description": "Federal department or agency authorizing the procurement contract.", - "type": "string" -} - added
Output schema / properties / results / items / properties / awarding_agencyAdded value: +{ + "description": "Structured awarding agency value returned by the upstream source.", + "title": "Awarding Agency", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / awarding_agency_codeAdded value: +{ + "description": "Top-tier CGAC code of the agency that made the award.", + "title": "Awarding agency code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / awarding_officeAdded value: +{ + "description": "Contracting office that issued the award, one level below the sub-agency. Requires Fetch full award details.", + "title": "Awarding office", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / awarding_sub_agencyAdded value: +{ + "description": "Structured awarding sub agency value returned by the upstream source.", + "title": "Awarding Sub Agency", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / awarding_sub_agency_codeAdded value: +{ + "description": "Sub-tier code of the awarding office's parent component.", + "title": "Awarding sub-agency code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / base_and_all_optionsAdded value: +{ + "description": "Total contract ceiling if every option is exercised - the number a competitor's pipeline is sized on. Requires Fetch full award details.", + "title": "Base and all options (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / base_exercised_optionsAdded value: +{ + "description": "Award value including options exercised so far. Requires Fetch full award details.", + "title": "Base and exercised options (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / base_obligation_dateAdded value: +{ + "description": "Date of the earliest obligating action on the award. Populated for every award family, including the ones with no period of performance.", + "title": "Base obligation date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / cfda_numberAdded value: +{ + "description": "Structured cfda number value returned by the upstream source.", + "title": "Cfda Number", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / cfda_program_titleAdded value: +{ + "description": "Title of the CFDA / Assistance Listings program that funded this grant, loan or direct payment.", + "title": "Assistance program title", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / contractIdRemoved value: -{ - "description": "Unique federal procurement award ID (PIID or FAIN).", - "type": "string" -} - added
Output schema / properties / results / items / properties / contract_pricing_typeAdded value: +{ + "description": "Pricing arrangement, for example firm fixed price or cost plus fixed fee. Requires Fetch full award details.", + "title": "Contract pricing type", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / covid19_obligationsAdded value: +{ + "description": "Portion of the award obligated from COVID-19 supplemental appropriations.", + "title": "COVID-19 obligations (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / covid19_outlaysAdded value: +{ + "description": "Portion of the award actually paid out from COVID-19 supplemental appropriations.", + "title": "COVID-19 outlays (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / date_signedAdded value: +{ + "description": "Date the award was signed, which can precede the period of performance. Requires Fetch full award details.", + "title": "Date signed", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / def_codesAdded value: +{ + "description": "DEFC codes tying the award to emergency appropriations such as COVID-19 relief or infrastructure, comma separated.", + "title": "Disaster emergency fund codes", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / descriptionAdded value: +{ + "description": "Structured description value returned by the upstream source.", + "title": "Description", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / end_dateAdded value: +{ + "description": "Structured end date value returned by the upstream source.", + "title": "End Date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / executive_compensationAdded value: +{ + "description": "Named executives of the awardee and their reported pay, comma separated and capped at five. Requires Fetch full award details.", + "title": "Executive compensation", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / extent_competedAdded value: +{ + "description": "How openly the contract was competed. Requires Fetch full award details.", + "title": "Extent competed", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / funding_agencyAdded value: +{ + "description": "Top-tier agency whose appropriation paid for the award, which is often not the agency that awarded it.", + "title": "Funding agency", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / funding_agency_codeAdded value: +{ + "description": "Top-tier CGAC code of the agency that funded the award.", + "title": "Funding agency code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / funding_officeAdded value: +{ + "description": "Office whose funds paid for the award. Requires Fetch full award details.", + "title": "Funding office", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / funding_opportunity_numberAdded value: +{ + "description": "Grant funding opportunity announcement this assistance award was made under. Requires Fetch full award details.", + "title": "Funding opportunity number", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / funding_sub_agencyAdded value: +{ + "description": "Sub-tier component whose budget funded the award.", + "title": "Funding sub-agency", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / funding_sub_agency_codeAdded value: +{ + "description": "Sub-tier code of the funding component.", + "title": "Funding sub-agency code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / infrastructure_obligationsAdded value: +{ + "description": "Portion of the award obligated from Infrastructure Investment and Jobs Act appropriations.", + "title": "Infrastructure obligations (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / infrastructure_outlaysAdded value: +{ + "description": "Portion of the award actually paid out from Infrastructure Investment and Jobs Act appropriations.", + "title": "Infrastructure outlays (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / issued_dateAdded value: +{ + "description": "Date the loan was issued. Loans carry this instead of a period of performance.", + "title": "Loan issue date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / last_date_to_orderAdded value: +{ + "description": "Final date an order can be placed against this IDV - when the vehicle stops being sellable.", + "title": "Last date to order", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / last_modified_dateAdded value: +{ + "description": "Timestamp of the most recent update to this award record in the federal source systems.", + "title": "Last modified", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / naics_codeAdded value: +{ + "description": "Structured naics code value returned by the upstream source.", + "title": "Naics Code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / naics_descriptionAdded value: +{ + "description": "Structured naics description value returned by the upstream source.", + "title": "Naics Description", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / naics_sector_codeAdded value: +{ + "description": "Two-digit NAICS sector the detailed industry code rolls up to. Requires Fetch full award details.", + "title": "NAICS sector code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / naics_sector_descriptionAdded value: +{ + "description": "Name of the two-digit NAICS sector. Requires Fetch full award details.", + "title": "NAICS sector", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / non_federal_fundingAdded value: +{ + "description": "Cost share contributed by the recipient or other non-federal sources. Requires Fetch full award details.", + "title": "Non-federal funding (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / number_of_offers_receivedAdded value: +{ + "description": "Number of bids received on the solicitation - how crowded the competition was. Requires Fetch full award details.", + "title": "Offers received", + "type": [ + "integer", + "null" + ] +} - removed
Output schema / properties / results / items / properties / obligationAmountRemoved value: -{ - "description": "Total monetary obligation amount funded by the federal government in USD.", - "type": "number" -} - added
Output schema / properties / results / items / properties / other_than_full_and_openAdded value: +{ + "description": "FAR authority cited when the award was not fully competed. Requires Fetch full award details.", + "title": "Sole-source justification", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / parent_award_idAdded value: +{ + "description": "PIID of the IDV or contract vehicle this order was placed against. Requires Fetch full award details.", + "title": "Parent award ID", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / parent_award_typeAdded value: +{ + "description": "Type of the parent contract vehicle, for example IDC, BPA or GWAC. Requires Fetch full award details.", + "title": "Parent award type", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / parent_recipient_nameAdded value: +{ + "description": "Ultimate parent company of the awardee, which rolls subsidiaries up to the corporate group. Requires Fetch full award details.", + "title": "Parent company", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / parent_recipient_ueiAdded value: +{ + "description": "Unique Entity Identifier of the awardee's ultimate parent. Requires Fetch full award details.", + "title": "Parent company UEI", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_cityAdded value: +{ + "description": "Structured pop city value returned by the upstream source.", + "title": "Pop City", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_congressional_districtAdded value: +{ + "description": "Congressional district where the work is performed. Requires Fetch full award details.", + "title": "Place of performance district", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_countryAdded value: +{ + "description": "Country where the work is performed.", + "title": "Place of performance country", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_country_codeAdded value: +{ + "description": "Three-letter country code of the place of performance.", + "title": "Place of performance country code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_countyAdded value: +{ + "description": "County where the work is performed. Requires Fetch full award details.", + "title": "Place of performance county", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_stateAdded value: +{ + "description": "Structured pop state value returned by the upstream source.", + "title": "Pop State", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / pop_zipAdded value: +{ + "description": "Structured pop zip value returned by the upstream source.", + "title": "Pop Zip", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / potential_end_dateAdded value: +{ + "description": "End date if every option is exercised, as against the current end date. Requires Fetch full award details.", + "title": "Potential end date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / psc_category_codeAdded value: +{ + "description": "Single-letter Product Service Code category the detailed PSC rolls up to. Requires Fetch full award details.", + "title": "PSC category code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / psc_category_descriptionAdded value: +{ + "description": "Name of the Product Service Code category. Requires Fetch full award details.", + "title": "PSC category", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / psc_codeAdded value: +{ + "description": "Structured psc code value returned by the upstream source.", + "title": "Psc Code", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / psc_descriptionAdded value: +{ + "description": "Structured psc description value returned by the upstream source.", + "title": "Psc Description", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / properties / recipientNameRemoved value: -{ - "description": "Legal business or institutional name of the award recipient.", - "type": "string" -} - added
Output schema / properties / results / items / properties / recipient_addressAdded value: +{ + "description": "Awardee street address; the source's up-to-three address lines joined with a comma.", + "title": "Recipient street address", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_business_categoriesAdded value: +{ + "description": "Socio-economic and entity classifications of the awardee - small business, 8(a), veteran owned, nonprofit and so on - comma separated. Requires Fetch full award details.", + "title": "Recipient business categories", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_cityAdded value: +{ + "description": "City where the awardee is based, as distinct from where the work is performed.", + "title": "Recipient city", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_congressional_districtAdded value: +{ + "description": "Congressional district of the awardee's location. Requires Fetch full award details.", + "title": "Recipient congressional district", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_countryAdded value: +{ + "description": "Country of the awardee's own location.", + "title": "Recipient country", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_countyAdded value: +{ + "description": "County of the awardee's own location. Requires Fetch full award details.", + "title": "Recipient county", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_nameAdded value: +{ + "description": "Structured recipient name value returned by the upstream source.", + "title": "Recipient Name", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_profile_urlAdded value: +{ + "description": "USAspending.gov profile page for this recipient, showing every award it has received.", + "title": "Recipient profile URL", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_stateAdded value: +{ + "description": "Two-letter state code of the awardee's own location.", + "title": "Recipient state", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / recipient_ueiAdded value: +{ + "description": "Unique Entity Identifier of the awardee - the SAM.gov successor to DUNS, and the key you join federal award data on.", + "title": "Recipient UEI", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / set_aside_typeAdded value: +{ + "description": "Socio-economic set-aside the contract was reserved under, for example 8(a), SDVOSB or HUBZone. Requires Fetch full award details.", + "title": "Set-aside type", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / solicitation_idAdded value: +{ + "description": "Identifier of the solicitation this award came from, for tying the award back to the original opportunity. Requires Fetch full award details.", + "title": "Solicitation ID", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / solicitation_proceduresAdded value: +{ + "description": "Procurement procedure used to solicit the award. Requires Fetch full award details.", + "title": "Solicitation procedures", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / start_dateAdded value: +{ + "description": "Structured start date value returned by the upstream source.", + "title": "Start Date", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / subaward_countAdded value: +{ + "description": "Number of subawards reported under this award. Requires Fetch full award details.", + "title": "Subaward count", + "type": [ + "integer", + "null" + ] +} - added
Output schema / properties / results / items / properties / subsidy_costAdded value: +{ + "description": "Structured subsidy cost value returned by the upstream source.", + "title": "Subsidy Cost", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / top_executive_compensationAdded value: +{ + "description": "Reported compensation of the highest-paid executive, as a sortable number. Requires Fetch full award details.", + "title": "Top executive pay (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / top_executive_nameAdded value: +{ + "description": "Highest-paid reported executive of the awardee. Requires Fetch full award details.", + "title": "Top executive", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / results / items / properties / total_fundingAdded value: +{ + "description": "Federal obligation plus non-federal cost share. Requires Fetch full award details.", + "title": "Total funding (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / total_outlaysAdded value: +{ + "description": "Structured total outlays value returned by the upstream source.", + "title": "Total Outlays", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / total_subaward_amountAdded value: +{ + "description": "Dollar value flowing to subcontractors and subrecipients under this award. Requires Fetch full award details.", + "title": "Total subaward amount (USD)", + "type": [ + "number", + "null" + ] +} - added
Output schema / properties / results / items / properties / urlAdded value: +{ + "description": "Direct URL for the source listing.", + "title": "Canonical listing URL", + "type": [ + "string", + "null" + ] +} - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "recipientName", - "obligationAmount" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
- Changed
youtube_video_search18 fields changed- added
Input schema / additionalPropertiesAdded value: +false - added
Output schema / properties / errorAdded value: +{ + "type": "object" +} - removed
Output schema / properties / results / descriptionRemoved value: -"Collection of YouTube video search result records." - added
Output schema / properties / results / items / properties / channel_name / titleAdded value: +"Channel name" - added
Output schema / properties / results / items / properties / channel_url / titleAdded value: +"Channel URL" - added
Output schema / properties / results / items / properties / duration / titleAdded value: +"Video duration" - changed
Output schema / properties / results / items / properties / published / descriptionPrevious value: -"Relative publication age displayed in search results (e.g. '2 years ago')."New value: +"Relative publication time displayed in search results." - added
Output schema / properties / results / items / properties / published / titleAdded value: +"Displayed publication age" - changed
Output schema / properties / results / items / properties / title / descriptionPrevious value: -"Public title of the video."New value: +"Public title of the YouTube video." - added
Output schema / properties / results / items / properties / title / titleAdded value: +"Video title" - added
Output schema / properties / results / items / properties / video_url / titleAdded value: +"Video URL" - changed
Output schema / properties / results / items / properties / view_count / descriptionPrevious value: -"'views' parsed into a number, handling K/M/B suffixes and comma grouping."New value: +"'views' parsed into a number, handling K/M/B suffixes and comma grouping. Null if unparseable." - added
Output schema / properties / results / items / properties / view_count / titleAdded value: +"View count" - added
Output schema / properties / results / items / properties / views / titleAdded value: +"Displayed view count" - removed
Output schema / properties / results / items / requiredRemoved value: -[ - "title", - "video_url" -] - added
Output schema / properties / runAdded value: +{ + "type": "object" +} - added
Output schema / properties / statusAdded value: +{ + "enum": [ + "success", + "empty_unverified", + "partial", + "error" + ], + "type": "string" +} - changed
Output schema / requiredPrevious value: -[ - "results" -]New value: +[ + "results", + "status" +]
8 tool updates
v1.0.13- Added
cve_vulnerability_intelligence - Added
google_autocomplete_keywords - Added
google_news_search - Added
grants_gov_opportunity_search - Added
nhtsa_vehicle_recall_search - Added
ofac_sanctions_search - Added
sec_form_4_insider_transactions - Added
ted_eu_tender_search
19 tool updates
v1.0.11- Added
alabama_business_search - Added
california_contractor_license_search - Added
clinical_trials_search - Added
cms_healthcare_provider_search - Added
epa_facility_search - Added
europe_pmc_paper_search - Added
fec_campaign_finance_search - Added
florida_new_filings_search - Added
florida_officer_search - Added
french_company_search - Added
gleif_lei_search - Added
google_play_reviews_search - Added
linkedin_jobs_search - Added
openfda_search - Added
tech_stack_detector - Added
us_business_entity_search - Added
us_census_geocoder - Added
us_contractor_license_search - Added
youtube_video_search
6 tool updates
v1.0.6- Changed
airbnb_listings_search6 fields changed- changed
Input schema / properties / location / descriptionPrevious value: -"e.g. 'Austin, TX' or 'Miami, FL'"New value: +"Destination metropolitan city, tourist region, or geographic market (e.g. 'Austin, TX', 'Miami, FL', or 'Denver, CO')." - added
Input schema / properties / location / minLengthAdded value: +2 - added
Input schema / properties / max_results / descriptionAdded value: +"Maximum number of rental properties to retrieve. Integer between 1 and 100. Defaults to 10." - added
Input schema / properties / max_results / maximumAdded value: +100 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "description": "Collection of short-term vacation rental property listings extracted from Airbnb.", + "items": { + "properties": { + "listingName": { + "description": "Headline property title or host description.", + "type": "string" + }, + "listingUrl": { + "description": "Canonical HTTPS link to the Airbnb listing reservation page.", + "type": "string" + }, + "pricePerNight": { + "description": "Nightly accommodation tariff rate in local currency.", + "type": "string" + }, + "rating": { + "description": "Aggregate guest cleanliness and satisfaction score on a 1.0 to 5.0 scale.", + "type": "number" + }, + "reviewCount": { + "description": "Total number of verified guest reviews posted for the property.", + "type": "integer" + }, + "roomType": { + "description": "Accommodation category (e.g. Entire home, Private room, Hotel room).", + "type": "string" + } + }, + "required": [ + "listingName", + "pricePerNight" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
glassdoor_jobs_search8 fields changed- changed
Input schema / properties / job_title / descriptionPrevious value: -"e.g. 'Software Engineer'"New value: +"Target job title, professional role, or occupational keyword (e.g. 'Software Engineer', 'Data Analyst', or 'DevOps Architect')." - added
Input schema / properties / job_title / minLengthAdded value: +2 - added
Input schema / properties / location / defaultAdded value: +"" - changed
Input schema / properties / location / descriptionPrevious value: -"e.g. 'Austin, TX' or 'Remote'"New value: +"Geographic municipality, metropolitan area, or 'Remote' filter (e.g. 'Austin, TX' or 'New York, NY'). Defaults to all locations if empty." - added
Input schema / properties / max_results / descriptionAdded value: +"Maximum number of active job listings to retrieve. Integer between 1 and 100. Defaults to 10." - added
Input schema / properties / max_results / maximumAdded value: +100 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "description": "Collection of active employment job postings extracted from Glassdoor.", + "items": { + "properties": { + "companyName": { + "description": "Name of the recruiting employer or corporate entity.", + "type": "string" + }, + "jobTitle": { + "description": "Official employment position or vacancy title.", + "type": "string" + }, + "jobUrl": { + "description": "Direct canonical URL to the employment application posting.", + "type": "string" + }, + "location": { + "description": "Geographic workplace location or remote designation.", + "type": "string" + }, + "rating": { + "description": "Employer workplace review rating on a 1.0 to 5.0 scale.", + "type": "number" + }, + "salaryEstimate": { + "description": "Estimated annual or hourly compensation range when published.", + "type": "string" + } + }, + "required": [ + "jobTitle", + "companyName" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
google_maps_search6 fields changed- changed
Input schema / properties / max_results / descriptionPrevious value: -"Number of leads to retrieve (1-100)"New value: +"Maximum count of business lead records to extract and return. Defaults to 10." - added
Input schema / properties / max_results / maximumAdded value: +100 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Input schema / properties / search_query / descriptionPrevious value: -"e.g. 'HVAC contractors in Phoenix, AZ'"New value: +"Geographic search query combining target trade category and municipal market location (e.g. 'HVAC contractors in Phoenix, AZ' or 'Commercial Electricians Dallas TX')." - added
Input schema / properties / search_query / minLengthAdded value: +3 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "description": "Collection of verified commercial business entity records extracted from Google Maps.", + "items": { + "properties": { + "address": { + "description": "Full formatted postal street address including city, state, and ZIP.", + "type": "string" + }, + "categoryName": { + "description": "Primary industry classification or business trade category.", + "type": "string" + }, + "phone": { + "description": "Primary commercial telephone number with regional area code.", + "type": "string" + }, + "reviewsCount": { + "description": "Total count of public Google reviews submitted by customers.", + "type": "integer" + }, + "title": { + "description": "Trading name or legal corporate title of the business.", + "type": "string" + }, + "totalScore": { + "description": "Aggregate customer review rating on a 1.0 to 5.0 scale.", + "type": "number" + }, + "url": { + "description": "Direct canonical Google Maps place URL.", + "type": "string" + }, + "website": { + "description": "Canonical HTTP/HTTPS business website or landing page.", + "type": "string" + } + }, + "required": [ + "title", + "address" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
sec_edgar_filings8 fields changed- changed
Input schema / properties / form_type / descriptionPrevious value: -"10-K, 10-Q, or 8-K"New value: +"SEC form classification: '10-K' for annual reports, '10-Q' for quarterly reports, '8-K' for material events, or 'ALL' for any filing." - added
Input schema / properties / form_type / enumAdded value: +[ + "10-K", + "10-Q", + "8-K", + "ALL" +] - added
Input schema / properties / max_results / descriptionAdded value: +"Maximum count of chronological filing records to retrieve. Defaults to 5." - added
Input schema / properties / max_results / maximumAdded value: +50 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Input schema / properties / ticker / descriptionPrevious value: -"e.g. 'AAPL' or 'NVDA'"New value: +"Public stock ticker symbol or official company name (e.g. 'AAPL', 'NVDA', or 'Tesla Inc')." - added
Input schema / properties / ticker / minLengthAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "description": "Collection of official SEC EDGAR corporate regulatory filing disclosures.", + "items": { + "properties": { + "accessionNumber": { + "description": "Unique SEC EDGAR document accession identifier.", + "type": "string" + }, + "cik": { + "description": "Central Index Key (CIK) ten-digit company identifier assigned by the SEC.", + "type": "string" + }, + "companyName": { + "description": "Official registered legal name of the filing corporation.", + "type": "string" + }, + "documentUrl": { + "description": "Canonical HTTPS link to the full filing disclosure on SEC.gov.", + "type": "string" + }, + "filingDate": { + "description": "Official chronological submission date in YYYY-MM-DD format.", + "type": "string" + }, + "formType": { + "description": "Regulatory filing form designation code (e.g. 10-K, 10-Q, 8-K).", + "type": "string" + } + }, + "required": [ + "formType", + "filingDate", + "documentUrl" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
twitch_live_streams7 fields changed- added
Input schema / properties / game_name / defaultAdded value: +"" - changed
Input schema / properties / game_name / descriptionPrevious value: -"e.g. 'Fortnite' or 'Just Chatting'"New value: +"Specific video game title or streaming category filter (e.g. 'Fortnite', 'Minecraft', or 'Just Chatting'). Leave empty for top streams across all categories." - added
Input schema / properties / language / descriptionAdded value: +"ISO 639-1 language code filter for the live broadcast (e.g. 'en' for English, 'es' for Spanish, 'fr' for French). Defaults to 'en'." - added
Input schema / properties / max_results / descriptionAdded value: +"Maximum number of live stream channels to return. Integer between 1 and 100. Defaults to 10." - added
Input schema / properties / max_results / maximumAdded value: +100 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "description": "Collection of active real-time Twitch stream broadcast records.", + "items": { + "properties": { + "channelName": { + "description": "Twitch username or broadcaster channel handle.", + "type": "string" + }, + "gameName": { + "description": "Primary game title or stream category.", + "type": "string" + }, + "language": { + "description": "Language code of the broadcast.", + "type": "string" + }, + "streamTitle": { + "description": "Broadcaster headline title for the active live session.", + "type": "string" + }, + "streamUrl": { + "description": "Canonical HTTPS stream link to the live broadcast channel.", + "type": "string" + }, + "viewerCount": { + "description": "Number of concurrent live spectators actively watching the stream.", + "type": "integer" + } + }, + "required": [ + "channelName", + "viewerCount" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
- Changed
usaspending_contracts6 fields changed- added
Input schema / properties / max_results / descriptionAdded value: +"Maximum number of federal contract award records to retrieve. Defaults to 10." - added
Input schema / properties / max_results / maximumAdded value: +100 - added
Input schema / properties / max_results / minimumAdded value: +1 - changed
Input schema / properties / recipient_name / descriptionPrevious value: -"e.g. 'Lockheed Martin' or 'Palantir'"New value: +"Legal entity name of the prime contractor, corporate vendor, or recipient institution (e.g. 'Lockheed Martin', 'Palantir Technologies', or 'Boeing')." - added
Input schema / properties / recipient_name / minLengthAdded value: +2 - changed
Output schema / (root)Previous value: -nullNew value: +{ + "properties": { + "results": { + "description": "Collection of official federal contract and award obligation records.", + "items": { + "properties": { + "awardDate": { + "description": "Action signing date in YYYY-MM-DD format.", + "type": "string" + }, + "awardDescription": { + "description": "Executive summary statement of the contracted goods or defense services.", + "type": "string" + }, + "awardingAgency": { + "description": "Federal department or agency authorizing the procurement contract.", + "type": "string" + }, + "contractId": { + "description": "Unique federal procurement award ID (PIID or FAIN).", + "type": "string" + }, + "obligationAmount": { + "description": "Total monetary obligation amount funded by the federal government in USD.", + "type": "number" + }, + "recipientName": { + "description": "Legal business or institutional name of the award recipient.", + "type": "string" + } + }, + "required": [ + "recipientName", + "obligationAmount" + ], + "type": "object" + }, + "type": "array" + } + }, + "required": [ + "results" + ], + "type": "object" +}
6 tool updates
v0.1.0- First observed
airbnb_listings_search - First observed
glassdoor_jobs_search - First observed
google_maps_search - First observed
sec_edgar_filings - First observed
twitch_live_streams - First observed
usaspending_contracts
TDQS
Scored across 40 tools
Most tools are clearly distinguished by data source (e.g., app_store vs google_play, linkedin vs glassdoor, sec_edgar vs sec_form_4). The main ambiguity comes from aggregator/subset pairs like company_registry_search vs french_company_search vs gleif_lei_search, and us_business_entity_search vs its state-specific tools, but the detailed 'When NOT to use' and 'Named alternatives' sections resolve this for an agent that reads them.
The large majority follow a snake_case source_subject_search pattern (e.g., epa_facility_search, nhtsa_vehicle_recall_search, linkedin_jobs_search), which is predictable and scannable. A minority use noun-phrase or action names (twitch_live_streams, usaspending_contracts, us_census_geocoder, tech_stack_detector), but there is no camelCase mixing and the overall style remains consistent.
At 40 tools, the set is well beyond the 25+ threshold that reads as too many, and the broad 'public data & leads' purpose does not justify the granular duplication: three contractor-license tools, five business-entity tools, and two overlapping company-registry tools. The count could be meaningfully trimmed by keeping only the multi-state/multi-platform aggregators and dropping the single-state/single-dataset variants.
The set covers a wide swath of public-data categories, including business registries, contractor licenses, jobs, app reviews, biomedical research, government contracting, and security vulnerabilities. However, for a server branded as 'Leads', it lacks general web search, people/contact enrichment, and most US state business registries, leaving notable gaps that agents must work around.
Maintenance
Related MCP Connectors
Scraping API for Google Search, Maps, Flights, Jobs, YouTube, LinkedIn, Trustpilot and more.
Google Maps business leads via Apify: name, phone, website, rating.
Extract data from any website with thousands of scrapers, crawlers, and automations on Apify Store ⚡
Hiring, SEC, research papers, GitHub & Hacker News as JSON for AI agents. Pay-per-result on Apify.
Related MCP Servers
AlicenseAqualityAmaintenanceUse 3,000+ pre-built cloud tools from Apify, known as Actors, to extract data from websites, e-commerce, social media, search engines, maps, and more1027,480 npm9,184MIT- AlicenseAqualityNot gradedmaintenanceUnified API for Government Data and Web Scraping100-
- AlicenseNot gradedqualityDmaintenanceEnables web scraping, browser automation, and dataset management through Apify's actor platform.MIT
- AlicenseAqualityBmaintenanceExposes 29 official business-registry actors as MCP tools for KYC/AML, beneficial-owner (UBO), credit-risk and adverse-media workflows across 11 jurisdictions (EU, US, UAE). Sourced via Apify; pay-per-result.386MIT