{
  "openapi": "3.0.1",
  "info": {
    "title": "App SDK Intelligence API - Mobile App Tech Stack Data",
    "description": "Find mobile apps by the SDKs they run, their downloads, revenue or active users, then read the full record: store metadata, publisher and parent company, rating history, download and revenue estimates by day, and every SDK seen inside the app with first and last seen dates. Bring your own key.",
    "version": "0.1",
    "x-build-id": "pdyNsa2faC9q7Zxbd"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~app-sdk-intelligence-api/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-app-sdk-intelligence-api",
        "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/nabeelbaghoor~app-sdk-intelligence-api/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-app-sdk-intelligence-api",
        "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/nabeelbaghoor~app-sdk-intelligence-api/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-app-sdk-intelligence-api",
        "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": {
          "mode": {
            "title": "What this run does",
            "enum": [
              "search",
              "apps",
              "publishers",
              "estimates",
              "sdks",
              "ratings"
            ],
            "type": "string",
            "description": "A run answers one question. Search finds apps or publishers by name and by filters, then reads their records. Apps and publishers look up records for identifiers you already have. Estimates, ratings and SDKs read the time series and the technology profile. Fields belonging to another mode are ignored rather than causing an error.",
            "default": "search"
          },
          "clientId": {
            "title": "Client name",
            "type": "string",
            "description": "The client name the provider issued you when your Data API access was set up. Paired with the client secret below to sign in. Bring your own key: nothing is shared between runs."
          },
          "apiKey": {
            "title": "Client secret",
            "type": "string",
            "description": "The client secret the provider issued you. Exchanged for a session token at the start of the run, and never written to the dataset or the log."
          },
          "store": {
            "title": "Store",
            "enum": [
              "itunes_connect",
              "google_play",
              "xiaomi",
              "mobile_360",
              "tencent"
            ],
            "type": "string",
            "description": "Which app store to read. The store is part of the provider's route rather than a filter, so one run reads one store.",
            "default": "itunes_connect"
          },
          "ids": {
            "title": "Identifiers",
            "type": "array",
            "description": "Apps or publishers to read, one per line. An App Store numeric id, a Google Play package name, a publisher id, or a store listing URL that carries one. Used by every mode except search.",
            "items": {
              "type": "string"
            }
          },
          "searchSubject": {
            "title": "Search for",
            "enum": [
              "app",
              "publisher"
            ],
            "type": "string",
            "description": "Whether search mode looks for apps or for publishers. The two take different filters, so the fields that do not apply are ignored.",
            "default": "app"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Words to match against the app or publisher name, one per line. A record matching any of them is returned, so several terms widen the search rather than narrowing it.",
            "items": {
              "type": "string"
            }
          },
          "categoryId": {
            "title": "Primary category",
            "minimum": 1,
            "type": "integer",
            "description": "Limit an app search to one primary category, by the store's own numeric category id such as 6005 for Social Networking. Leave empty for every category."
          },
          "appKind": {
            "title": "Free or paid",
            "enum": [
              "",
              "free",
              "paid"
            ],
            "type": "string",
            "description": "Limit an app search to free or to paid apps.",
            "default": ""
          },
          "sdkIds": {
            "title": "SDKs in use",
            "type": "array",
            "description": "Limit an app search to apps carrying any of these SDKs, one provider SDK id per line. This is how you build a list of apps running a particular analytics, advertising or payments SDK.",
            "items": {
              "type": "string"
            }
          },
          "minSdkCount": {
            "title": "Minimum SDK count",
            "minimum": 0,
            "type": "integer",
            "description": "Only apps with at least this many SDKs installed. A high SDK count usually means a well funded app with a real stack behind it."
          },
          "minDownloads30d": {
            "title": "Minimum downloads, last 30 days",
            "minimum": 0,
            "type": "integer",
            "description": "Only records with at least this many estimated downloads in the last 30 days."
          },
          "minRevenue30d": {
            "title": "Minimum revenue, last 30 days",
            "minimum": 0,
            "type": "integer",
            "description": "Only records with at least this much estimated revenue in the last 30 days."
          },
          "minDailyActiveUsers": {
            "title": "Minimum daily active users",
            "minimum": 0,
            "type": "integer",
            "description": "Only apps with at least this many estimated daily active users, as of the moment of the request."
          },
          "minMonthlyActiveUsers": {
            "title": "Minimum monthly active users",
            "minimum": 0,
            "type": "integer",
            "description": "Only apps with at least this many estimated monthly active users, as of the moment of the request."
          },
          "minAppCount": {
            "title": "Minimum apps published",
            "minimum": 0,
            "type": "integer",
            "description": "Only publishers with at least this many known apps. Used by a publisher search."
          },
          "releasedAfter": {
            "title": "Released on or after",
            "type": "string",
            "description": "Only apps released on or after this date, as YYYY-MM-DD. Useful for finding new entrants in a category."
          },
          "advancedQuery": {
            "title": "Advanced query",
            "type": "object",
            "description": "The provider's own query form, for filters the fields above do not cover. A JSON array such as [[\"match\",\"weather\"],[\"filter\",[[\">=\",\"sdk_count\",10]]]]. When this is set it is sent as given and the fields above are ignored."
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Two letter country code for the estimates and ratings time series, such as US or GB.",
            "default": "US"
          },
          "dateFrom": {
            "title": "Start date",
            "type": "string",
            "description": "First day of a time series, as YYYY-MM-DD. Defaults to 30 days before the end date. The provider allows at most 180 days in one request."
          },
          "dateTo": {
            "title": "End date",
            "type": "string",
            "description": "Last day of a time series, as YYYY-MM-DD. Defaults to yesterday."
          },
          "modelVersion": {
            "title": "Model version",
            "enum": [
              "",
              "v2.0",
              "v3.0"
            ],
            "type": "string",
            "description": "Which estimate model to read. Leave empty for the provider's default. Only set this if the provider has told you to.",
            "default": ""
          },
          "maxResults": {
            "title": "Maximum rows",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most rows this run may store, and so the most it can charge for. A daily estimates run produces one row per app per day, which adds up quickly, so this is the cap that keeps a run predictable.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 900,
            "type": "integer",
            "description": "How fast this run calls the provider. The documented ceiling is 1000 a minute; lower this if your plan is tighter.",
            "default": 300
          },
          "baseUrl": {
            "title": "API base URL",
            "type": "string",
            "description": "Overrides the API host. Only needed if the provider has given your account a different endpoint."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}