{
  "openapi": "3.0.1",
  "info": {
    "title": "USPTO Patent & Trademark Scraper",
    "description": "[💰 $3.50 / 1K] Search and extract US patent and trademark records from the USPTO. Look up by keyword, inventor, assignee, or classification, or pull specific patent and trademark numbers — get titles, abstracts, owners, inventors, dates, status, and classifications.",
    "version": "1.0",
    "x-build-id": "YWKoX0MSFBhaYSBMp"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/solidcode~uspto-patent-trademark-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-solidcode-uspto-patent-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/solidcode~uspto-patent-trademark-scraper/runs": {
      "post": {
        "operationId": "runs-sync-solidcode-uspto-patent-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/solidcode~uspto-patent-trademark-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-solidcode-uspto-patent-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": {
          "dataType": {
            "title": "What to search",
            "enum": [
              "patents",
              "trademarks",
              "both"
            ],
            "type": "string",
            "description": "Choose whether to collect patents, trademarks, or both. Patents and trademarks are returned as separate record types in your results.",
            "default": "patents"
          },
          "searchQuery": {
            "title": "Search keywords",
            "type": "string",
            "description": "Words to search for anywhere in the full text of a patent document — title, abstract, claims and the detailed description (e.g. 'solar panel coating'). Because the whole document is searched, a match is often deep in the description rather than in the title, so turn on 'Include patent abstracts' to see why each result matched. Patent results come back newest first, so if you cap the results you get the most recently published patents rather than a spread across the whole match set. For trademarks, this matches the mark wording (e.g. 'Nike'), and marks come back newest first — so if you cap the results, you get the most recently filed marks rather than a spread across the whole register. Leave empty if you are looking up specific patent or trademark numbers instead."
          },
          "patentNumbers": {
            "title": "Patent numbers",
            "type": "array",
            "description": "Look up specific patents or published applications by number (e.g. '10123456' or 'US10123456B2' for a grant, '20230123456' for a published application). One per line. Overrides the keyword search when provided.",
            "items": {
              "type": "string"
            }
          },
          "trademarkNumbers": {
            "title": "Trademark serial or registration numbers",
            "type": "array",
            "description": "Look up specific trademarks by serial number (e.g. '78787878') or registration number (e.g. '2345678'). One per line. Overrides the keyword search when provided.",
            "items": {
              "type": "string"
            }
          },
          "inventor": {
            "title": "Inventor name",
            "type": "string",
            "description": "Only return patents listing this inventor (e.g. 'Jane Smith'). Applies to patents only."
          },
          "assignee": {
            "title": "Owner / assignee",
            "type": "string",
            "description": "Only return patents owned by or assigned to this company or person (e.g. 'Apple Inc'). Applies to patents only."
          },
          "cpcClass": {
            "title": "Classification code (CPC)",
            "type": "string",
            "description": "Only return patents in this Cooperative Patent Classification code (e.g. 'H04L' for digital data transmission). Applies to patents only."
          },
          "patentStatus": {
            "title": "Patent status",
            "enum": [
              "all",
              "granted",
              "published"
            ],
            "type": "string",
            "description": "USPTO publishes most applications about 18 months after filing, long before (and sometimes instead of) a patent being granted. Choose whether you want granted patents, those pre-grant published applications, or both. Every patent record tells you which it is in its 'documentType' field, and only granted records carry a grant date."
          },
          "dateFrom": {
            "title": "Date from",
            "type": "string",
            "description": "Only include patent documents published on or after this date — that is the grant date for a granted patent, and the publication date for a published application. Format: YYYY-MM-DD (e.g. '2020-01-01'). Pair it with 'Patent status' set to 'Granted patents only' to get a clean grant-date window."
          },
          "dateTo": {
            "title": "Date to",
            "type": "string",
            "description": "Only include patent documents published on or before this date — the grant date for a granted patent, the publication date for a published application. Format: YYYY-MM-DD (e.g. '2023-12-31')."
          },
          "includeAbstracts": {
            "title": "Include patent abstracts",
            "type": "boolean",
            "description": "Add the full abstract text to every patent record, so you can see what each invention actually covers. USPTO sends abstracts one patent at a time, so this adds about a second per patent — leave it off for the fastest runs and turn it on when you need to read or screen the results. Has no effect on trademarks.",
            "default": false
          },
          "includeAllInventors": {
            "title": "Include every inventor",
            "type": "boolean",
            "description": "List every inventor named on each patent, instead of just the first one plus an 'et al.' marker. USPTO sends the full list one patent at a time, so this adds about a second per patent. You do not need this when you search by inventor name — those runs always return the complete list, so the inventor you searched for is on every row.",
            "default": false
          },
          "maxResults": {
            "title": "Max results",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of records to return per search. Set to 0 to collect every match — but note that broad searches can have hundreds of thousands of results, so set a number to cap how many are returned. Tip: start with 10-50 to test, then increase. On patent searches the cap takes the most recently published patents, so a capped run on a large portfolio or a broad classification can be just the last few weeks of grants — set 'Date from' and 'Date to' to pull the period you actually want instead. On trademark searches the cap takes the most recently filed marks: recently filed marks are usually still pending, so for a clearance check on a common word raise the cap or use a narrower mark term to reach the older, registered ones.",
            "default": 100
          }
        }
      },
      "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}