ExchangeRebel Trademark Watch API

The Trademark Watch API from ExchangeRebel — 5 operation(s) for trademark watch.

GitHub OpenAPI

Operations 6

GET /toll/trademarks/search Search US trademark records by wordmark text #
POST /toll/trademarks/search Search US trademark records (JSON body form) #
GET /toll/trademarks/case/{serialNumber} Fetch full case detail for a trademark serial #
POST /toll/trademarks/watch Register a 30-day trademark watch (daily checks) #
GET /toll/trademarks/watch/{id}/changes Fetch changes detected for a trademark watch #
GET /toll/trademarks/health Check the trademark watch service status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/exchangerebel-com:exchangerebel-com-trademark-watch-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

exchangerebel-com-trademark-watch-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: ExchangeRebel — pay-per-call APIs for AI agents (x402 on…
  version: 1.0.0
  contact:
    name: 'ExchangeRebel (operator: Rebel Data)'
    url: https://exchangerebel.com
    email: sound.money.investing@gmail.com
  x-guidance: 'All paid operations use x402 on Solana: call without payment to get a 402 challenge (SOL recipient + USDC token account + fresh memo), pay with the memo attached via the Solana Memo program, then retry with header X-Payment-Tx: <signature> and ?toll_memo=<memo>. Challenges are dual-version: the PAYMENT-REQUIRED header carries the x402 v2 PaymentRequired object and the response body carries the same challenge in x402 v1 form for compatibility. Free operations (security: []) include each service''s /health catalog with full response shapes. Prices in x-payment-info are USD per call unless the summary says otherwise (RPC is per 1,000-request block; Telegram provisioning is per bot-month; transcription is per minute of audio).'
  description: '67 data and utility APIs behind x402 tolls, settled in SOL or USDC on Solana. Call a paid endpoint without payment to receive a 402 x402 challenge (recipient + fresh memo), pay with the memo attached via the Solana Memo program, then retry with the X-Payment-Tx header and toll_memo query parameter. Free catalog/health endpoints are marked without x-payment-info. Full catalogs: GET /toll/discovery and each service''s /health.'
servers:
- url: https://exchangerebel.com
tags:
- name: Trademark Watch
paths:
  /toll/trademarks/search:
    get:
      tags:
      - Trademark Watch
      summary: Search US trademark records by wordmark text
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                results:
                - mark: KAUSY
                  serial_number: '97087321'
                  registration_number: '6977371'
                  status: REGISTERED
                  status_code: 700
                  alive: true
                  classes:
                  - '003'
                  - 018
                  filed_date: '2021-10-25'
                  registration_date: '2023-02-14'
                  published_for_opposition_date: '2022-11-29'
                  owner: KAUSY PTE LTD (limited company (ltd.); SINGAPORE)
                  goods_services:
                  - 'IC 003: Beauty care cosmetics; Beauty creams; Beauty creams for body care; Beauty masks; Beauty serums; Body butter; Body cream soap; Body scrub; Body sprays; Body wash; Cosmetics; Eau de cologne; Eau de toilette; Essential oils; Exfoliant creams; Facial scrubs; Hair conditioner; Hair masks; Hair mousse; Hair shampoo; Make-up; Make-up removing milk, gel, lotions and creams; Perfumes; Skin cleansers; Skin lotion; Skin toners; Sun screen preparations; Non-medicated skin care preparation, namely, body mist.'
                  - 'IC 018: All purpose sports bags; Carry-all bags; Clutch bags; Clutches; Coin purses; Cosmetic cases sold empty; Duffel bags; Gym bags; Handbags; Key pouches; Leather cases for keys; Leather pouches; Make-up cases sold empty; Overnight bags; Purses; Satchels; Shoulder bags; Sport bags; Tote bags; Travel bags; Wallets.'
                envelope:
                  v: 1
                  service: trademark-watch
                  grade: official
                  changes:
                    supported: true
                    price_usd: 0.05
                    endpoint: /watch/{id}/changes
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: q
        in: query
        required: false
        schema:
          type: string
        description: Wordmark text (required unless owner given)
      - name: owner
        in: query
        required: false
        schema:
          type: string
        description: Owner name match
      - name: status
        in: query
        required: false
        schema:
          type: string
        description: live | dead | 3-digit USPTO status code
      - name: class
        in: query
        required: false
        schema:
          type: string
        description: International class 1-45
      - name: limit
        in: query
        required: false
        schema:
          type: string
        description: 1-25, default 10
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.25'
      security:
      - x402Payment: []
      operationId: getTollTrademarksSearch
      x-operation-id-source: derived
    post:
      tags:
      - Trademark Watch
      summary: Search US trademark records (JSON body form)
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                results:
                - mark: KAUSY
                  serial_number: '97087321'
                  registration_number: '6977371'
                  status: REGISTERED
                  status_code: 700
                  alive: true
                  classes:
                  - '003'
                  - 018
                  filed_date: '2021-10-25'
                  registration_date: '2023-02-14'
                  published_for_opposition_date: '2022-11-29'
                  owner: KAUSY PTE LTD (limited company (ltd.); SINGAPORE)
                  goods_services:
                  - 'IC 003: Beauty care cosmetics; Beauty creams; Beauty creams for body care; Beauty masks; Beauty serums; Body butter; Body cream soap; Body scrub; Body sprays; Body wash; Cosmetics; Eau de cologne; Eau de toilette; Essential oils; Exfoliant creams; Facial scrubs; Hair conditioner; Hair masks; Hair mousse; Hair shampoo; Make-up; Make-up removing milk, gel, lotions and creams; Perfumes; Skin cleansers; Skin lotion; Skin toners; Sun screen preparations; Non-medicated skin care preparation, namely, body mist.'
                  - 'IC 018: All purpose sports bags; Carry-all bags; Clutch bags; Clutches; Coin purses; Cosmetic cases sold empty; Duffel bags; Gym bags; Handbags; Key pouches; Leather cases for keys; Leather pouches; Make-up cases sold empty; Overnight bags; Purses; Satchels; Shoulder bags; Sport bags; Tote bags; Travel bags; Wallets.'
                envelope:
                  v: 1
                  service: trademark-watch
                  grade: official
                  changes:
                    supported: true
                    price_usd: 0.05
                    endpoint: /watch/{id}/changes
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                q:
                  type: string
                  description: string - wordmark text
                owner:
                  type: string
                  description: string - owner name match
                status:
                  type: string
                  description: string - live|dead|3-digit status code
                class:
                  type: string
                  description: string - international class 1-45
                limit:
                  type: integer
                  description: integer 1-25, default 10
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.25'
      security:
      - x402Payment: []
      operationId: postTollTrademarksSearch
      x-operation-id-source: derived
  /toll/trademarks/case/{serialNumber}:
    get:
      tags:
      - Trademark Watch
      summary: Fetch full case detail for a trademark serial
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                mark: KAUSY
                status: Registered.  The registration date is used to determine when post-registration maintenance documents are due.
                status_date: '2023-02-14'
                tm5_status:
                  descriptor: LIVE/REGISTRATION/Issued and Active
                  live_dead: Live
                key_dates:
                  filed: '2021-10-25'
                  published: '2022-11-29'
                  registered: '2023-02-14'
                owners:
                - name: KAUSY PTE LTD
                attorney: Zhuoyi Ma
                classes:
                - '003'
                - 018
                maintenance:
                  next_form_to_file: 8
                  earliest_date: '2028-02-14'
                  latest_date_without_fee: '2029-02-14'
                  latest_date_with_fee: '2029-08-14'
                envelope:
                  v: 1
                  service: trademark-watch
                  grade: official
                  changes:
                    supported: true
                    price_usd: 0.05
                    endpoint: /watch/{id}/changes
                  as_of: '2023-02-14'
                  capture_cadence: 24h
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: serialNumber
        in: path
        required: true
        schema:
          type: string
        description: 8-digit USPTO serial number
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.10'
      security:
      - x402Payment: []
      operationId: getTollTrademarksCaseBySerialNumber
      x-operation-id-source: derived
  /toll/trademarks/watch:
    post:
      tags:
      - Trademark Watch
      summary: Register a 30-day trademark watch (daily checks)
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                id: tmw_0000000000000001
                created_at: '2026-10-12T22:18:01.707968Z'
                expires_at: '2026-11-11T22:18:01.707968Z'
                mark_text: EXCHANGEREBEL
                serials:
                - '97087321'
                seen_serials: []
                snapshots:
                  '97087321':
                    status: Registered.  The registration date is used to determine when post-registration maintenance documents are due.
                    status_date: '2023-02-14'
                    tm5: LIVE/REGISTRATION/Issued and Active
                    events:
                    - 2023-02-14|REGISTERED-PRINCIPAL REGISTER
                    - 2023-02-14|NOTICE OF REGISTRATION CONFIRMATION EMAILED
                    - 2023-02-14|Registration Certificate
                    - 2023-02-14|Notice of Registration-Notice
                    - 2022-11-29|OFFICIAL GAZETTE PUBLICATION CONFIRMATION E-MAILED
                    - 2022-11-29|PUBLISHED FOR OPPOSITION
                    - 2022-11-29|OG Publication Confirmation
                    - 2022-11-09|NOTIFICATION OF NOTICE OF PUBLICATION E-MAILED
                    - 2022-11-09|Notification Of Notice of Publication
                    - 2022-11-09|Notice of Publication
                    - 2022-10-27|TRAM Snapshot of App at Pub for Oppostn
                    - 2022-10-26|APPROVED FOR PUB - PRINCIPAL REGISTER
                    - 2022-10-19|Amendment and Mail Process Complete
                    - 2022-10-18|EXAMINER'S AMENDMENT ENTERED
                    - 2022-10-18|NOTIFICATION OF EXAMINERS AMENDMENT E-MAILED
                    - 2022-10-18|EXAMINERS AMENDMENT E-MAILED
                    - 2022-10-18|EXAMINERS AMENDMENT -WRITTEN
                    - 2022-10-18|Examiners Amendment
                    - 2022-09-21|Amendment to Delete or Correct Basis
                    - 2022-09-21|Amendment and Mail Process Complete
                    - 2022-09-20|TEAS/EMAIL CORRESPONDENCE ENTERED
                    - 2022-09-20|CORRESPONDENCE RECEIVED IN LAW OFFICE
                    - 2022-09-20|APPLICANT/CORRESPONDENCE CHANGES (NON-RESPONSIVE) ENTERED
                    - 2022-09-19|ASSIGNED TO LIE
                    - 2022-08-15|TEAS RESPONSE TO OFFICE ACTION RECEIVED
                    - 2022-08-15|Response to Office Action
                    - 2022-08-05|NOTIFICATION OF NON-FINAL ACTION E-MAILED
                    - 2022-08-05|NON-FINAL ACTION E-MAILED
                    - 2022-08-05|NON-FINAL ACTION  WRITTEN
                    - 2022-08-05|XSearch Search Summary
                    - 2022-08-05|Offc Action Outgoing
                    - 2022-08-02|ASSIGNED TO EXAMINER
                    - 2022-06-19|TEAS CHANGE OF CORRESPONDENCE RECEIVED
                    - 2022-06-19|ATTORNEY/DOM.REP.REVOKED AND/OR APPOINTED
                    - 2022-06-19|TEAS REVOKE/APP/CHANGE ADDR OF ATTY/DOM REP RECEIVED
                    - 2022-06-19|Change Address or Representation Form
                    - 2021-11-08|NEW APPLICATION OFFICE SUPPLIED DATA ENTERED
                    - 2021-10-28|NEW APPLICATION ENTERED
                    - 2021-10-25|TEAS Plus New Application
                    - 2021-10-25|Drawing
                    maintenance:
                      cancelled_or_expired: false
                      next_form_to_file: 8
                      earliest_date: '2028-02-14'
                      latest_date_without_fee: '2029-02-14'
                      latest_date_with_fee: '2029-08-14'
                changes:
                - at: '2026-10-13T07:23:50.425Z'
                  serial_number: '97087321'
                  type: status_change
                  field: case_status
                  from: STALE SELF-TEST — superseded status (seeded 2026-10-12)
                  to: Registered.  The registration date is used to determine when post-registration maintenance documents are due.
                  status_date: '2023-02-14'
                  mark: KAUSY
                - at: '2026-10-13T07:23:50.425Z'
                  serial_number: '97087321'
                  type: new_event
                  event_date: '2023-02-14'
                  event: REGISTERED-PRINCIPAL REGISTER
                  mark: KAUSY
                delivered_count: 0
                checks_run: 1
                last_check_at: '2026-10-13T07:23:50.425Z'
                self_test: 'Internal smoke watch seeded by the build (2026-10-12). Stale status + newest prosecution event omitted on purpose: the first cron run should append 1 status_change + 1 new_event. Safe to delete.'
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                mark_text:
                  type: string
                  description: string - mark text to watch for new filings
                serial_numbers:
                  type: array
                  description: array of 8-digit serial numbers to watch for status changes (max 20)
                  items:
                    type: string
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.50'
      security:
      - x402Payment: []
      operationId: postTollTrademarksWatch
      x-operation-id-source: derived
  /toll/trademarks/watch/{id}/changes:
    get:
      tags:
      - Trademark Watch
      summary: Fetch changes detected for a trademark watch
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
          content:
            application/json:
              example:
                new_changes: 1
                changes:
                - at: '2026-10-12T07:23:00.000Z'
                  type: status_change
                  serial_number: '97087321'
                  mark: KAUSY
                envelope:
                  v: 1
                  service: trademark-watch
                  grade: official
                  changes:
                    supported: true
                    price_usd: 0.05
                    endpoint: /watch/{id}/changes
                  first_seen: '2026-10-12T07:23:00.000Z'
                  as_of: '2026-10-12T07:23:00.000Z'
                  capture_cadence: daily
        '402':
          description: 'Payment Required (x402). The PAYMENT-REQUIRED response header carries the x402 v2 PaymentRequired object (base64 JSON: scheme, CAIP-2 network, amount, asset, payTo, plus the bazaar discovery extension); the response body carries the same challenge in x402 v1 form for compatibility, naming the SOL recipient and USDC token account on Solana plus a fresh memo. To pay on this service''s rail: pay with the memo attached (Solana Memo program), then retry with header ''X-Payment-Tx: <transaction signature>'' and query parameter ''toll_memo=<memo>''.'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
        description: Watch id returned by POST /watch
      x-payment-info:
        protocols:
        - x402
        price:
          mode: fixed
          currency: USD
          amount: '0.05'
      security:
      - x402Payment: []
      operationId: getTollTrademarksWatchByIdChanges
      x-operation-id-source: derived
  /toll/trademarks/health:
    get:
      tags:
      - Trademark Watch
      summary: Check the trademark watch service status
      responses:
        '200':
          description: Success. Response shape is documented in the service catalog (GET /health on the service).
      security: []
      operationId: getTollTrademarksHealth
      x-operation-id-source: derived
components:
  securitySchemes:
    x402Payment:
      type: apiKey
      in: header
      name: X-Payment-Tx
      description: 'x402 toll payment proof: the Solana transaction signature of a payment carrying the memo from the 402 challenge; send together with ?toll_memo=<memo>. Payment itself is made on-chain in SOL or USDC to the recipient named in the challenge.'