{
  "openapi": "3.0.1",
  "info": {
    "title": "TMview Trademark Search & Watch",
    "description": "Search 140M+ trade marks from the EUIPO, WIPO, USPTO and ~80 national offices via TMview: name, owner, Nice classes, status, dates, goods & services, oppositions. Watch mode alerts you to new conflicting filings and their opposition deadline.",
    "version": "1.0",
    "x-build-id": "LVqj9eDu0NsoS1Kba"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/trev0n~tmview-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-trev0n-tmview-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/trev0n~tmview-scraper/runs": {
      "post": {
        "operationId": "runs-sync-trev0n-tmview-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/trev0n~tmview-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-trev0n-tmview-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": {
          "searchTerms": {
            "title": "Trade mark names",
            "type": "array",
            "description": "Names to search for, one search each (e.g. <code>nike</code>, <code>coca cola</code>). Leave empty to search by the filters alone — for example every new EU filing in class 25 this month.",
            "items": {
              "type": "string"
            }
          },
          "matchMode": {
            "title": "How names match",
            "enum": [
              "contains",
              "word",
              "begins",
              "ends",
              "exact",
              "fuzzy"
            ],
            "type": "string",
            "description": "<b>Contains</b> finds the name anywhere in the mark, <b>Word</b> as a whole word, <b>Exact</b> only identical marks, <b>Fuzzy</b> similar spellings (adidas ↔ adidaz) — the one to use for a trade mark watch.",
            "default": "contains"
          },
          "offices": {
            "title": "Trade mark offices",
            "type": "array",
            "description": "Registers to search. Empty = all ~80 offices. <b>EM</b> is the EU trade mark (EUIPO), <b>WO</b> the international (Madrid) registrations.",
            "items": {
              "type": "string",
              "enum": [
                "EM",
                "WO",
                "AP",
                "AL",
                "AR",
                "AU",
                "AT",
                "BZ",
                "BX",
                "BA",
                "BR",
                "BN",
                "BG",
                "KH",
                "CA",
                "CL",
                "CN",
                "CO",
                "CR",
                "HR",
                "CU",
                "CY",
                "CZ",
                "DK",
                "DO",
                "EG",
                "EE",
                "FI",
                "FR",
                "GE",
                "DE",
                "GR",
                "HU",
                "IS",
                "IN",
                "IE",
                "IL",
                "IT",
                "JP",
                "JO",
                "LA",
                "LV",
                "LI",
                "LT",
                "MY",
                "MT",
                "MX",
                "MD",
                "MC",
                "ME",
                "MA",
                "NZ",
                "MK",
                "NO",
                "OA",
                "PY",
                "PE",
                "PH",
                "PL",
                "PT",
                "RO",
                "RU",
                "SM",
                "RS",
                "SK",
                "SI",
                "KR",
                "ES",
                "SE",
                "CH",
                "TH",
                "TT",
                "TN",
                "TR",
                "UG",
                "UA",
                "GB",
                "US",
                "UY",
                "VN",
                "ZM"
              ],
              "enumTitles": [
                "European Union (EUIPO) (EM)",
                "International (WIPO Madrid) (WO)",
                "ARIPO (African Regional IP Organization) (AP)",
                "Albania (AL)",
                "Argentina (AR)",
                "Australia (AU)",
                "Austria (AT)",
                "Belize (BZ)",
                "Benelux (BX)",
                "Bosnia and Herzegovina (BA)",
                "Brazil (BR)",
                "Brunei (BN)",
                "Bulgaria (BG)",
                "Cambodia (KH)",
                "Canada (CA)",
                "Chile (CL)",
                "China (CN)",
                "Colombia (CO)",
                "Costa Rica (CR)",
                "Croatia (HR)",
                "Cuba (CU)",
                "Cyprus (CY)",
                "Czechia (CZ)",
                "Denmark (DK)",
                "Dominican Republic (DO)",
                "Egypt (EG)",
                "Estonia (EE)",
                "Finland (FI)",
                "France (FR)",
                "Georgia (GE)",
                "Germany (DE)",
                "Greece (GR)",
                "Hungary (HU)",
                "Iceland (IS)",
                "India (IN)",
                "Ireland (IE)",
                "Israel (IL)",
                "Italy (IT)",
                "Japan (JP)",
                "Jordan (JO)",
                "Laos (LA)",
                "Latvia (LV)",
                "Liechtenstein (LI)",
                "Lithuania (LT)",
                "Malaysia (MY)",
                "Malta (MT)",
                "Mexico (MX)",
                "Moldova (MD)",
                "Monaco (MC)",
                "Montenegro (ME)",
                "Morocco (MA)",
                "New Zealand (NZ)",
                "North Macedonia (MK)",
                "Norway (NO)",
                "OAPI (African IP Organization) (OA)",
                "Paraguay (PY)",
                "Peru (PE)",
                "Philippines (PH)",
                "Poland (PL)",
                "Portugal (PT)",
                "Romania (RO)",
                "Russia (RU)",
                "San Marino (SM)",
                "Serbia (RS)",
                "Slovakia (SK)",
                "Slovenia (SI)",
                "South Korea (KR)",
                "Spain (ES)",
                "Sweden (SE)",
                "Switzerland (CH)",
                "Thailand (TH)",
                "Trinidad and Tobago (TT)",
                "Tunisia (TN)",
                "Türkiye (TR)",
                "Uganda (UG)",
                "Ukraine (UA)",
                "United Kingdom (GB)",
                "United States (US)",
                "Uruguay (UY)",
                "Vietnam (VN)",
                "Zambia (ZM)"
              ]
            }
          },
          "niceClasses": {
            "title": "Nice classes",
            "type": "array",
            "description": "Only marks covering at least one of these classes (1–45), e.g. <code>25</code> clothing, <code>9</code> software and electronics, <code>35</code> retail and advertising.",
            "items": {
              "type": "string"
            }
          },
          "statuses": {
            "title": "Status",
            "type": "array",
            "description": "Only marks in these states. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "active",
                "filed",
                "registered",
                "inactive",
                "ended",
                "expired"
              ],
              "enumTitles": [
                "Active (filed or registered)",
                "Filed (application pending)",
                "Registered",
                "Inactive (ended or expired)",
                "Ended (refused, withdrawn, cancelled)",
                "Expired (not renewed)"
              ]
            }
          },
          "markTypes": {
            "title": "Mark type",
            "type": "array",
            "description": "Only marks of these kinds. Empty = any.",
            "items": {
              "type": "string",
              "enum": [
                "Word",
                "Figurative",
                "Combined",
                "Stylized characters",
                "3-D",
                "Colour",
                "Combination of colours",
                "Sound",
                "Position",
                "Pattern",
                "Motion",
                "Multimedia",
                "Hologram",
                "Olfactory",
                "Packing",
                "Number",
                "General mark",
                "Kennfaden",
                "Other",
                "Undefined"
              ]
            }
          },
          "applicantNames": {
            "title": "Applicant / owner",
            "type": "array",
            "description": "Only marks filed by these owners, e.g. <code>Apple Inc.</code> — a whole portfolio in one run.",
            "items": {
              "type": "string"
            }
          },
          "applicationDateFrom": {
            "title": "Filed from",
            "type": "string",
            "description": "Application date from: <code>YYYY-MM-DD</code> or a window such as <code>30 days</code>, <code>6 months</code>."
          },
          "applicationDateTo": {
            "title": "Filed until",
            "type": "string",
            "description": "Application date until (<code>YYYY-MM-DD</code>)."
          },
          "registrationDateFrom": {
            "title": "Registered from",
            "type": "string",
            "description": "Registration date from (<code>YYYY-MM-DD</code> or a window)."
          },
          "registrationDateTo": {
            "title": "Registered until",
            "type": "string",
            "description": "Registration date until (<code>YYYY-MM-DD</code>)."
          },
          "onlyOpposable": {
            "title": "Only marks open to opposition",
            "type": "boolean",
            "description": "Only applications whose opposition period is running now — the ones you can still oppose.",
            "default": false
          },
          "sortBy": {
            "title": "Order",
            "enum": [
              "newest",
              "oldest",
              "relevance",
              "name"
            ],
            "type": "string",
            "description": "Order of the results (and which ones come first when a limit applies).",
            "default": "newest"
          },
          "startUrls": {
            "title": "TMview links",
            "type": "array",
            "description": "Trade mark pages (<code>https://www.tmdn.org/tmview/#/tmview/detail/EM500000018858936</code>) or search-result pages copied from TMview.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "maxResultsPerSearch": {
            "title": "Max marks per search",
            "minimum": 0,
            "type": "integer",
            "description": "Stop each search after this many marks. 0 = all of them (searches over 10 000 marks are split automatically).",
            "default": 100
          },
          "includeDetails": {
            "title": "Include full details",
            "type": "boolean",
            "description": "Also read each mark's page: goods and services wording, applicants with country and city, representatives, oppositions, publications, expiry and office link. Charged as an extra event per mark.",
            "default": false
          },
          "splitLargeSearches": {
            "title": "Go past 10 000 marks",
            "type": "boolean",
            "description": "TMview returns at most 10 000 marks per search. When on, bigger searches are split by office, filing date and class so you get all of them.",
            "default": true
          },
          "incrementalMode": {
            "title": "Watch mode (only new or changed marks)",
            "type": "boolean",
            "description": "Remember what earlier runs found and emit only marks that are new or changed (status, owner, registration, renewal). Schedule it daily or weekly for a trade mark watch.",
            "default": false
          },
          "stateKey": {
            "title": "Watch name",
            "type": "string",
            "description": "Name of the watch memory. Leave empty to derive it from the search; set it to keep one memory while you tweak filters."
          },
          "emitUnchanged": {
            "title": "Also output unchanged marks",
            "type": "boolean",
            "description": "In watch mode, output every mark, tagged NEW / UPDATED / UNCHANGED.",
            "default": false
          },
          "emitExpired": {
            "title": "Also output marks that dropped out",
            "type": "boolean",
            "description": "In watch mode, output marks found before but not in this run (e.g. no longer matching a status filter).",
            "default": false
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "POST the new and changed marks to this URL as JSON."
          },
          "telegramBotToken": {
            "title": "Telegram bot token",
            "type": "string",
            "description": "Bot token from @BotFather."
          },
          "telegramChatId": {
            "title": "Telegram chat ID",
            "type": "string",
            "description": "Chat or channel to post to."
          },
          "discordWebhookUrl": {
            "title": "Discord webhook URL",
            "type": "string",
            "description": "Post alerts to a Discord channel."
          },
          "slackWebhookUrl": {
            "title": "Slack webhook URL",
            "type": "string",
            "description": "Post alerts to a Slack channel."
          },
          "notifyOnlyChanges": {
            "title": "Alert only when something changed",
            "type": "boolean",
            "description": "Skip the alert when the run found nothing new.",
            "default": true
          },
          "notificationLimit": {
            "title": "Marks per alert",
            "minimum": 1,
            "maximum": 50,
            "type": "integer",
            "description": "How many marks one alert lists.",
            "default": 10
          },
          "includeRunSummary": {
            "title": "Add run summary to webhook",
            "type": "boolean",
            "description": "Include the counts in the webhook payload.",
            "default": true
          },
          "compact": {
            "title": "Compact output",
            "type": "boolean",
            "description": "Only the key fields (name, office, status, classes, owner, dates, link). Details are not read in this mode.",
            "default": false
          },
          "excludeEmptyFields": {
            "title": "Drop empty fields",
            "type": "boolean",
            "description": "Leave out fields with no value.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Parallel searches",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many searches run side by side. Requests stay at a polite pace either way, which TMview needs.",
            "default": 3
          },
          "proxyFallback": {
            "title": "Switch to proxies when blocked",
            "type": "boolean",
            "description": "If TMview starts refusing requests, continue the run through Apify Proxy.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "Not needed — runs work best without a proxy. Only turn it on if your runs get refused.",
            "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
                  },
                  "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}