{
  "openapi": "3.0.1",
  "info": {
    "title": "EUIPO & Benelux Trademark Search & Watch (TMview)",
    "description": "Find similar trademark names across EUIPO and Benelux via TMview. Compare spelling, sound and Nice classes; track new filings, status changes and available opposition deadlines. Export results or send webhook alerts. Optional official EUIPO API access.",
    "version": "0.1",
    "x-build-id": "gHCIsecxHqNGlU3di"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/olliolli~eu-trademark-watch/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-olliolli-eu-trademark-watch",
        "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/olliolli~eu-trademark-watch/runs": {
      "post": {
        "operationId": "runs-sync-olliolli-eu-trademark-watch",
        "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/olliolli~eu-trademark-watch/run-sync": {
      "post": {
        "operationId": "run-sync-olliolli-eu-trademark-watch",
        "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": [
          "watchlist"
        ],
        "properties": {
          "watchlist": {
            "title": "Marks to watch",
            "maxItems": 500,
            "type": "array",
            "description": "Your marks, each with its Nice classes and an optional note (for example the client). Up to 500 marks per run. Example: [{\"mark\": \"Lumora\", \"niceClasses\": [9, 42], \"notes\": \"client A\"}]. Without classes, classes are not compared."
          },
          "mode": {
            "title": "Mode",
            "enum": [
              "watch",
              "baseline",
              "clearance"
            ],
            "type": "string",
            "description": "Schedule \"watch\" weekly. Optional: one \"baseline\" run first, so that watch runs only report what is new after it. Use \"clearance\" to check a name once.",
            "default": "watch"
          },
          "lookbackDays": {
            "title": "Look back (days, on the application date)",
            "minimum": 1,
            "maximum": 3650,
            "type": "integer",
            "description": "Only filings with an application date in the last N days. Empty: 14 days in watch mode, 365 in baseline mode, all dates in clearance mode. Previously reported filings are deduplicated. A longer window can increase compute and proxy usage."
          },
          "source": {
            "title": "Data source",
            "enum": [
              "tmview",
              "euipo-api"
            ],
            "type": "string",
            "description": "TMview is the public search tool of the EU Intellectual Property Network. The official EUIPO API needs your own free API keys (fields below) and covers EU trade marks and international registrations designating the EU.",
            "default": "tmview"
          },
          "offices": {
            "title": "Offices (TMview)",
            "type": "array",
            "description": "Trade mark offices to search in TMview. Belgium, the Netherlands and Luxembourg are covered by BX. Ignored with the official EUIPO API.",
            "items": {
              "type": "string",
              "enum": [
                "EM",
                "BX",
                "WO",
                "AT",
                "BG",
                "CY",
                "CZ",
                "DE",
                "DK",
                "EE",
                "ES",
                "FI",
                "FR",
                "GR",
                "HR",
                "HU",
                "IE",
                "IT",
                "LT",
                "LV",
                "MT",
                "PL",
                "PT",
                "RO",
                "SE",
                "SI",
                "SK",
                "GB",
                "CH",
                "NO",
                "IS",
                "LI"
              ],
              "enumTitles": [
                "EM - EU trade marks (EUIPO)",
                "BX - Benelux (BOIP)",
                "WO - International registrations (WIPO)",
                "AT - Austria",
                "BG - Bulgaria",
                "CY - Cyprus",
                "CZ - Czechia",
                "DE - Germany",
                "DK - Denmark",
                "EE - Estonia",
                "ES - Spain",
                "FI - Finland",
                "FR - France",
                "GR - Greece",
                "HR - Croatia",
                "HU - Hungary",
                "IE - Ireland",
                "IT - Italy",
                "LT - Lithuania",
                "LV - Latvia",
                "MT - Malta",
                "PL - Poland",
                "PT - Portugal",
                "RO - Romania",
                "SE - Sweden",
                "SI - Slovenia",
                "SK - Slovakia",
                "GB - United Kingdom",
                "CH - Switzerland",
                "NO - Norway",
                "IS - Iceland",
                "LI - Liechtenstein"
              ]
            },
            "default": [
              "EM",
              "BX"
            ]
          },
          "proxyConfiguration": {
            "title": "Proxy",
            "type": "object",
            "description": "TMview uses at most three fresh browser/proxy sessions across the whole run. Default order: datacenter, residential, new residential session. A working session is reused across marks. Search/detail requests stay sequential at most once per second. Browser runs need 1024 MB. Completed checks over residential carry $0.002 per mark plus a one-time $0.05 residential-session event after the first completed check; the official EUIPO API uses no browser and never uses residential.",
            "default": {
              "useApifyProxy": true
            }
          },
          "allowResidentialProxy": {
            "title": "Allow residential proxy (TMview)",
            "type": "boolean",
            "description": "Allow residential fallback when the selected TMview connection fails, including a later timeout or session refusal. The total limit is three connection attempts per run. Off: retries stay on the selected connection type. If you explicitly select residential in Proxy, that selection still applies. Every completed mark checked over residential can carry the Residential proxy event; the $0.02 start fee per allocated GB applies even if all attempts fail. The $0.05 residential-session fee is charged once per run only after a completed residential check, plus $0.002 per completed residential mark. Platform compute and proxy usage are included in event prices for standard runs.",
            "default": true
          },
          "similarityThreshold": {
            "title": "Similarity threshold (0-100)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Only filings that score at least this much are returned. The score combines spelling, sound and shared words, plus a bonus or malus for the Nice classes. Each result explains its score.",
            "default": 70
          },
          "classMatch": {
            "title": "Nice classes",
            "enum": [
              "same",
              "related",
              "any"
            ],
            "type": "string",
            "description": "Which classes count as a conflict. \"Related\" uses practical class groups, not a legal test.",
            "default": "same"
          },
          "statuses": {
            "title": "Statuses",
            "type": "array",
            "description": "Empty: filed, published, under opposition and registered in watch and baseline mode; every status in clearance mode. Status changes of filings you already received are always reported.",
            "items": {
              "type": "string",
              "enum": [
                "filed",
                "published",
                "opposed",
                "registered",
                "appealed",
                "ended",
                "expired"
              ],
              "enumTitles": [
                "Filed",
                "Published (opposition period)",
                "Under opposition",
                "Registered",
                "Under appeal",
                "Ended (refused, withdrawn, cancelled)",
                "Expired"
              ]
            }
          },
          "markFeatures": {
            "title": "Mark types",
            "type": "array",
            "description": "Empty: all types. Only the name of a mark is compared; images are not compared.",
            "items": {
              "type": "string",
              "enum": [
                "WORD",
                "FIGURATIVE",
                "COMBINED",
                "SHAPE_3D",
                "COLOUR",
                "SOUND",
                "POSITION",
                "PATTERN",
                "MOTION",
                "MULTIMEDIA",
                "HOLOGRAM",
                "OTHER"
              ],
              "enumTitles": [
                "Word",
                "Figurative",
                "Combined (word and image)",
                "3D shape",
                "Colour",
                "Sound",
                "Position",
                "Pattern",
                "Motion",
                "Multimedia",
                "Hologram",
                "Other"
              ]
            }
          },
          "excludeApplicants": {
            "title": "Ignore applicants",
            "type": "array",
            "description": "Your own company names (or a client's), so that your own new filings are not reported. Matches when the applicant name contains the text, case ignored.",
            "items": {
              "type": "string"
            }
          },
          "webhookUrl": {
            "title": "Webhook URL",
            "type": "string",
            "description": "Optional. One POST per run with {runId, source, newHits, statusChanges}. A failed POST is only a warning. For e-mail, add Apify's \"Send email\" integration to the Actor or schedule."
          },
          "stateName": {
            "title": "State name",
            "type": "string",
            "description": "Optional. Watch runs remember per mark what they already reported. Use a different name per independent watch list that contains the same marks (for example per client)."
          },
          "euipoClientId": {
            "title": "EUIPO client ID",
            "type": "string",
            "description": "Only for the source \"Official EUIPO Trademark Search API\". Register a free app on dev.euipo.europa.eu and subscribe it to the Trademark Search API. Stored encrypted; never written to the log or the results."
          },
          "euipoClientSecret": {
            "title": "EUIPO client secret",
            "type": "string",
            "description": "The secret of that app. Stored encrypted; never written to the log or the results."
          },
          "euipoEnvironment": {
            "title": "EUIPO environment",
            "enum": [
              "production",
              "sandbox"
            ],
            "type": "string",
            "description": "Use the sandbox only to test keys from dev-sandbox.euipo.europa.eu.",
            "default": "production"
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}