{
  "openapi": "3.0.1",
  "info": {
    "title": "Remove EXIF & Metadata from Images and Videos – Bulk Privacy",
    "description": "Strip GPS location, camera model, EXIF, IPTC, XMP and C2PA from photos (JPEG, PNG, WebP, HEIC, AVIF, TIFF, GIF) and videos (MP4, MOV, MKV, WebM) in bulk, losslessly. Before/after privacy report, download links, ZIP. $1 per 1,000 images.",
    "version": "0.1",
    "x-build-id": "dsUIep6mBP7d8Dwwb"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/gazidev~media-metadata-remover/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-gazidev-media-metadata-remover",
        "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/gazidev~media-metadata-remover/runs": {
      "post": {
        "operationId": "runs-sync-gazidev-media-metadata-remover",
        "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/gazidev~media-metadata-remover/run-sync": {
      "post": {
        "operationId": "run-sync-gazidev-media-metadata-remover",
        "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": {
          "mediaUrls": {
            "title": "Image & video URLs (direct links)",
            "type": "array",
            "description": "Direct links to photo or video FILES: JPEG, PNG, WebP, HEIC/HEIF, AVIF, TIFF, GIF, MP4, MOV, M4V, MKV, WebM, AVI (your CDN, S3/R2/GCS bucket, Dropbox/Drive direct link…). Pages of YouTube, TikTok, Instagram, Facebook, X etc. are refused for free. Duplicates are removed.",
            "items": {
              "type": "string"
            }
          },
          "bulkText": {
            "title": "Bulk list (paste text or CSV)",
            "type": "string",
            "description": "One URL per line, or a CSV with a `url` column."
          },
          "sourceFileUrl": {
            "title": "Load URLs from a file (URL)",
            "type": "string",
            "description": "Public .txt or .csv link (Google Sheets 'Publish to web → CSV' works)."
          },
          "datasetId": {
            "title": "Read URLs from an Apify dataset",
            "type": "string",
            "description": "Chain after a scraper or our Image Downloader / Bulk File Downloader."
          },
          "datasetField": {
            "title": "Dataset field with the file URL",
            "type": "string",
            "description": "Arrays of URLs are accepted too.",
            "default": "url"
          },
          "keyValueStoreId": {
            "title": "Clean files stored in an Apify key-value store",
            "type": "string",
            "description": "Every binary record (image/video) in this store is cleaned - e.g. files you uploaded with the Apify API or another Actor's output store. JSON/text records are skipped for free."
          },
          "keyValueStorePrefix": {
            "title": "Only keys starting with",
            "type": "string",
            "description": "Optional key prefix filter for the key-value store."
          },
          "orientation": {
            "title": "Photo orientation",
            "enum": [
              "keep",
              "apply",
              "remove"
            ],
            "type": "string",
            "description": "Phones store portrait photos sideways plus an Orientation tag. 'keep' leaves just that one harmless tag so photos still display upright. 'apply' rotates the pixels (lossless with jpegtran when the size allows, else high-quality re-encode). For videos, 'remove' also clears the rotation flag.",
            "default": "keep"
          },
          "keepCopyright": {
            "title": "Keep copyright & artist",
            "type": "boolean",
            "description": "Keep EXIF Artist/Copyright and PNG Author/Copyright text. Everything else (GPS, camera, dates, XMP, IPTC) is still removed.",
            "default": false
          },
          "keepColorProfile": {
            "title": "Keep ICC colour profile",
            "type": "boolean",
            "description": "Keeps colours accurate (Display P3, Adobe RGB photos). An ICC profile does not identify you; turn off for the smallest files.",
            "default": true
          },
          "createZip": {
            "title": "Also create a ZIP of all cleaned files",
            "type": "boolean",
            "description": "One `cleaned-files.zip` download link in the run's key-value store (free).",
            "default": false
          },
          "maxItems": {
            "title": "Max files",
            "minimum": 0,
            "type": "integer",
            "description": "0 = all.",
            "default": 0
          },
          "maxImageSizeMb": {
            "title": "Max image size (MB)",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Larger images are skipped for free (FILE_TOO_LARGE).",
            "default": 50
          },
          "maxVideoSizeMb": {
            "title": "Max video size (MB)",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Larger downloads are stopped and skipped for free. Videos are remuxed without re-encoding (fast), but the run needs about 2.5× the video size in memory: 1 GB memory handles videos up to ~400 MB.",
            "default": 500
          },
          "maxConcurrency": {
            "title": "Parallel files",
            "minimum": 1,
            "maximum": 16,
            "type": "integer",
            "description": "Videos are additionally limited to 2 at a time.",
            "default": 6
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Only for hosts that block datacenter IPs.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}