{
  "openapi": "3.0.1",
  "info": {
    "title": "USPTO Trademark API | Trademark Lookup & Watch, $1/1K",
    "description": "Extract US trademark data from USPTO at $1.00 per 1,000 records: trademark lookup by mark, owner, serial or registration number, with class, status and filing-date filters, and a daily watch of new trademark filings and status changes. Owner, attorney, goods, dates.",
    "version": "0.1",
    "x-build-id": "KbFNQcVoTnt3fL055"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/aurelix~uspto-trademark-search/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-aurelix-uspto-trademark-search",
        "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/aurelix~uspto-trademark-search/runs": {
      "post": {
        "operationId": "runs-sync-aurelix-uspto-trademark-search",
        "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/aurelix~uspto-trademark-search/run-sync": {
      "post": {
        "operationId": "run-sync-aurelix-uspto-trademark-search",
        "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": {
          "marks": {
            "title": "Marks (words in the trademark)",
            "type": "array",
            "description": "One trademark text per line, e.g. 'star wars' or 'nike air'. By default a mark matches when all its words appear in a registered or pending trademark. A serial or registration number typed here is looked up as a number.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "owners": {
            "title": "Owners (applicant or registrant)",
            "type": "array",
            "description": "Owner names, one per line, e.g. 'Nike' or 'Apple Inc.'. Returns that owner's trademark portfolio. Suffixes like Inc., LLC or Ltd. are optional.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "numbers": {
            "title": "Serial or registration numbers",
            "type": "array",
            "description": "Serial numbers (8 digits, e.g. 97087321), registration numbers (up to 7 digits, e.g. 6977371 or Reg. No. 6,977,371) or TSDR links. One record each; the class, status and date filters do not apply to number lookups.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "classes": {
            "title": "Nice classes",
            "type": "array",
            "description": "Keep marks in at least one of these international (Nice) classes, 1 to 45, e.g. '25' (clothing) or '9' (software, electronics). Empty = all classes.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Status",
            "enum": [
              "all",
              "live",
              "dead"
            ],
            "type": "string",
            "description": "Live = pending applications and registrations in force; dead = abandoned, cancelled or expired.",
            "default": "all"
          },
          "matchMode": {
            "title": "Mark match",
            "enum": [
              "words",
              "exact",
              "similar"
            ],
            "type": "string",
            "description": "How 'Marks' match. Words: every word appears in the mark ('star wars' finds STAR WARS and STAR WARS: JEDI). Exact: the mark is exactly this text, ignoring case and punctuation. Similar: also close spellings and USPTO's sound-alike text ('nite' finds NIGHT), for clearance and watch.",
            "default": "words"
          },
          "goodsServices": {
            "title": "Goods and services contain",
            "type": "string",
            "description": "Keep marks whose goods and services description has all these words, e.g. 'running shoes' or 'coffee'. Empty = any."
          },
          "filedWithinDays": {
            "title": "Filed in the last N days",
            "minimum": 0,
            "maximum": 36500,
            "type": "integer",
            "description": "Keep applications filed today (UTC) or in the N days before; 0 = any filing date. Use 1 to 7 for a new-filings watch. New filings appear about one day after filing.",
            "default": 0
          },
          "filedFrom": {
            "title": "Filed on or after",
            "type": "string",
            "description": "Earliest filing date (YYYY-MM-DD). Overrides 'Filed in the last N days'."
          },
          "filedTo": {
            "title": "Filed on or before",
            "type": "string",
            "description": "Latest filing date (YYYY-MM-DD). Empty = today."
          },
          "sortBy": {
            "title": "Sort",
            "enum": [
              "relevance",
              "newest"
            ],
            "type": "string",
            "description": "Best match first, or newest filing first. Watches of new filings always sort newest first.",
            "default": "relevance"
          },
          "maxResultsPerSearch": {
            "title": "Max records per search",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Stop each mark, owner or new-filings search after this many records. At most 10,000 (USPTO's own limit per search).",
            "default": 100
          },
          "maxResults": {
            "title": "Max records in total",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "Stop the run after this many records across all searches.",
            "default": 200
          },
          "includeNoMatchRows": {
            "title": "Add a row for searches with no match",
            "type": "boolean",
            "description": "For clearance: one row with match_found false for every mark, owner or number that found nothing. Each such row is charged like a record.",
            "default": false
          },
          "incremental": {
            "title": "Only new or changed since last run (watch)",
            "type": "boolean",
            "description": "Watch mode. The first run returns the current matches and sets a baseline; later runs with the same searches and filters return only applications USPTO added since then and status changes of marks returned before (e.g. published for opposition, registered, abandoned). Schedule daily.",
            "default": false
          },
          "stateKey": {
            "title": "Watch name",
            "type": "string",
            "description": "Optional name for the watch memory, e.g. 'client-acme'. Runs with the same name share it (a search with changed filters starts with its own first run); empty = derived from your searches and filters."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Optional: post a digest (count and top 10 with links) to Slack after a run that saved records."
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional: POST the digest as JSON to this URL (n8n, Make, Zapier)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}