{
  "openapi": "3.0.1",
  "info": {
    "title": "USPTO Trademark Scraper - Search, Owners, Status & Classes",
    "description": "Search US trademarks (USPTO) without an API key: by mark, owner, goods and services, serial or registration number. Status, classes, dates, owners, attorney, image. Name availability check, Nice class suggestions, renewal deadlines, monitoring of new filings and past 10,000 results per search.",
    "version": "0.1",
    "x-build-id": "G4PXinejriyJ5mlLh"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapewise~uspto-trademark-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapewise-uspto-trademark-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/scrapewise~uspto-trademark-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapewise-uspto-trademark-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/scrapewise~uspto-trademark-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapewise-uspto-trademark-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "operation": {
            "title": "What to do",
            "enum": [
              "search",
              "availability",
              "suggestClass",
              "expiring",
              "details",
              "ownerSearch",
              "fullText",
              "serial-lookup",
              "owner-search",
              "goods-services-search"
            ],
            "type": "string",
            "description": "Leave empty for a normal search. 'availability' gives one row per name with available / taken / similar marks exist, the identical live marks and the classes they cover. 'suggestClass' gives the Nice classes used by live marks with those goods. 'expiring' lists live registrations whose renewal or Section 8 deadline falls between startDate and endDate."
          },
          "searchTerms": {
            "title": "Mark text to search",
            "type": "array",
            "description": "Words in the trademark itself, one search per line (for example: coffee, blue bottle, \"air max\"). All words must appear; use quotes for an exact phrase, * as a wildcard (coff*), | for OR and - to exclude a word. Searches the mark text and USPTO's pseudo-mark spelling variants.",
            "items": {
              "type": "string"
            }
          },
          "ownerNames": {
            "title": "Owners (applicants / registrants)",
            "type": "array",
            "description": "Company or owner names, one per line (for example: Starbucks Corporation, Nike). Returns the trademarks filed by or assigned to that owner, as the USPTO record names it.",
            "items": {
              "type": "string"
            }
          },
          "goodsAndServices": {
            "title": "Goods and services keywords",
            "type": "array",
            "description": "Words in the goods and services description, one search per line (for example: \"roasted coffee\", energy drinks). Useful to map every mark filed for a product type; combine with classes and dates.",
            "items": {
              "type": "string"
            }
          },
          "serialNumbers": {
            "title": "Serial numbers",
            "type": "array",
            "description": "USPTO serial numbers (8 digits, for example 97123456), one per line or separated by commas. Each number returns its full record; numbers that do not exist come back as a free NOT_FOUND row.",
            "items": {
              "type": "string"
            }
          },
          "registrationNumbers": {
            "title": "Registration numbers",
            "type": "array",
            "description": "USPTO registration numbers (for example 5511206), one per line or separated by commas.",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "USPTO links",
            "type": "array",
            "description": "TSDR case links (https://tsdr.uspto.gov/#caseNumber=97123456&caseSearchType=US_APPLICATION) or Trademark Search links with a ?query= (https://tmsearch.uspto.gov/search/search-results?query=coffee).",
            "items": {
              "type": "string"
            }
          },
          "startDate": {
            "title": "Deadline window from (expiring)",
            "type": "string",
            "description": "Only for 'expiring': first day of the deadline window, YYYY-MM-DD. Empty = today."
          },
          "endDate": {
            "title": "Deadline window to (expiring)",
            "type": "string",
            "description": "Only for 'expiring': last day of the window, YYYY-MM-DD (up to one year after the start). Empty = 30 days after the start."
          },
          "status": {
            "title": "Status",
            "enum": [
              "all",
              "live",
              "dead"
            ],
            "type": "string",
            "description": "USPTO's own live/dead flag. Empty = all."
          },
          "registeredOnly": {
            "title": "Registered marks only",
            "type": "boolean",
            "description": "Keep only marks that reached registration (skips pending applications that were never registered)."
          },
          "internationalClasses": {
            "title": "International (Nice) classes",
            "type": "array",
            "description": "Keep marks in any of these classes, one per line (for example: 30, 43 or IC 030). Empty = all 45 classes.",
            "items": {
              "type": "string"
            }
          },
          "filedFrom": {
            "title": "Filed from",
            "type": "string",
            "description": "Only applications filed on or after this date (2024-01-01, or just a year like 2024)."
          },
          "filedTo": {
            "title": "Filed to",
            "type": "string",
            "description": "Only applications filed on or before this date (2024-12-31, or just a year like 2024)."
          },
          "exactPhrase": {
            "title": "Exact phrase in the mark",
            "type": "boolean",
            "description": "Match the mark text words in this exact order (\"blue bottle\" will not match \"bottle of blue\"). Off = all words in any order."
          },
          "excludeIndividualOwners": {
            "title": "Company owners only",
            "type": "boolean",
            "description": "Skip marks owned by individuals or sole proprietors, to get a list of companies only."
          },
          "excludeKeywords": {
            "title": "Exclude marks whose text contains",
            "type": "array",
            "description": "Words, one per line. Marks with any of them in the mark text are skipped and not charged.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "oldest",
              "recentlyRegistered"
            ],
            "type": "string",
            "description": "Order of the results. Searches that ask for more than 10,000 marks are always read newest first (the USPTO index caps one query at 10,000, so the Actor splits it by filing date)."
          },
          "maxResultsPerSearch": {
            "title": "Max results per search",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "How many trademarks to take from each mark text, owner, goods search or link. Empty = 100. Up to 100,000: past 10,000 the Actor splits the search by filing year and month."
          },
          "maxItems": {
            "title": "Max trademarks in total",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on charged trademarks for the whole run, across all searches. Empty or 0 = no cap besides the per-search limit."
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Apify datacenter proxy is the default and works for USPTO. Refused requests are retried on a fresh IP, then on a US residential IP.",
            "default": {
              "useApifyProxy": true
            }
          },
          "monitorMode": {
            "title": "Only new or changed marks since the last run (monitoring)",
            "type": "boolean",
            "description": "Remembers every trademark this search returned (in a key-value store of your account named uspto-trademark-monitor) and, on the next runs, delivers only the new ones and the ones whose status changed (changeType: new or statusChanged, with previousStatus). Unchanged marks are not delivered and not charged. The newest filings are checked first; maxResultsPerSearch is how many of the newest are checked per search."
          },
          "monitorKey": {
            "title": "Monitor name",
            "type": "string",
            "description": "Names this watch so different searches keep separate memories (for example coffee-class-30). Empty = default."
          },
          "alertOnStatusChange": {
            "title": "Also deliver marks whose status changed",
            "type": "boolean",
            "description": "On by default when monitoring: a mark already seen comes back when its USPTO status changes (for example published for opposition, registered, abandoned). Turn off to get only new marks.",
            "default": true
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}