API Reference

Folio provides structured API access to US intellectual property data. Query Delaware entity formations, USPTO trademarks, patent and trademark assignments, and TTAB proceedings from a single, consistent REST API.

All responses are JSON. Endpoints follow REST conventions with predictable pagination, error handling, and rate limiting.

Authentication

All endpoints except /v1/health require an X-API-Key header. You can get a free API key from the pricing section of the homepage.

curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/health"

Requests without a valid key receive a 401 Unauthorized response.

Rate Limits

Rate limits are applied per API key. Exceeding your tier's limits returns 429 Too Many Requests with a Retry-After header.

Tier Requests/sec Daily Limit Formation Lookback
Free 1 50 --
Pro ($49/mo) 5 5,000 24 hours
Business ($199/mo) 20 50,000 7 days
Enterprise Custom Custom 30 days

The Formation Lookback column indicates the maximum lookback window for the /v1/delaware/entities/recent endpoint. Free-tier keys cannot access this endpoint.

Response Format

Paginated Responses

List endpoints return results in an envelope with pagination metadata:

{
  "results": [...],
  "total": 142,
  "limit": 50,
  "offset": 0,
  "data_freshness": "2026-04-10"
}

The data_freshness field (present on trademark, TTAB, and assignment endpoints) indicates the date of the most recent USPTO bulk data ingestion. Delaware endpoints return live ICIS data and do not include this field.

Errors

Errors return an appropriate HTTP status code with a JSON body:

{
  "error": "at least one of owner_name, mark_name, or serial_number is required"
}

Common status codes: 400 (bad request), 401 (missing or invalid API key), 403 (tier restriction), 404 (not found), 429 (rate limit exceeded), 502 (upstream failure).

Delaware Entities

Real-time access to Delaware ICIS (Division of Corporations) entity data. Search by name or file number, or fetch a single entity by file number.

GET /v1/delaware/entities/search

Search Delaware entities by name. Returns entities matching the query string with prefix matching.

Parameter Type Required Description
q string Required Search query (min 2 characters)
limit integer Optional Results per page (default 50, max 50)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/delaware/entities/search?q=APPLE+INC&limit=2"
{
  "results": [
    {
      "file_number": 3284654,
      "entity_name": "APPLE INC.",
      "formation_date": "1977-01-03",
      "entity_kind": "Corporation",
      "entity_type": "General",
      "residency": "Domestic",
      "registered_agent": {
        "name": "CORPORATION TRUST COMPANY, THE",
        "address": "1209 ORANGE ST",
        "city": "WILMINGTON",
        "state": "DE",
        "zip": "19801"
      },
      "cached": true,
      "last_verified": "2026-04-10T14:22:00Z"
    }
  ],
  "total": 12,
  "limit": 2,
  "offset": 0
}
GET /v1/delaware/entities/{file_number}

Look up a single Delaware entity by its ICIS file number.

Parameter Type Required Description
file_number integer Required Delaware entity file number (path parameter)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/delaware/entities/3284654"
{
  "file_number": 3284654,
  "entity_name": "APPLE INC.",
  "formation_date": "1977-01-03",
  "entity_kind": "Corporation",
  "entity_type": "General",
  "residency": "Domestic",
  "registered_agent": {
    "name": "CORPORATION TRUST COMPANY, THE",
    "address": "1209 ORANGE ST",
    "city": "WILMINGTON",
    "state": "DE",
    "zip": "19801"
  },
  "cached": true,
  "last_verified": "2026-04-10T14:22:00Z"
}
GET /v1/delaware/entities/recent

List recently formed Delaware entities. The lookback window is gated by your API tier -- free-tier keys cannot access this endpoint. See the rate limits table for per-tier lookback limits.

Parameter Type Required Description
since string Required Earliest formation date (YYYY-MM-DD). Must be within your tier's lookback limit.
limit integer Optional Results per page (default 50, max 50)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/delaware/entities/recent?since=2026-04-09&limit=5"
{
  "results": [
    {
      "file_number": 10567234,
      "entity_name": "HORIZON MERGER SUB, INC.",
      "formation_date": "2026-04-09",
      "entity_kind": "Corporation",
      "entity_type": "General",
      "residency": "Domestic",
      "registered_agent": {
        "name": "CORPORATION SERVICE COMPANY",
        "address": "251 LITTLE FALLS DRIVE",
        "city": "WILMINGTON",
        "state": "DE",
        "zip": "19808"
      },
      "cached": true,
      "last_verified": "2026-04-10T08:15:00Z"
    }
  ],
  "total": 847,
  "limit": 5,
  "offset": 0
}
GET /v1/delaware/agents/stats

Registered agent frequency statistics across Delaware entities. Coming soon.

curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/delaware/agents/stats"

Trademarks

Search and retrieve USPTO trademark data. The trademark database is updated daily from USPTO bulk data files.

GET /v1/trademarks/search

Search trademarks by owner name, mark text, or serial number. At least one search parameter is required.

Parameter Type Required Description
owner_name string At least one Trademark owner name (partial match)
mark_name string At least one Mark text to search for (partial match)
serial_number string At least one USPTO serial number
status_alive_only boolean Optional Set to true to exclude dead marks
intl_class string Optional International trademark classification code
filing_date_from string Optional Earliest filing date (YYYY-MM-DD or YYYYMMDD)
filing_date_to string Optional Latest filing date (YYYY-MM-DD or YYYYMMDD)
limit integer Optional Results per page (default 50, max 100)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/trademarks/search?owner_name=Apple+Inc&status_alive_only=true&limit=2"
{
  "results": [
    {
      "serial_number": "97120345",
      "mark_text": "APPLE VISION PRO",
      "status_code": "800",
      "filing_date": "2022-09-12",
      "transaction_date": "2024-01-15",
      "owners": ["Apple Inc."]
    }
  ],
  "total": 847,
  "limit": 2,
  "offset": 0,
  "data_freshness": "2026-04-10"
}
GET /v1/trademarks/{serial_number}

Get full details for a single trademark by its serial number, including owners, classifications, design search codes, and statements.

Parameter Type Required Description
serial_number string Required USPTO serial number (path parameter)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/trademarks/97120345"
{
  "serial_number": "97120345",
  "mark_text": "APPLE VISION PRO",
  "status_code": "800",
  "filing_date": "2022-09-12",
  "registration_number": "7234567",
  "registration_date": "2024-01-15",
  "transaction_date": "2024-01-15",
  "attorney_name": "J. SMITH",
  "owners": [
    {
      "owner_name": "Apple Inc.",
      "city": "Cupertino",
      "state": "CA",
      "country": "US"
    }
  ],
  "classifications": ["009", "042"],
  "data_freshness": "2026-04-10"
}
GET /v1/trademarks/{serial_number}/events

Get the event and transaction history for a trademark. Events are ordered by date descending.

Parameter Type Required Description
serial_number string Required USPTO serial number (path parameter)
limit integer Optional Results per page (default 50, max 100)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/trademarks/97120345/events?limit=3"
{
  "serial_number": "97120345",
  "latest_transaction_date": "2024-01-15",
  "events": [
    {
      "transaction_date": "2024-01-15",
      "type_code": "REGISTERED",
      "text": "Registration certificate issued"
    },
    {
      "transaction_date": "2023-06-20",
      "type_code": "PUBLISHED",
      "text": "Published for opposition"
    }
  ],
  "total": 8,
  "limit": 3,
  "offset": 0,
  "data_freshness": "2026-04-10"
}

Historical Assignments

Search trademark and patent assignment records from USPTO bulk data files. These are historical chain-of-title records showing ownership transfers.

GET /v1/trademarks/historical/assignments

Search trademark assignment records. At least one of serial_number, party_name, or conv_group is required.

Historical dataset: trademark assignments 1952--2023. Updated annually.

Parameter Type Required Description
serial_number string At least one Trademark serial number
party_name string At least one Assignor or assignee name (partial match)
conv_group string At least one Conveyance group (e.g., "assignment", "merger")
date_from string Optional Earliest record date (YYYY-MM-DD or YYYYMMDD)
date_to string Optional Latest record date (YYYY-MM-DD or YYYYMMDD)
limit integer Optional Results per page (default 50, max 100)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/trademarks/historical/assignments?party_name=Pfizer&limit=1"
{
  "results": [
    {
      "reel_frame": "5678/0001",
      "record_date": "2020-03-15",
      "conveyances": ["assignment"],
      "assignors": [
        {
          "party_name": "ARENA PHARMACEUTICALS, INC.",
          "city": "San Diego",
          "state": "CA"
        }
      ],
      "assignees": [
        {
          "party_name": "PFIZER INC.",
          "city": "New York",
          "state": "NY"
        }
      ],
      "serial_numbers": ["88123456", "88123457"]
    }
  ],
  "total": 234,
  "limit": 1,
  "offset": 0,
  "coverage_note": "Historical trademark assignment data from USPTO bulk files"
}
GET /v1/patents/historical/assignments

Search patent assignment records. At least one of patent_number, application_number, or party_name is required.

Historical dataset: patent assignments 1970--2024. Updated annually.

Parameter Type Required Description
patent_number string At least one Patent number
application_number string At least one Patent application number
party_name string At least one Assignor or assignee name (partial match)
convey_type string Optional Conveyance type filter
date_from string Optional Earliest record date (YYYY-MM-DD or YYYYMMDD)
date_to string Optional Latest record date (YYYY-MM-DD or YYYYMMDD)
limit integer Optional Results per page (default 50, max 100)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/patents/historical/assignments?party_name=Google+LLC&limit=1"
{
  "results": [
    {
      "reel_frame": "048123/0456",
      "record_date": "2019-06-01",
      "convey_type": "ASSIGNMENT OF ASSIGNORS INTEREST",
      "assignors": [
        {
          "party_name": "DOE, JOHN",
          "city": "Mountain View",
          "state": "CA"
        }
      ],
      "assignees": [
        {
          "party_name": "GOOGLE LLC",
          "city": "Mountain View",
          "state": "CA"
        }
      ],
      "patent_numbers": ["10234567"],
      "application_numbers": ["16/123456"]
    }
  ],
  "total": 15432,
  "limit": 1,
  "offset": 0,
  "coverage_note": "Historical patent assignment data from USPTO bulk files"
}

TTAB Proceedings

Search and retrieve Trademark Trial and Appeal Board (TTAB) proceedings, including opposition and cancellation actions.

GET /v1/ttab/proceedings

Search TTAB proceedings. At least one of serial_number, party_name, or proceeding_number is required.

Parameter Type Required Description
serial_number string At least one Trademark serial number involved in the proceeding
party_name string At least one Party name (partial match)
proceeding_number string At least one TTAB proceeding number
limit integer Optional Results per page (default 50, max 100)
offset integer Optional Pagination offset (default 0)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/ttab/proceedings?party_name=Nike&limit=1"
{
  "results": [
    {
      "proceeding_number": "91234567",
      "transaction_date": "2023-11-01",
      "type_code": "OPP",
      "filing_date": "2023-05-15",
      "status_code": "ACT"
    }
  ],
  "total": 23,
  "limit": 1,
  "offset": 0,
  "data_freshness": "2026-04-10"
}
GET /v1/ttab/proceedings/{proceeding_number}

Get full details for a TTAB proceeding, including all parties and their associated marks.

Parameter Type Required Description
proceeding_number string Required TTAB proceeding number (path parameter)
curl -H "X-API-Key: fo_live_abc123" \
  "https://folioapi.com/v1/ttab/proceedings/91234567"
{
  "proceeding_number": "91234567",
  "transaction_date": "2023-11-01",
  "type_code": "OPP",
  "filing_date": "2023-05-15",
  "status_code": "ACT",
  "parties": [
    {
      "role_code": "P",
      "party_name": "NIKE, INC.",
      "serial_number": "73000001",
      "mark_text": "JUST DO IT"
    },
    {
      "role_code": "D",
      "party_name": "ACME SPORTSWEAR LLC",
      "serial_number": "97654321",
      "mark_text": "JUST DID IT"
    }
  ],
  "data_freshness": "2026-04-10"
}

Health Check

GET /v1/health

Health check endpoint. No authentication required.

curl "https://folioapi.com/v1/health"
{
  "status": "ok"
}