{
  "openapi": "3.0.1",
  "info": {
    "title": "App Developer Email Finder: Google Play, App Store, Steam",
    "description": "Find the public developer email, website, address, phone and privacy policy of any app on Google Play, the Apple App Store, Steam or the Chrome Web Store. Give app URLs or IDs, or a keyword per store. $0.0015 per app with an email; apps without one are free. No login.",
    "version": "0.1",
    "x-build-id": "pLBUdnVsOSqvoX8Wt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/datagleaner~app-developer-email-finder/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-datagleaner-app-developer-email-finder",
        "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/datagleaner~app-developer-email-finder/runs": {
      "post": {
        "operationId": "runs-sync-datagleaner-app-developer-email-finder",
        "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/datagleaner~app-developer-email-finder/run-sync": {
      "post": {
        "operationId": "run-sync-datagleaner-app-developer-email-finder",
        "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": {
          "apps": {
            "title": "Apps",
            "type": "array",
            "description": "Store URLs or app IDs, one per line, from any of the four stores; the store is read from the URL. Google Play: `https://play.google.com/store/apps/details?id=com.duolingo` or `com.duolingo`. App Store: `https://apps.apple.com/us/app/duolingo/id570060128` or `id570060128`. Steam: `https://store.steampowered.com/app/413150/` or `steam:413150`. Chrome Web Store: the detail URL or the 32-letter extension ID. Leave this and the keywords empty to run a 5-app sample.",
            "items": {
              "type": "string"
            }
          },
          "searchKeywords": {
            "title": "Search keywords",
            "type": "array",
            "description": "Find apps by keyword, for example `habit tracker` or `roguelike`. Each keyword is searched in every store chosen below.",
            "items": {
              "type": "string"
            }
          },
          "stores": {
            "title": "Stores to search",
            "type": "array",
            "description": "Which stores the keywords are searched in. App URLs and IDs above are always looked up in their own store.",
            "items": {
              "type": "string",
              "enum": [
                "googlePlay",
                "appStore",
                "steam",
                "chromeWebStore"
              ],
              "enumTitles": [
                "Google Play",
                "Apple App Store",
                "Steam",
                "Chrome Web Store"
              ]
            },
            "default": [
              "googlePlay"
            ]
          },
          "maxAppsPerKeyword": {
            "title": "Max apps per keyword and store",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "How many apps to take from each keyword search in each store. Google Play returns at most about 30 per keyword; the App Store up to 200; Steam and the Chrome Web Store page further.",
            "default": 30
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two-letter store country (`us`, `gb`, `de`, `jp`). It sets the storefront searched and the currency of prices.",
            "default": "us"
          },
          "followLinks": {
            "title": "Visit the developer's website",
            "type": "boolean",
            "description": "Visit up to 3 pages of the developer's own website, support page and privacy policy to find more emails (including for App Store apps outside the EU, where Apple shows no email) and the developer's social profiles. Only addresses that belong to the developer are kept.",
            "default": true
          },
          "onlyWithEmail": {
            "title": "Only apps with an email",
            "type": "boolean",
            "description": "Output only apps whose developer has at least one public email. Apps without an email are free either way.",
            "default": false
          },
          "maxConcurrency": {
            "title": "Apps in parallel",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "How many apps are processed at the same time. Steam and the iTunes API are always paced below their rate limits whatever this is.",
            "default": 5
          },
          "delaySecs": {
            "title": "Pacing (seconds)",
            "minimum": 0,
            "maximum": 30,
            "type": "integer",
            "description": "Each app starts after a random pause of up to this many seconds. Raise it on very large runs to stay polite.",
            "default": 1
          },
          "respectRobotsTxt": {
            "title": "Respect robots.txt on developer websites",
            "type": "boolean",
            "description": "Skip developer website pages that the site's robots.txt disallows.",
            "default": true
          },
          "requestTimeoutSecs": {
            "title": "Request timeout (seconds)",
            "minimum": 3,
            "maximum": 120,
            "type": "integer",
            "description": "How long to wait for each page before retrying.",
            "default": 25
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Optional. Defaults to no proxy. Use one if a store starts answering with errors on very large runs."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}