{
  "openapi": "3.0.1",
  "info": {
    "title": "Personal Data Exposure Report — Privacy Operations Intelligence",
    "description": "A Privacy Operations Intelligence API. Per subject, one call returns where data is exposed, a severity risk score, the threat scenarios it enables, a remediation queue ranked by impact-per-minute, and monitoring that tracks whether removals stick. For privacy and executive-protection teams.",
    "version": "1.9",
    "x-build-id": "bIkS9yFNjE2P8ehjg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ryanclinton~personal-data-exposure-report/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ryanclinton-personal-data-exposure-report",
        "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/ryanclinton~personal-data-exposure-report/runs": {
      "post": {
        "operationId": "runs-sync-ryanclinton-personal-data-exposure-report",
        "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/ryanclinton~personal-data-exposure-report/run-sync": {
      "post": {
        "operationId": "run-sync-ryanclinton-personal-data-exposure-report",
        "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": [
          "firstName",
          "lastName"
        ],
        "properties": {
          "firstName": {
            "title": "First name",
            "type": "string",
            "description": "Your first name as it might appear on data broker sites."
          },
          "lastName": {
            "title": "Last name",
            "type": "string",
            "description": "Your last name as it might appear on data broker sites."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "City where you live or have lived. Helps narrow results on people-search sites."
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "CA",
              "GB",
              "IE",
              "AU",
              "DE",
              "FR",
              "NL",
              "ES",
              "IT",
              "SE",
              "ZZ"
            ],
            "type": "string",
            "description": "Your country. US is the default and has the deepest coverage. For any other country the scan covers the multinational people-search brands evidenced to hold non-US residents, not your country's own directories — and sources that are US-only (voter records, US phone directories) are skipped rather than reported as clean.",
            "default": "US"
          },
          "state": {
            "title": "State / province",
            "type": "string",
            "description": "Region code: a US state (CA, NY, TX) when country is United States, or a Canadian province (ON, QC, BC) when country is Canada. Narrows results on people-search sites. Leave blank for other countries — the sites that use it are US-indexed."
          },
          "email": {
            "title": "Email address",
            "type": "string",
            "description": "Email to check for breach exposure and broker indexing."
          },
          "phone": {
            "title": "Phone number",
            "type": "string",
            "description": "Phone number to search for (any format)."
          },
          "removeMyData": {
            "title": "Also remove my data (files opt-out requests)",
            "type": "boolean",
            "description": "When on, in addition to the scan we file formal opt-out / deletion requests to the data brokers on your behalf, under your consumer privacy rights. Charged separately. Only enable this to remove YOUR OWN information — you must be the person named above.",
            "default": false
          },
          "dateOfBirth": {
            "title": "Date of birth (YYYY-MM-DD)",
            "type": "string",
            "description": "Required for removal only. Brokers match records by name AND date of birth, so removal cannot proceed without it. Not used for the scan. Note: brokers permanently bind this to your suppression record, so enter it carefully."
          },
          "removalConsent": {
            "title": "I authorise these removal requests for my own data",
            "type": "boolean",
            "description": "Required to file removals. By enabling this you confirm the information above is your own, and you authorise removal requests to be submitted on your behalf as your authorised agent. You can withdraw this at any time.",
            "default": false
          },
          "braveApiKey": {
            "title": "Brave Search API key",
            "type": "string",
            "description": "Optional. Brave Search API key for SERP-based broker discovery. Free tier at https://api.search.brave.com/"
          },
          "hibpApiKey": {
            "title": "Have I Been Pwned API key",
            "type": "string",
            "description": "Optional. HIBP API key for breach checking. $3.50/month at https://haveibeenpwned.com/API/Key"
          },
          "watchlistName": {
            "title": "Watchlist name",
            "type": "string",
            "description": "Optional. Track this subject across runs under a named watchlist. On the next scan with the same name, every site gets a change flag (NEW / RESOLVED / UNCHANGED) and the summary reports what changed since last time — turning one-off scans into monitoring. Leave blank for a stateless one-off scan."
          },
          "outputProfile": {
            "title": "Output profile",
            "enum": [
              "minimal",
              "standard",
              "full"
            ],
            "type": "string",
            "description": "How much detail to return. 'minimal' = exposed sites + summary only. 'standard' = all sites + summary. 'full' = adds raw diagnostics (matched indicator, HTTP status, raw data types).",
            "default": "standard"
          },
          "deepScan": {
            "title": "Deep scan (browser fallback)",
            "type": "boolean",
            "description": "When on (default), sites that block the fast HTTP scan are retried in a headless browser to clear anti-bot challenges — higher coverage and more consistent results, slightly slower. Turn off for a faster, cheaper HTTP-only scan.",
            "default": true
          },
          "profileType": {
            "title": "Scoring profile",
            "enum": [
              "standard",
              "executive",
              "journalist",
              "public-official",
              "healthcare",
              "legal"
            ],
            "type": "string",
            "description": "Risk-scoring lens for the subject's threat model. Same scan, different risk interpretation. 'standard' weights all exposed data evenly. The others weight physical-locatability and family data higher in ways that fit each persona: executive (protected persons), journalist (source protection + physical safety), public-official (politicians), healthcare (physicians), legal (attorneys).",
            "default": "standard"
          },
          "analystHourlyRate": {
            "title": "Analyst hourly rate (USD)",
            "type": "integer",
            "description": "Your analyst's hourly rate, used to estimate the operational cost of working the removal queue (operationalEstimate). Default 50.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Residential proxies recommended for best coverage. Data broker sites block datacenter IPs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}