{
  "openapi": "3.0.1",
  "info": {
    "title": "EUIPO Trademark & Design Search Scraper",
    "description": "Search the EU Intellectual Property Office's public eSearch plus register for EU trademarks (EUTM) and registered Community designs (RCD). Look up by number, owner name, or representative name, filter by legal status, Nice classification, mark type, and filing date. No login required.",
    "version": "1.0",
    "x-build-id": "jFYkZSJR13aXPfOKH"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~euipo-trademark-design-search-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-euipo-trademark-design-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/crawlerbros~euipo-trademark-design-search-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-euipo-trademark-design-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/crawlerbros~euipo-trademark-design-search-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-euipo-trademark-design-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": [
          "mode",
          "recordType"
        ],
        "properties": {
          "mode": {
            "title": "Search mode",
            "enum": [
              "search",
              "byNumber",
              "byOwnerName",
              "byRepresentativeName",
              "byOppositionNumber",
              "byDesignerName"
            ],
            "type": "string",
            "description": "Which eSearch plus lookup axis to use.",
            "default": "search"
          },
          "recordType": {
            "title": "Record type",
            "enum": [
              "trademark",
              "design"
            ],
            "type": "string",
            "description": "Search EU trademarks (EUTM) or registered Community designs (RCD).",
            "default": "trademark"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Free-text keyword matched against the registration number and the verbal element / trademark name.",
            "default": "apple"
          },
          "number": {
            "title": "Registration number (mode=byNumber)",
            "type": "string",
            "description": "Exact EUTM number (e.g. `000000753`) or RCD number (e.g. `000032776-0001`)."
          },
          "ownerName": {
            "title": "Owner / applicant name (mode=byOwnerName)",
            "type": "string",
            "description": "Case-insensitive substring match on the registered owner, e.g. `Apple Inc.`. Note: for design records specifically, EUIPO's own API always returns an empty applicant name field (it only exposes an internal applicant ID for designs) — this filter still matches correctly against the underlying owner, the returned design records just won't display the owner's name. Trademark records are unaffected."
          },
          "representativeName": {
            "title": "Representative name (mode=byRepresentativeName)",
            "type": "string",
            "description": "Case-insensitive substring match on the professional representative / law firm of record. Note: for design records specifically, EUIPO's own API always returns an empty representative name field (it only exposes an internal representative ID for designs) — this filter still matches correctly, the returned design records just won't display who the representative is."
          },
          "oppositionNumber": {
            "title": "Opposition number (mode=byOppositionNumber)",
            "type": "string",
            "description": "Find EU trademarks with an opposition case matching this number (substring match). Trademarks only — opposition proceedings don't exist on the design register. Note: the matched trademark record is returned as an ordinary trademark record — it does not include the opposition case's own status/date/parties, since EUIPO's search API doesn't expose that data on the trademark object itself."
          },
          "designerName": {
            "title": "Designer name (mode=byDesignerName)",
            "type": "string",
            "description": "Find registered designs credited to a designer/creator matching this name (case-insensitive substring match). Designs only. Note: EUIPO's API accepts this as a search filter but does not return the matched designer's name in the result records."
          },
          "status": {
            "title": "Legal status",
            "enum": [
              "",
              "Application filed",
              "Application under examination",
              "Application published",
              "Registration pending",
              "Registered",
              "Application withdrawn",
              "Application refused",
              "Application opposed",
              "Appeal pending",
              "Registration cancellation pending",
              "Registration cancelled",
              "Registration surrendered",
              "Registration expired",
              "Registered and fully published",
              "Registered and subject to deferment",
              "Lack of effects",
              "Design surrendered",
              "Invalidity procedure pending",
              "Design declared invalid",
              "Design lapsed"
            ],
            "type": "string",
            "description": "Filter to a specific legal status. Trademark and design statuses are separate lists — pick one matching the selected record type.",
            "default": ""
          },
          "markType": {
            "title": "Mark type (trademarks only)",
            "enum": [
              "",
              "Word",
              "Figurative",
              "3D shape",
              "Colour",
              "Sound",
              "Hologram",
              "Motion",
              "Multimedia",
              "Olfactory",
              "Pattern",
              "Position",
              "Other"
            ],
            "type": "string",
            "description": "Filter trademarks by mark feature/type.",
            "default": ""
          },
          "kindMark": {
            "title": "Mark kind (trademarks only)",
            "enum": [
              "",
              "Individual",
              "Collective",
              "EU Certificate"
            ],
            "type": "string",
            "description": "Filter trademarks by legal kind.",
            "default": ""
          },
          "niceClassContains": {
            "title": "Nice classification (trademarks only)",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30",
              "31",
              "32",
              "33",
              "34",
              "35",
              "36",
              "37",
              "38",
              "39",
              "40",
              "41",
              "42",
              "43",
              "44",
              "45"
            ],
            "type": "string",
            "description": "Restrict to trademarks registered in this Nice classification class (goods & services).",
            "default": ""
          },
          "locarnoClass": {
            "title": "Locarno classification (designs only)",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5",
              "6",
              "7",
              "8",
              "9",
              "10",
              "11",
              "12",
              "13",
              "14",
              "15",
              "16",
              "17",
              "18",
              "19",
              "20",
              "21",
              "22",
              "23",
              "24",
              "25",
              "26",
              "27",
              "28",
              "29",
              "30",
              "31",
              "32"
            ],
            "type": "string",
            "description": "Restrict to registered designs in this Locarno classification class (product category).",
            "default": ""
          },
          "representationMeans": {
            "title": "Design representation means (designs only)",
            "enum": [
              "",
              "Static",
              "3D",
              "Video"
            ],
            "type": "string",
            "description": "Restrict to designs represented as a static image, a 3D model, or a video.",
            "default": ""
          },
          "applicationReferenceContains": {
            "title": "Applicant's own reference contains",
            "type": "string",
            "description": "Case-insensitive substring match on the applicant's internal filing reference (e.g. `RA/T23221EM`)."
          },
          "filingDateFrom": {
            "title": "Filing date from",
            "type": "string",
            "description": "Only include records filed on/after this ISO date (`YYYY-MM-DD`)."
          },
          "filingDateTo": {
            "title": "Filing date to",
            "type": "string",
            "description": "Only include records filed on/before this ISO date (`YYYY-MM-DD`)."
          },
          "registrationDateFrom": {
            "title": "Registration date from",
            "type": "string",
            "description": "Only include records registered on/after this ISO date (`YYYY-MM-DD`)."
          },
          "registrationDateTo": {
            "title": "Registration date to",
            "type": "string",
            "description": "Only include records registered on/before this ISO date (`YYYY-MM-DD`)."
          },
          "expiryDateFrom": {
            "title": "Expiry date from",
            "type": "string",
            "description": "Only include records expiring on/after this ISO date (`YYYY-MM-DD`)."
          },
          "expiryDateTo": {
            "title": "Expiry date to",
            "type": "string",
            "description": "Only include records expiring on/before this ISO date (`YYYY-MM-DD`)."
          },
          "publishedDateFrom": {
            "title": "Publication date from",
            "type": "string",
            "description": "Only include records published on/after this ISO date (`YYYY-MM-DD`)."
          },
          "publishedDateTo": {
            "title": "Publication date to",
            "type": "string",
            "description": "Only include records published on/before this ISO date (`YYYY-MM-DD`)."
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "EUIPO's WAF intermittently resets direct requests from datacenter IPs. The actor always tries a direct request first and only falls back to the free Apify AUTO proxy group on failure — no paid proxy groups are used.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}