U.S. Public Record API Operated by Folio Insights LLC

← Back to docs

Using Folio as a data layer for AI research agents

Folio is a public-record data layer. It surfaces structured information from U.S. government sources — the USPTO trademark corpus, patent and trademark assignment records, TTAB opposition and cancellation proceedings, and the FDA National Drug Code directory — as a single JSON API an agent can query by party name.

This guide explains how AI research agents use Folio as part of due-diligence and monitoring workflows: what questions each dataset answers, how to frame queries, and how to interpret the responses.

What Folio provides

All Folio data comes from public sources: USPTO bulk files (updated weekly), TTAB public records (1996–present), and the FDA NDC directory (current snapshot). Folio normalizes these sources into a consistent JSON shape so an agent doesn't need to parse XML bulk files, navigate agency portals, or manage schema differences between datasets.

An agent gets the same data a researcher would retrieve manually from USPTO TESS, the TTAB eDIA system, or the FDA NDC portal — formatted for programmatic use, queryable by name.

IP filings: product-launch context

Trademark filings are one of the earliest public records of a company's intent to bring a new product or brand to market. A company files a trademark application before the product is announced — sometimes months before launch — in order to secure rights to the name. The filing is immediately public in the USPTO corpus.

An agent that monitors trademark filings by owner name can surface new applications as they enter the corpus. The useful fields are mark_text (the claimed brand or product name), filing_date, intl_class (the goods/services category), and owners. Narrowing by international class — class 005 for pharmaceuticals, 009 for electronics, 042 for software services — focuses results on a specific industry.

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/trademarks/search?owner_name=Acme+Corp&status_alive_only=true&filing_date_from=2026-01-01&limit=50"

Patent assignment records extend this picture: an assignment to a new entity, or from a subsidiary to a parent, can reflect licensing activity, corporate restructuring, or portfolio preparation ahead of a product launch or partnership. The convey_type field describes the nature of the transfer.

TTAB proceedings: dispute context

The Trademark Trial and Appeal Board (TTAB) handles inter partes proceedings — oppositions filed against pending trademark applications, and petitions to cancel existing registrations. These proceedings are public from filing through final decision, including party names, filing dates, and status.

Searching TTAB proceedings by party name gives an agent visibility into whether a company is actively protecting a trademark portfolio (as opposer) or defending an application against challenge (as respondent). An opposition can indicate that a pending mark conflicts with an existing registration — relevant context for due-diligence research on a brand or product name.

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/ttab/proceedings?party_name=Acme+Corp&limit=20"

FDA NDC directory: drug listings

The FDA National Drug Code (NDC) directory lists every drug product commercially marketed in the United States. Each entry includes the drug name, labeler (manufacturer), application number (NDA, ANDA, BLA, or OTC monograph), dosage form, route of administration, and marketing start date.

An agent can search by drug name or labeler to retrieve structured drug-listing records. This is useful for confirming whether a drug is currently listed as commercially marketed, identifying the labeler of a product, or cross-referencing an NDC against a company's publicly stated product portfolio.

curl -H "X-API-Key: fo_live_..." \
  "https://folioapi.com/v1/drugs/search?name=atorvastatin&limit=20"

Querying by name, not identifier

The key design principle in Folio is that every dataset is queryable by party or product name rather than by government-assigned identifier (serial number, reel/frame, NDC). An agent doing research on a company doesn't know the company's USPTO serial numbers in advance — it knows the company's name. Folio's name-based search returns all matching records, paginated, so the agent can iterate through them without managing a separate identifier lookup step.

Name matching is substring-based and case-insensitive. An agent should use the most specific name fragment that reliably matches the target without over-matching — for example, Pfizer Inc rather than Pfizer alone when targeting only the parent entity, or a product code name when looking for a specific brand.

Pagination

All Folio endpoints return a total count alongside the first page of results (limit and offset). When total exceeds the page size, an agent should iterate using offset to retrieve all records. The maximum page size is 100 results. A data_freshness field on trademark and TTAB responses tells the agent the latest transaction date reflected in the corpus.

MCP quickstart

If your agent runs in Claude Code or another MCP-compatible environment, you can connect it to Folio via the official MCP server rather than making raw HTTP calls. The MCP server exposes five datasets as six named tools (the sixth, folio_list_datasets, describes the available datasets rather than querying one). See the Folio MCP server guide for connection instructions and the full tool list.

Next steps