Skip to main content
Signa ingests trademark data from 10 production offices, with more planned. Each office publishes data on its own schedule. This guide explains what to expect in terms of data freshness and how to check the current state of each source.

Per-Office Sync Schedule

Production Offices

OfficeCodeFrequency
USPTOusptoDaily
INPI Franceinpi-frWeekly
EUIPOeuipoDaily
IP AustraliaipauDaily
CIPOcipoWeekly
WIPOwipoWeekly per country
IPOSiposDaily
PRVprvDaily
IPIipiDaily
NIPOnipoDaily
Each record carries its own source_data_date — that’s the authoritative answer to “how current is this trademark?” Use it instead of guessing from the office’s sync frequency.

Planned Offices

The following offices are planned for future phases. Connector scaffolds and data source research are in progress. DPMA (Germany), UKIPO (United Kingdom), BOIP (Benelux), DKPTO (Denmark), PRH (Finland), ISIPO (Iceland), UPRP (Poland), IMPI (Mexico), JPO (Japan), KIPO (South Korea), CNIPA (China), DIP (Thailand), IP Vietnam.
Sync frequencies represent the target schedule for production offices. Actual freshness depends on office uptime and data availability. Use the source_data_date field to determine the actual age of any individual record.

Understanding source_data_date

Every trademark record carries a source_data_date field that indicates when the data was published by the source office — not when Signa ingested it. This distinction matters:
FieldMeaning
source_data_dateWhen the office published this version of the data
updated_atWhen Signa last wrote to this record
created_atWhen Signa first ingested this record
For example, a USPTO record with source_data_date: "2026-03-20" and updated_at: "2026-03-22T10:15:00Z" means the data was part of the March 20 daily file, which Signa processed on March 22.
# Check when a mark was last updated
curl -s https://api.signa.so/v1/trademarks/tm_abc123 \
  -H "Authorization: Bearer sig_xxx" | jq '{source_data_date, updated_at}'

Consistency Model

Signa offers two consistency tiers for trademark reads. The difference matters when you read a record immediately after it was updated.

Detail endpoints

  • Consistency: Immediate (strong read-after-write)
  • Endpoints: GET /v1/trademarks/{id} and other single-resource fetches
  • Use when you need the absolute current state — fresh out of an ingestion run, post-update, or post-replay.

Search endpoints

  • Consistency: Eventually consistent
  • Lag: Typically under 30 seconds after a write
  • Endpoints: GET and POST /v1/trademarks (list + search)
  • In rare cases (search index rebuild, backlog) lag can extend to minutes.
What this means in practice:
  1. When a trademark is updated, the detail endpoint reflects the change immediately
  2. The search endpoint may take up to 30 seconds to reflect the same change
  3. Searches followed by detail fetches (the typical pattern) always see consistent data because the detail leg reads from the authoritative store
# Detail endpoint -- always current
curl -s https://api.signa.so/v1/trademarks/tm_abc123 \
  -H "Authorization: Bearer sig_xxx"

# Search endpoint -- eventually consistent
curl -s -X POST https://api.signa.so/v1/trademarks \
  -H "Authorization: Bearer sig_xxx" \
  -H "Content-Type: application/json" \
  -d '{"query": "SIGNA"}'

Checking Office Status

Use the reference data endpoints to check the current sync status of each office:
# List all offices with their sync status
curl -s https://api.signa.so/v1/offices \
  -H "Authorization: Bearer sig_xxx"

# Get a specific office
curl -s https://api.signa.so/v1/offices/uspto \
  -H "Authorization: Bearer sig_xxx"

Finding Recently Updated Records

Filter by updated_at to find records that changed within a time window:
# All marks updated in the last 24 hours
curl -s "https://api.signa.so/v1/trademarks?updated_at_gte=2026-03-23T00:00:00Z&sort=-updated_at" \
  -H "Authorization: Bearer sig_xxx"
For fine-grained change history on a specific mark, use Trademark History and Trademark Changes.

Known Limitations

Certain offices publish data with a built-in delay. For example, some offices only publish weekly gazette updates, meaning a status change on Monday may not appear in Signa’s data until the following week’s publication.
Full sync captures the current state of each record but may not include all historical events. Some offices only provide current snapshots without event history. Signa preserves all events it observes going forward, but events that occurred before the first ingestion may be missing.
Not all offices make mark images available via their data feeds. Some require separate image downloads. Image availability is indicated by the has_media field on trademark records.
Most offices provide goods/services descriptions in their local language. Signa stores the original text and language code but does not translate. Some offices (EUIPO, WIPO) provide multi-language descriptions.