{
  "openapi": "3.0.1",
  "info": {
    "title": "Snapchat Ads Library Scraper: EU Ads Gallery",
    "description": "Scrape Snapchat's EU Ads Gallery by advertiser name, EU and Turkey, no login or API key: every page read, a free coverage row per name. Get headline, call to action, media and landing links, impressions per country, age, gender and device targeting. JSON, CSV or API; watch mode bills only new ads.",
    "version": "0.1",
    "x-build-id": "I2KymMAj3Y71NbJR9"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/automation_craft~snapchat-ads-library-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-automation_craft-snapchat-ads-library-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/automation_craft~snapchat-ads-library-scraper/runs": {
      "post": {
        "operationId": "runs-sync-automation_craft-snapchat-ads-library-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/automation_craft~snapchat-ads-library-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-automation_craft-snapchat-ads-library-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": {
          "advertisers": {
            "title": "Advertiser names",
            "type": "array",
            "description": "One advertiser name per line, for example Nike or Zalando SE. Up to 200 names per run. Snap matches every paying advertiser whose name contains your text, in any case; the coverage row lists the paying advertiser names it found, so you can switch to an exact match. A name without ads is a free row, never a charge. API: an array of strings.",
            "items": {
              "type": "string"
            }
          },
          "nameMatch": {
            "title": "Name match",
            "enum": [
              "contains",
              "exact"
            ],
            "type": "string",
            "description": "Contains (default): every ad Snap returns for the name, which includes other advertisers whose name holds the same text. Exact: only ads whose paying advertiser name is exactly your text (case and extra spaces ignored); the other ads are read, counted in the coverage row and not delivered or charged.",
            "default": "contains"
          },
          "countries": {
            "title": "Countries",
            "type": "array",
            "description": "Only ads that delivered impressions in at least one of these countries. Two letter codes in any case, or English names: AT, BE, BG, HR, CY, CZ, DK, EE, FI, FR, DE, GR, HU, IE, IT, LV, LT, LU, MT, NL, PL, PT, RO, SK, SI, ES, SE, TR. Greece is GR (Snap's own code EL works too). Leave empty for every country of the gallery. The gallery does not cover the US, the UK or other countries.",
            "items": {
              "type": "string"
            }
          },
          "status": {
            "title": "Ad status",
            "enum": [
              "all",
              "active",
              "paused"
            ],
            "type": "string",
            "description": "All (default), only ads that are active now, or only paused ads, as Snap reports the status.",
            "default": "all"
          },
          "startDate": {
            "title": "Delivered from",
            "type": "string",
            "description": "Snap's own date window, first day (YYYY-MM-DD): ads that delivered impressions on or after this day. It is a delivery window, not the day an ad started: an ad that began earlier and still ran inside the window is included. Without a last day the window runs until now. Leave empty for the whole 12 months of the gallery. A day in the future is not accepted."
          },
          "endDate": {
            "title": "Delivered until",
            "type": "string",
            "description": "Snap's own date window, last day (YYYY-MM-DD): no ad that started after this day is returned. Leave empty for today. A day in the future is not accepted."
          },
          "startedFrom": {
            "title": "Started on or after",
            "type": "string",
            "description": "Only ads whose start date is on or after this day (YYYY-MM-DD, UTC)."
          },
          "startedTo": {
            "title": "Started on or before",
            "type": "string",
            "description": "Only ads whose start date is on or before this day (YYYY-MM-DD, UTC)."
          },
          "mediaTypes": {
            "title": "Media types",
            "type": "array",
            "description": "Only ads whose main creative is of one of these kinds. Dynamic means a product catalogue ad built from a feed. Leave empty for all.",
            "items": {
              "type": "string",
              "enum": [
                "video",
                "image",
                "dynamic",
                "lens"
              ],
              "enumTitles": [
                "Video",
                "Image",
                "Dynamic (catalogue)",
                "Lens"
              ]
            }
          },
          "minImpressions": {
            "title": "Minimum impressions",
            "minimum": 0,
            "type": "integer",
            "description": "Only ads with at least this many impressions in total (EU and Turkey, as Snap reports them)."
          },
          "maxItems": {
            "title": "Maximum ads",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "The most Ad rows this run may deliver (and charge), over all names together. When the field is left out, 100 is used. A page of Snap's list holds 10 ads; this Actor follows every next page until the list ends or this cap is reached."
          },
          "maxItemsPerAdvertiser": {
            "title": "Maximum ads per advertiser name",
            "minimum": 1,
            "maximum": 1000000,
            "type": "integer",
            "description": "The most Ad rows per name. Leave empty for no cap per name."
          },
          "monitorName": {
            "title": "Watch name (deliver only new ads)",
            "type": "string",
            "description": "Give a name, for example nike-de-weekly, and schedule the run: each ad is delivered and charged once per watch name, and later runs skip the ads this watch already delivered. Keep the list short enough to be read in one run (about 200 ads when nothing is new): set the status to Active now and give countries. Use a new name when you change the names or filters. Two runs on one watch name at the same time: the second delivers nothing. Leave empty for a plain run."
          },
          "includeRaw": {
            "title": "Include Snap's raw record",
            "type": "boolean",
            "description": "Adds the field raw to every ad row: the ad exactly as Snap's API returned it, with every product of a catalogue ad. Rows get larger; the price is the same.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}