Skip to content

Search

Look up US trademarks by mark text, serial number, or owner.

Search is the primary HTTP method. Send a GET with query parameters, or a POST with a JSON body when the query is long.

Endpoint

GET /v1/trademarks/search
POST /v1/trademarks/search

Both methods share the same query object. GET puts fields on the query string. POST sends them as JSON with Content-Type: application/json.

Query fields

Field Type Required Description
q string one of q, serialNumber, owner Mark text or free-text query
serialNumber string one of USPTO serial number, digits only
owner string one of Owner / applicant name
status string no live, dead, or all (default live)
limit integer no Page size, 1–50 (default 10)
offset integer no Pagination offset (default 0)

Exactly one of q, serialNumber, or owner must be present.

Examples

curl -sS "https://freetrademarkapi.com/v1/trademarks/search?q=markavo&limit=5"
curl -sS https://freetrademarkapi.com/v1/trademarks/search \
  -H "Content-Type: application/json" \
  -d '{"q":"markavo","status":"live","limit":5}'
curl -sS "https://freetrademarkapi.com/v1/trademarks/search?serialNumber=88888888"

Response

Successful responses are JSON:

{
  "object": "list",
  "query": { "q": "markavo", "status": "live", "limit": 5, "offset": 0 },
  "count": 1,
  "hasMore": false,
  "data": [
    {
      "object": "trademark",
      "serialNumber": "88888888",
      "markIdentification": "MARKAVO",
      "status": "live",
      "statusLabel": "Registered",
      "owner": "Example Owner, LLC",
      "filingDate": "2020-01-15",
      "classes": ["045"]
    }
  ]
}

Field notes

  • markIdentification is the literal mark as recorded, not a normalized search key. Compare with q using your own rules.
  • status is collapsed to live or dead for filtering. Use statusLabel when you need the USPTO wording.
  • classes are Nice Classification numbers as strings, zero-padded to three digits when the source provides them.

Continue to Errors for non-2xx bodies.

Navigation

Type to search…

↑↓ navigate↵ selectEsc close