{
  "openapi": "3.0.1",
  "info": {
    "title": "USPTO New Trademark Filings & Search — Leads with Contacts",
    "description": "Daily US trademark application leads and register search from USPTO: new filings 1-2 days after filing, or search by mark text or owner name. Owner name & address, attorney, correspondent email & phone, pro-se flag, classes and goods — for IP law firms and brand protection. No key required.",
    "version": "0.1",
    "x-build-id": "g1vg87i6Pi7qBmYyZ"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/foxlabs~uspto-trademark-leads/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-foxlabs-uspto-trademark-leads",
        "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/foxlabs~uspto-trademark-leads/runs": {
      "post": {
        "operationId": "runs-sync-foxlabs-uspto-trademark-leads",
        "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/foxlabs~uspto-trademark-leads/run-sync": {
      "post": {
        "operationId": "run-sync-foxlabs-uspto-trademark-leads",
        "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": {
          "mode": {
            "title": "Mode",
            "enum": [
              "new_filings",
              "search",
              "serial_range",
              "serial_list"
            ],
            "type": "string",
            "description": "New filings is the lead feed: the applications filed in the last days, newest first. Search finds applications anywhere in the register by mark text and/or owner name. Serial range / serial list fetch specific applications by US serial number. Every mode returns the same record, with the contact details from the application's USPTO status page.",
            "default": "new_filings"
          },
          "markText": {
            "title": "Mark text",
            "type": "string",
            "description": "Words to find in the mark, e.g. `canopy fort` — all of them must match. USPTO's index does the matching and can also return marks that are spelled differently (`canopy` also finds KANOPEO). Required in Search mode unless Owner name is given; in New filings mode it narrows the feed to marks matching these words."
          },
          "ownerName": {
            "title": "Owner name",
            "type": "string",
            "description": "Words that must all appear in the applicant / owner name, e.g. `Landscape Structures`. Required in Search mode unless Mark text is given; in New filings mode it narrows the feed to this owner."
          },
          "intlClasses": {
            "title": "International classes",
            "type": "array",
            "description": "Keep only applications in at least one of these Nice classes (1-45), e.g. `25` for clothing or `9` for software. Used in New filings and Search modes. Leave empty for all classes.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "liveOnly": {
            "title": "Live marks only",
            "type": "boolean",
            "description": "Leave out abandoned, cancelled and expired marks. Used in New filings and Search modes.",
            "default": false
          },
          "filerType": {
            "title": "Filer type",
            "enum": [
              "all",
              "pro_se_only",
              "attorney_only"
            ],
            "type": "string",
            "description": "Pro-se applicants filed WITHOUT an attorney — their own contact email is on the application (the classic IP-firm lead). Attorney-represented applications expose the attorney/correspondent contact instead.",
            "default": "all"
          },
          "datePreset": {
            "title": "Which filings",
            "enum": [
              "freshest",
              "custom"
            ],
            "type": "string",
            "description": "New filings mode — Freshest = the filings of the last 14 days, newest first. A filing appears the day after it is filed (about 1,800 filings per business day, roughly a third of them without an attorney). Custom = an explicit filing-date range, for backfills. Search mode — Freshest = no date limit; Custom = only filings inside the range.",
            "default": "freshest"
          },
          "onlyNewSinceLastRun": {
            "title": "Only new since last run",
            "type": "boolean",
            "description": "For scheduled feeds in New filings mode: each run delivers only filings it has not delivered before, newest first, looking back up to 14 days. A run that is cut short (Max results, a time limit, your spending limit) leaves the rest for the next run, so nothing is skipped or delivered twice. The memory is kept per set of filters. One run per feed at a time: a second run with the same filters that starts while one is still going ends at once, without delivering anything. Not used with a custom date range or in the other modes.",
            "default": false
          },
          "dateFrom": {
            "title": "Custom from date",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "type": "string",
            "description": "YYYY-MM-DD filing date. Only used when Which filings = Custom."
          },
          "dateTo": {
            "title": "Custom to date",
            "pattern": "^[0-9]{4}-[0-9]{2}-[0-9]{2}$",
            "type": "string",
            "description": "YYYY-MM-DD filing date. Only used when Which filings = Custom. Leave empty for 'today'."
          },
          "serialFrom": {
            "title": "Serial from",
            "minimum": 50000000,
            "maximum": 99999999,
            "type": "integer",
            "description": "First US serial number (8 digits, e.g. 99900000 or 50100000). Only used in 'Serial number range' mode."
          },
          "serialTo": {
            "title": "Serial to",
            "minimum": 50000000,
            "maximum": 99999999,
            "type": "integer",
            "description": "Last US serial number. Only used in 'Serial number range' mode."
          },
          "serialNumbers": {
            "title": "Serial numbers",
            "type": "array",
            "description": "Specific 8-digit US serial numbers to fetch. Only used in 'Specific serial numbers' mode.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 1,
            "maximum": 2500,
            "type": "integer",
            "description": "Hard cap on dataset rows per run (at most 2,500). Each lead takes about 3 seconds, because its contact details are read from its own USPTO status page at a polite pace: roughly 100 leads per 5-6 minutes.",
            "default": 300
          },
          "maxRunSeconds": {
            "title": "Time budget (seconds)",
            "minimum": 0,
            "maximum": 86400,
            "type": "integer",
            "description": "Stop after this many seconds and keep the leads collected so far. **0 = no budget.** The Actor also stops by itself 30 seconds before the run timeout. This Actor stays deliberately polite with a minimum 2.5s delay per USPTO status page, so run length is set by how many records you ask for.",
            "default": 0
          },
          "includeGoodsServices": {
            "title": "Include goods & services text",
            "type": "boolean",
            "description": "Add the full goods/services description per class. Adds detail; off makes rows leaner.",
            "default": true
          },
          "requestDelayMs": {
            "title": "Request delay (ms)",
            "minimum": 2500,
            "type": "integer",
            "description": "Delay between requests to USPTO status pages. Minimum 2500 ms is enforced — TSDR rate-protects bursts, and this actor deliberately stays low-rate and polite to the official source (~5-6 min per 100 records is expected).",
            "default": 3000
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}