{
  "openapi": "3.0.1",
  "info": {
    "title": "Trademark Search Scraper",
    "description": "Search 141M+ trademarks from 70+ registers worldwide (EUIPO, WIPO, USPTO, CNIPA, JPO, UKIPO and more) in one query. Filter by office, Nice class, status and mark type. Returns owner, filing and registration numbers, dates, classes and mark images. No API key.",
    "version": "0.1",
    "x-build-id": "EFumXBBYEmSXDAbi9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/scrapyx~trademark-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-scrapyx-trademark-search-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/scrapyx~trademark-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-scrapyx-trademark-search-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/scrapyx~trademark-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-scrapyx-trademark-search-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",
        "required": [
          "searchTerms"
        ],
        "properties": {
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "One brand name or word per entry — each gets its own search and its own summary row.\n\nThis is required. A blank search is not an error upstream: TMview treats it as a match-all query over its entire ~141 million mark index, so this actor refuses it rather than starting a crawl of the world's trademark registers by accident.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "searchCriteria": {
            "title": "Match type",
            "enum": [
              "C",
              "E",
              "B",
              "W",
              "F"
            ],
            "type": "string",
            "description": "How the term is matched against the mark name. Measured on `apple`: Contains 33,895 · Word match 21,946 · Begins with 14,701 · Fuzzy 28,226 · Exact 8,698.",
            "default": "C"
          },
          "offices": {
            "title": "Trademark offices",
            "type": "array",
            "description": "Two-letter office codes to restrict the search to. Leave empty for all 70+ registers.\n\nCommon codes: `EM` (EU/EUIPO), `WO` (WIPO international), `US`, `GB`, `DE`, `FR`, `ES`, `IT`, `CN`, `JP`, `KR`, `IN`, `BR`, `AU`, `CA`, `MX`, `TR`, `CH`.\n\nAn unrecognised code returns zero results rather than silently ignoring the filter, so a typo is visible in the data.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "niceClasses": {
            "title": "Nice classes",
            "type": "array",
            "description": "Nice Classification classes, 1–45 (e.g. `9` software/electronics, `25` clothing, `35` advertising/business, `42` scientific & IT services). Leave empty for all classes.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "title": "Trademark status",
            "type": "array",
            "description": "Restrict by status, e.g. `Registered`, `Filed`, `Expired`, `Ended`, `Withdrawn`, `Refused`, `Opposed`. Leave empty for all.\n\nNot enforced as a fixed list because TMview federates 70+ national registers and any of them can use a status string not seen here — and an unknown value returns a clean zero rather than quietly widening the search.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "markTypes": {
            "title": "Mark types",
            "type": "array",
            "description": "Restrict by mark type, e.g. `Word`, `Figurative`, `Combined`, `3-D`, `Sound`, `Colour`, `Hologram`, `Motion`, `Multimedia`. Leave empty for all.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "goodsServices": {
            "title": "Goods & services terms",
            "type": "array",
            "description": "Optional free-text terms matched against the goods and services description (e.g. `computer software`). Leave empty to search mark names only.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max results per search term",
            "minimum": 1,
            "maximum": 10000,
            "type": "integer",
            "description": "Results are fetched 100 per request. **TMview serves at most 10,000 rows per query** however many it reports as matching — that ceiling is upstream and no tool can exceed it. To go wider, split the search by office, Nice class or status; each combination is its own 10,000-row window. The summary row always reports both numbers.",
            "default": 100
          },
          "maxConcurrency": {
            "title": "Max concurrent requests",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Upper bound on requests in flight at once, across all search terms. TMview is a public EUIPO service querying a federated index, so keep this modest.",
            "default": 3
          },
          "minRequestInterval": {
            "title": "Minimum seconds between request starts",
            "minimum": 0,
            "maximum": 30,
            "type": "number",
            "description": "Paces request starts without tying up a worker. Each request returns 100 marks, so a run needs few requests and there is no reason to go fast.",
            "default": 0.4
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Off by default. TMview is a public EUIPO service with no bot protection and no IP gating, so a proxy adds latency without buying access.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}