Skip to main content
GET
/
v1
/
trademarks
/
{id}
/
source
Trademark Source
curl --request GET \
  --url https://api.example.com/v1/trademarks/{id}/source
{
  "object": "trademark_source",
  "trademark_id": "tm_abc123",
  "office_code": "uspto",
  "observed_at": "2026-04-09T03:18:42Z",
  "source_format": "xml_dtd",
  "source_response_type": "daily_bulk",
  "source_locator": "apc20260408-20260408-01.zip",
  "payload_hash": "sha256:8f2a..."
}

Overview

Returns provenance metadata for the latest raw-record version of a trademark: which office produced the data, when Signa observed it, the source format, and a content hash. Use this for auditing data lineage, verifying freshness, or proving where a particular field value originated. This endpoint returns a single record. There is no pagination.

Path Parameters

id
string
required
Trademark ID (tm_...).

Response

object
string
Always trademark_source.
trademark_id
string
Echo of the requested trademark ID.
office_code
string
Lowercase office code (e.g. uspto, euipo).
observed_at
string
ISO 8601 timestamp when Signa fetched and parsed this version of the source record.
source_format
string
Source data format (e.g. xml_st96, xml_dtd, json).
source_response_type
string
Provider response classification, when known (e.g. daily_bulk, tsdr_api, weekly_zip).
source_locator
string
Reference back to the originating file or URL (e.g. bulk file name, API endpoint path). May be null for legacy records.
payload_hash
string
SHA-256 hash of the raw payload, used for change detection and de-duplication.
{
  "object": "trademark_source",
  "trademark_id": "tm_abc123",
  "office_code": "uspto",
  "observed_at": "2026-04-09T03:18:42Z",
  "source_format": "xml_dtd",
  "source_response_type": "daily_bulk",
  "source_locator": "apc20260408-20260408-01.zip",
  "payload_hash": "sha256:8f2a..."
}

Code Examples

curl "https://api.signa.so/v1/trademarks/tm_abc123/source" \
  -H "Authorization: Bearer sig_live_YOUR_KEY_HERE"

Errors

StatusTypeDescription
400validation_errorInvalid trademark ID format
401unauthorizedMissing or invalid API key
404not_foundTrademark not found, or no raw-record version stored
429rate_limitedToo many requests
See Errors for the full envelope.