{"openapi": "3.1.0", "info": {"title": "MixRank API", "version": "2", "description": "The MixRank API is an HTTP/JSON interface to the MixRank data platform, giving developers programmatic access to\npeople, company, job posting, technographic, and mobile app and SDK data, all refreshed hourly. This page covers\nauthentication, usage limits, request and response formats, timeouts, rate limits, status codes, and the conventions\nshared by every endpoint.\n\nRead the [Timeouts](#tag/timeouts), [Rate Limits](#tag/rate-limits), and\n[Status Codes](#tag/status-codes) guides for request behavior and recovery guidance.\n\n## Getting Started\n\nMost responses are JSON; some endpoints return a file or an empty response.\n\nThese endpoints are provided by MixRank. Third-party names identify the platforms and technologies described.\n\n## Usage Limits\n\nThe number of requests you can make is determined by your API license. If you're unsure what your limit is,\nplease ask us. Exceeding the request limit may result in a service interruption.\n\nYour API license determines which endpoints, data, and documentation you can access. Contact support to request\nadditional access. A valid key does not grant access to every endpoint.\n\nPermission names such as `playstore.apps` identify access granted to the user associated with your API key.\nSome endpoints require additional permissions for downloads or data refreshes.\n\nCached data means information previously collected and stored by MixRank. It may differ from the source\nplatform's current state. A refresh requests a new observation; its permissions and billing depend on the endpoint.\n\n## Request Format\n\nThe base URL is `https://api.mixrank.com/v2/json/{api_key}`, where `{api_key}` is your MixRank API key.\n\nPath parameters are required. Query parameters can also be required. Use the HTTP method and input format\ndocumented for each endpoint; POST requests may require form data, a file upload, or JSON.\n\nParameter names are case-sensitive. Path and query values use URL encoding.\n\nBoolean query parameters use `t` or `f`. Date parameters use `YYYY-MM-DD` unless the endpoint specifies another\nformat; for example, `/usage` accepts a month as `YYYY-MM`.\n\n## Response Format\n\nJSON errors use an `errors` object, keyed by the parameter they concern or by `message`. Each endpoint lists its\nerror statuses with example bodies. Error responses and successful response shapes vary by endpoint.\n\nAn optional parameter value that can't be parsed, is out of range, or isn't one of the accepted values, such as\n`page_size=abc`, or `page_size=1000` where the maximum is below 1000, returns HTTP 200 with an `errors` object\ninstead of results, so check for `errors` before reading a response. Endpoints that validate a value themselves\nreturn the status listed in their error responses.\n\nPaginated endpoints commonly return `total`, `offset`, `page_size`, and `results`. A `null` total means the total\nis unavailable, not zero. Other endpoints return a single object, a bare array, or a different results wrapper.\n\nDate and timestamp representations vary by endpoint. Timestamps may contain a space between the date and time,\nfractional seconds, and a UTC offset; do not assume every timestamp uses RFC 3339. Missing values may be `null`,\nempty collections, or omitted fields; these are not interchangeable. Some optional content must be requested\nexplicitly.\n"}, "servers": [{"url": "https://api.mixrank.com/v2/json/{api_key}", "variables": {"api_key": {"default": "YOUR_API_KEY", "description": "Your MixRank API key."}}}], "tags": [{"name": "Timeouts", "description": "Most MixRank API requests complete within a few seconds. Some endpoints perform live work, such as validating an\nemail address, finding a professional contact email, or running a fresh search. These requests can take longer.\n\nEvery request has a time limit. When a request cannot finish in time, the response depends on where the limit was\nreached.\n\n### Request time limits\n\nUse these limits as general guidance when designing an integration:\n\n| Request type | Approximate limit |\n|---|---|\n| Most API requests | About 2 minutes |\n| Email validation | About 2 minutes |\n| Email prospecting | About 5 minutes |\n| List-endpoint searches | 30 seconds for the search itself |\n\nEmail validation also accepts an optional `timeout` parameter. Use it to set a shorter validation deadline, up to\n120 seconds.\n\nThese are approximate limits, not guaranteed response times. Network conditions, query complexity, and live\nprocessing can affect how long a request takes.\n\n### Search timeouts on list endpoints\n\nList endpoints stop the underlying search after 30 seconds. If the search does not finish in time, the API returns\nHTTP 408 with a JSON error:\n\n```json\n{\"errors\": {\"message\": \"Timeout\"}}\n```\n\nSome endpoints spell the message in lowercase, so compare it case-insensitively.\n\nRetrying the same request without changes will usually time out again. Narrow the search before retrying:\n\n- Add more filters.\n- Reduce the requested page size.\n- Request a smaller result set.\n- Split a broad search into several narrower searches.\n\n### Overall request timeouts\n\nWhen a request reaches an overall time limit, the API can return 504 Gateway Timeout. In some cases, it can return\n502 Bad Gateway instead.\n\nThese responses can have an HTML body rather than the JSON error format used by most API errors. Do not assume\nthat every error response is JSON. Check the response content type before parsing the body.\n\nA 502 or 504 response does not confirm that processing stopped. Before resubmitting billable or non-idempotent\nwork, check the endpoint's job status or reconcile whether the first request completed. Retry automatically only\nwhen the operation is safe to repeat. For repeated timeouts, reduce the work requested or use one of the\nasynchronous options below.\n\n### Email validation timeouts\n\nEmail validation handles timeouts differently. If validation cannot finish in time, the API can return a normal\n200 response with the validation result set to `temp_error`.\n\nA `temp_error` result means the address could not be validated during that request. It does not confirm that the\naddress is valid or invalid. Retry later, or use a webhook for validation work that should not hold an API\nconnection open.\n\n### Avoid waiting with asynchronous options\n\nFor long-running work, use an asynchronous workflow instead of keeping a request open.\n\n**Webhooks.** Email validation and email prospecting accept a `webhook` parameter containing an `https` URL. When\nyou provide a webhook URL, the API accepts the request immediately and returns HTTP 202 with a response similar to:\n\n```json\n{\"id\": \"...\", \"status\": \"accepted\"}\n```\n\nThe result is sent to the webhook URL when it is ready. MixRank retries delivery until the receiving server\nresponds with a 2xx status, up to 10 attempts in total.\n\nWebhook deliveries are signed using the [Standard Webhooks](https://www.standardwebhooks.com/) specification.\nVerify the signature before processing a delivery.\n\n**Bulk jobs.** For large batches, upload one file instead of sending thousands of individual requests. You can\nthen check the job status and download the results when processing is complete.\n\nCurrent file limits are:\n\n| Bulk job type | Maximum lines per file |\n|---|---|\n| Email validation | 3,000,000 |\n| Professional Social profiles | 250,000 |\n| Professional Social posts | 10,000 |\n\nBulk jobs are the recommended option when the batch size, expected processing time, or retry behavior would make\nindividual API requests difficult to manage.\n\n**Segment exports.** Segment exports use a token-based workflow. Start the export, receive a token, and use that\ntoken to check the export status. While the export is still processing, the status request returns 204 No\nContent. When the export is ready, the status request returns the result file. Segment exports are capped at\n10,000 results.\n\n### Other request limits\n\n- Request uploads can be up to 300 MB.\n- Most list endpoints return up to 100 results per page.\n- App Store and Google Play SDK lists return up to 500 results per page.\n- Company timeseries endpoints return up to 1,000 results per page.\n\nSet client-side timeouts to allow enough time for the API operation and normal network overhead. If your client\ntimeout is shorter than the API operation, your application can stop waiting while the API request is still being\nprocessed.\n"}, {"name": "Rate Limits", "description": "MixRank API rate limits are based on concurrency. Concurrency means the number of requests running at the same\ntime, not the number of requests sent per second or per minute.\n\nAs long as your integration stays within its concurrency allowance, it can continue sending requests without\nwaiting for a per-minute window to reset.\n\n### Concurrency limit\n\nThe default limit is 100 concurrent requests per API key.\n\nEach API key has its own concurrency allowance. Two API keys on the same account do not share one pool of\nconcurrent requests.\n\nHigher limits are available on request. Contact MixRank if your integration needs more concurrency.\n\n### Exceeding the concurrency limit\n\nWhen every available request slot is in use, the next request returns HTTP 429 Too Many Requests immediately:\n\n```json\n{\"errors\": {\"rate_limit\": \"Exceeded rate limit (100 concurrent requests).\"}}\n```\n\nThe number in the error message is the limit for that API key.\n\nA concurrency slot becomes available as soon as one of your running requests finishes. To recover from a 429\nresponse:\n\n- Wait briefly before retrying.\n- Increase the delay after repeated failures.\n- Reduce the number of requests your application runs in parallel.\n- Contact MixRank if your workload consistently needs a higher limit.\n\nUse bounded retries with backoff and jitter. Do not retry immediately in a tight loop, because that can keep your\nworker pool saturated without creating useful capacity.\n\n### Rate limit headers\n\nThe API does not currently return `Retry-After` or `X-RateLimit-*` headers.\n\nThe 429 error message is the available signal that the concurrency limit was reached. Your integration should\ntrack its own in-flight requests and keep the number below the limit for each API key.\n\n### Other limits that can return 429\n\nA 429 response can also indicate that too many asynchronous jobs are waiting to finish, or that too many requests\nused an invalid API key.\n\n| Limit | Behavior |\n|---|---|\n| Bulk jobs | Up to 20 unfinished jobs per user for each bulk job type |\n| Pending webhook requests | Up to 1,200 requests being processed per API key for each endpoint |\n| Invalid API keys | Repeated requests with an invalid key are throttled for a while |\n\nFor bulk jobs, wait until at least one unfinished job completes before submitting another job. For webhook\nrequests, wait for pending requests to be processed before submitting more webhook-based work. A request stops\ncounting when its processing finishes and the webhook is queued; delivery to your webhook URL may still be in\nprogress.\n\n### How API usage is counted\n\nUsage is generally based on returned results, not on the number of API requests.\n\nFor example, looking up 10 companies in one request counts as 10 results. Some optional data, add-ons, and\nrequests for refreshed data can count separately from the main result.\n\nFailed requests normally do not count toward usage. This includes requests rejected because of an invalid API key,\nmissing permissions, an invalid parameter, or a rate limit.\n\n### Checking account usage\n\nUse the `/usage` endpoint to check account usage for a calendar month, for example `/usage?month=2026-10`.\n\nThe response provides account totals and usage broken down by data type and user. Usage data can be up to\napproximately five minutes behind.\n\nUse this endpoint to monitor consumption, compare usage across users, and identify workloads that may need bulk\njobs, webhooks, or a higher concurrency limit.\n\n### Recommended concurrency strategy\n\nFor stable integrations:\n\n- Set a worker-pool or semaphore limit below your API key allowance.\n- Track in-flight requests separately for each API key.\n- Queue additional work instead of starting unlimited parallel requests.\n- Retry 429 responses with increasing delays.\n- Add jitter so multiple workers do not retry at the same time.\n- Use bulk jobs or webhooks for large, long-running workloads.\n"}, {"name": "Status Codes", "description": "Every MixRank API response includes an HTTP status code. Most API errors return a JSON body with an `errors`\nobject that explains what went wrong.\n\nDo not rely on the status code alone. Some unsuccessful requests return HTTP 200 with an `errors` object, and some\ngateway errors return HTML instead of JSON.\n\nA reliable client should:\n\n1. Read the HTTP status code.\n2. Check whether the response body contains a top-level `errors` object.\n3. Parse the body according to the response content type.\n4. Use the error message and endpoint documentation to decide whether to retry.\n\n### Invalid parameter values can return 200\n\nWhen a parameter has an invalid value, the API can return HTTP 200 with an `errors` object instead of returning\n400. This behavior is maintained for compatibility with existing integrations. Always check for `errors` before\ntreating a 200 response as successful.\n\nExamples:\n\n```json\n{\"errors\": {\"page_size\": \"Invalid value 'abc'.\"}}\n{\"errors\": {\"page_size\": \"Invalid value: '500'. Expected range: 1 - 100.\"}}\n{\"errors\": {\"sort_order\": \"Invalid value: 'up'.\"}}\n{\"errors\": {\"since\": \"Invalid datetime: '2024/01/01'. Expected format: YYYY-MM-DD.\"}}\n{\"errors\": {\"flag\": \"Invalid value: 'true'.\"}}\n```\n\nBoolean parameters use `t` and `f`, not `true` and `false`.\n\nWhen several parameters are invalid, the response can include one error for each parameter in the same `errors`\nobject.\n\n### Status code reference\n\n| Code | Meaning | Example | Recommended action |\n|---|---|---|---|\n| 200 | The request succeeded, or a parameter value failed validation. | Data body, or `{\"errors\": {\"page_size\": \"Invalid value 'abc'.\"}}` | Check for `errors` before using the response. |\n| 202 | The request was accepted for asynchronous processing. | `{\"id\": \"...\", \"status\": \"accepted\"}` | Wait for the webhook or check the relevant job status. |\n| 204 | The requested export is still processing. | Empty body | Check again later. |\n| 400 | A required parameter is missing, or the request is malformed. | `{\"errors\": {\"domain\": \"Missing domain to test emails.\"}}` | Fix the request before retrying. |\n| 402 | A bulk job exceeds the available account quota. | `{\"error\": \"credit_limit_exceeded\", \"message\": \"...\", \"current_usage\": 8500, \"quota_limit\": 10000, \"monthly_limit\": 10000, \"contact_email\": \"accounts@mixrank.com\"}` | Check remaining quota or contact MixRank before submitting another job. |\n| 403 | The API key is invalid or disabled. | `{\"errors\": {\"api_key\": \"Invalid api_key.\"}}` | Check the API key. Do not keep retrying the same request. |\n| 403 | The key is valid, but the plan does not include the endpoint or the plan has expired. | `{\"errors\": {\"permissions\": \"You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified.\"}}` | Contact MixRank to update account access. |\n| 404 | The URL does not exist. | `{\"errors\": {\"message\": \"The resource could not be found.\"}}` | Check the endpoint path and HTTP method. |\n| 404 | The requested data was not found. | `{\"errors\": {\"message\": \"No results.\"}}` or `{\"errors\": {\"message\": \"No such object.\"}}` | Treat this as an empty result unless the request should be corrected. |\n| 408 | The search took too long. | `{\"errors\": {\"message\": \"Timeout\"}}` | Narrow the search, reduce page size, and try again. |\n| 429 | Too many requests are running at the same time, or too many asynchronous jobs are pending. | `{\"errors\": {\"rate_limit\": \"Exceeded rate limit (100 concurrent requests).\"}}` | Wait, reduce parallelism, and retry with backoff. |\n| 500 | An internal API error occurred. | `{\"errors\": {\"message\": \"Internal error. Engineering has been alerted.\"}}` | Retry only if the operation is safe to repeat; otherwise reconcile whether it completed. Contact support if the problem continues. |\n| 502 / 504 | The request took too long, or an upstream server could not respond. | HTML error page | Processing may continue after the response. Reconcile the first request before repeating billable or non-idempotent work. |\n| 503 | A service or dependency is temporarily unavailable. | `{\"errors\": {\"webhook\": \"Queued prospect requests are temporarily unavailable. Please retry later.\"}}` | Wait and retry only if the operation is safe to repeat; otherwise check whether the first request completed. |\n| 512 | A Professional Social live-fetch request failed temporarily. | `Temporary failure in fetching the company page. Please try again after a few hours.` | Retry later, normally after a few hours. |\n| 513 | A Professional Social page is unavailable, private, deactivated, or removed. | `The requested profile is deactivated/private and cannot be fetched.` | Do not retry the same request unless the underlying page becomes available again. |\n\n### Error response formats\n\nMost errors use this JSON structure:\n\n```json\n{\"errors\": {\"parameter_or_error_type\": \"A description of the problem.\"}}\n```\n\nThe key inside `errors` can be a parameter name or an error type such as `message`, `api_key`, `permissions`, or\n`rate_limit`. Do not assume that every error uses `errors.message`.\n\nSome gateway errors, including 502 and 504, can return an HTML page instead of JSON. Check the content type before\nparsing the body.\n\n### Empty results and not-found responses\n\nA request that finds no data does not always return the same response shape. Many endpoints return 404 with a\n`No results.` or `No such object.` message. Some search endpoints can return a successful response with an empty\nlist instead.\n\nHandle both cases:\n\n- HTTP 404 with an error message.\n- HTTP 200 with an empty results list.\n\nNeither case necessarily means the request failed. It can mean that no matching record is available.\n\n### API keys and endpoint permissions\n\nA successful API key check does not guarantee access to every endpoint. Use `/echo` to confirm that a key is\nactive. If the key works but the account does not have permission for a specific endpoint, the endpoint returns\n403 with a `permissions` error.\n\n### Trailing slashes\n\nAPI URLs redirect from a trailing slash to the equivalent URL without the slash. Use the canonical no-slash form\nin requests.\n\n### Retrying requests\n\nUse different retry behavior for different error types:\n\n- Do not retry unchanged 400, 403, or 404 responses. Fix the request, key, permissions, or endpoint path first.\n- For 408, narrow the query before retrying. Repeating the same broad search will usually time out again.\n- For 429, wait and reduce concurrency. Use backoff and jitter.\n- For 500, 502, 503, and 504, retry cautiously. A timeout or temporary failure does not prove that processing stopped.\n  For billable or non-idempotent work, check the job status or reconcile the first request before resubmitting. Only\n  automatically retry operations that are safe to repeat; wait between attempts and stop after a small number.\n- For 512, retry later. A few hours is usually appropriate.\n- For 513, do not retry the same unavailable page. Treat it as unavailable unless its status changes.\n\n### Reporting an API problem\n\nAPI error responses do not currently include a request ID. When contacting support about a reproducible problem,\ninclude:\n\n- The full request URL and parameters, with the API key removed.\n- The HTTP method.\n- The response status code.\n- The full response body, if available.\n- The approximate time the request was made, including the time zone.\n\nDo not include your API key in support messages, logs, screenshots, or issue reports.\n"}, {"name": "Account", "description": "Verify your MixRank API key and monitor API usage. The Account endpoints confirm that a key is active and report request counts against the limits of your API license."}, {"name": "Companies", "description": "The MixRank Company Data API provides firmographic data on millions of companies, including active businesses, with 150+ attributes per record and five years of monthly headcount history. Search and match companies, pull headcount time series and employee metrics by job tag, and build company segments with preview and query endpoints.\n\nAlso see <a href=\"#tag/audience-segments/GET/companies/segment-preview\">Company Segment Preview (GET)</a> (Audience Segments), <a href=\"#tag/audience-segments/POST/companies/segment-preview\">Company Segment Preview (POST)</a> (Audience Segments), <a href=\"#tag/audience-segments/GET/companies/segment-query\">Company Segment Query (GET)</a> (Audience Segments), <a href=\"#tag/audience-segments/POST/companies/segment-query\">Company Segment Query (POST)</a> (Audience Segments)."}, {"name": "People", "description": "The MixRank People Data API provides professional profile data on billions of people, with 250+ fields per record, refreshed hourly. Match and search people profiles, resolve social profile URLs to person records, retrieve profile photos and contact data, and build people segments with preview and query endpoints.\n\nAlso see <a href=\"#tag/email/GET/email/prospect\">Get Prospect</a> (Email), <a href=\"#tag/audience-segments/GET/person/segment-preview\">Person Segment Preview (GET)</a> (Audience Segments), <a href=\"#tag/audience-segments/POST/person/segment-preview\">Person Segment Preview (POST)</a> (Audience Segments), <a href=\"#tag/audience-segments/GET/person/segment-query\">Person Segment Query (GET)</a> (Audience Segments), <a href=\"#tag/audience-segments/POST/person/segment-query\">Person Segment Query (POST)</a> (Audience Segments)."}, {"name": "Email", "description": "The MixRank Email API finds and verifies professional email addresses. Validate a single address in real time, or submit a bulk email validation job and retrieve the results when it completes."}, {"name": "Audience Segments", "description": "The MixRank Audience Segments API builds B2B audiences from people and company data. Preview a segment's size and composition before running the full query, then retrieve the segment results for targeting, enrichment, or analysis."}, {"name": "iOS Apps", "description": "The MixRank iOS App Data API provides App Store data on millions of iOS apps, including app metadata, rankings history, integrated SDKs, version history, in-app purchases, user reviews, and download and revenue estimates, with app records going back to 2008. You can also request a prioritized refresh for any app."}, {"name": "iOS Developers", "description": "The MixRank iOS Developer API looks up any iOS developer and lists every app they publish on the App Store. Use it to map publisher portfolios and track developer activity over time."}, {"name": "iOS App Privacy", "description": "The MixRank iOS App Privacy API provides App Store privacy label data across iOS apps, including data types collected, linkage, and stated purposes. Use it to analyze app privacy practices at scale."}, {"name": "iOS Rankings", "description": "The MixRank iOS Rankings API returns App Store top chart rankings by chart type, genre, and country, so you can track the best-performing iOS apps in any market."}, {"name": "iOS SDKs", "description": "The MixRank iOS SDK Data API delivers SDK intelligence for the App Store: which SDKs are installed in which iOS apps, install and uninstall trends, genre penetration, and SDK version history."}, {"name": "Play Store Apps", "description": "The MixRank Google Play Data API provides Android app data including metadata, APK details, store images, rankings history, integrated SDKs, namespaces, and full version history, with records going back to 2008. You can also request a prioritized refresh for any app."}, {"name": "Play Store Developers", "description": "The MixRank Play Store Developer API looks up any Google Play developer and lists every Android app they publish. Use it to map publisher portfolios across the Play Store."}, {"name": "Play Store Rankings", "description": "The MixRank Play Store Rankings API returns Google Play chart rankings by chart type, category, and country, so you can track top Android apps in any market."}, {"name": "Play Store SDKs", "description": "The MixRank Play Store SDK Data API delivers SDK intelligence for Android: SDK install and uninstall trends, category penetration, and download estimates across Google Play apps."}, {"name": "Websites", "description": "The MixRank Technographics API provides technology stack data for millions of websites. Look up any domain to see the web technologies it uses, or query the site's dataset directly."}, {"name": "Web Tags", "description": "The MixRank Web Tags API covers the web technologies MixRank has tracked since 2012. Browse the technology catalog, look up a specific technology, or list the sites using it."}], "paths": {"/echo": {"get": {"tags": ["Account"], "summary": "Echo", "description": "Check API-key validity. Success does not indicate access to every endpoint.", "operationId": "get-echo", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"status": {"type": "string", "const": "success"}}, "required": ["status"]}, "example": {"status": "success"}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "x-mixrank-examples": [{"url": "/echo", "summary": "Check your API key."}]}}, "/usage": {"get": {"tags": ["Account"], "summary": "Usage", "description": "Account-wide API usage for the current month or a specified month.\n\nUsage covers all users in your account. `details` is null when no usage rows are available. An invalid month returns HTTP 200 with an `errors.month` message. `details[].api_key` contains API credentials. Quantities use each billing category's unit; they are not universally bytes or HTTP request counts.", "operationId": "get-usage", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"oneOf": [{"properties": {"account_name": {"type": ["string", "null"], "description": "Your account name.", "examples": ["Example Inc."]}, "total_events": {"type": ["integer", "null"], "description": "Total billing events, not a count of all HTTP requests.", "examples": [1250]}, "total_data_quantity": {"type": ["integer", "null"], "description": "Amount of data items returned by API queries.", "examples": [1250]}, "details": {"type": ["array", "null"], "items": {"type": "object", "properties": {"category": {"type": ["string", "null"], "description": "Billing category.", "examples": ["LinkedIn Profile"]}, "email": {"type": ["string", "null"], "description": "Account user associated with the usage.", "examples": ["jordan.sample@example.com"]}, "api_key": {"type": ["string", "null"], "description": "An active API key for that user.", "examples": ["0123456789abcdef0123456789abcdef"]}, "quantity": {"type": ["integer", "null"], "description": "Billed data quantity for this category and user.", "examples": [1250]}, "events": {"type": ["integer", "null"], "description": "Billing event count for this category and user.", "examples": [1250]}}}, "description": "API query and data item count, broken down by category."}}, "type": "object", "required": ["account_name", "total_events", "total_data_quantity", "details"]}, {"type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "properties": {"month": {"type": "string", "examples": ["Invalid value for 'month' parameter."]}}}}}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "month", "in": "query", "required": false, "description": "Month in YYYY-MM format. Defaults to the current month.", "schema": {"type": "string", "pattern": "^\\d{4}-(0[1-9]|1[0-2])$"}}], "x-mixrank-examples": [{"url": "/usage", "summary": "Check your API usage for the current month."}, {"url": "/usage?month=2022-06", "summary": "Check your API usage for June 2022."}]}}, "/companies": {"get": {"tags": ["Companies"], "summary": "Directory", "description": "Directory of companies.\n\nRank and ID sort ascending; employee_count sorts descending.\n\nRequired permissions for your API key's user: `corp.companies`.", "operationId": "get-companies", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Company ID.", "examples": [82017665]}, "name": {"type": ["string", "null"], "description": "Company name.", "examples": ["MixRank"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company.", "examples": ["mixrank"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank (lower numbers are better and indicate more significant companies).", "examples": [145024]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.62]}, "employees": {"type": ["integer", "null"], "description": "Number of current employees at this company.", "examples": [101]}, "rank_internetretailer": {"type": ["integer", "null"], "description": "Internet Retailer Rank.", "examples": [null]}, "rank_incmagazine": {"type": ["integer", "null"], "description": "Inc. 5000 Rank.", "examples": [null]}, "rank_fortune": {"type": ["integer", "null"], "description": "Fortune Rank.", "examples": [null]}, "address": {"type": ["object", "null"], "properties": {"street_address": {"type": ["string", "null"], "description": "Street address of this company.", "examples": ["164 Townsend Unit 4"]}, "city": {"type": ["string", "null"], "description": "City of this company.", "examples": ["San Francisco, California"]}, "region": {"type": ["string", "null"], "description": "State/Province of the company headquarters.", "examples": ["California"]}, "country": {"type": ["string", "null"], "description": "Headquarters country of this company.", "examples": ["United States"]}, "postal_code": {"type": ["string", "null"], "description": "Postal routing code of this company.", "examples": ["94107"]}}, "description": "Primary address for this company."}, "linkedin": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "LinkedIn company ID.", "examples": [2476210]}, "website": {"type": ["string", "null"], "description": "LinkedIn company website.", "examples": ["https://mixrank.com"]}, "url": {"type": ["string", "null"], "description": "LinkedIn company URL.", "examples": ["https://www.linkedin.com/company/mixrank"]}, "type": {"type": ["string", "null"], "description": "Description of the company type (e.g. \"Public Company\", \"Privately Held\").", "examples": ["Privately Held"]}, "size": {"type": ["string", "null"], "description": "Description of the company size in terms of employees (e.g. \"1-10 employees\", \"10,001+ employees\").", "examples": ["11-50 employees"]}, "name": {"type": ["string", "null"], "description": "Name.", "examples": ["MixRank"]}, "founded": {"type": ["integer", "null"], "description": "Foundation year.", "examples": [2011]}, "description": {"type": ["string", "null"], "description": "Description.", "examples": ["MixRank is the B2B data intelligence layer that data teams, AI builders, and GTM leaders trust for fresh, comprehensive demographic, firmographic, and technographic data."]}, "locations": {"type": ["array", "null"], "items": {"type": "object", "properties": {"address": {"type": ["string", "null"], "description": "Location address.", "examples": ["San Francisco, California 94107, US"]}, "is_primary": {"type": ["boolean", "null"], "description": "Boolean flag to distinguish between the primary location and the rest, \"true\" when is considered a primary address, otherwise \"false\".", "examples": [true]}}}, "description": "Locations."}, "country": {"type": ["string", "null"], "description": "Two letters country code (ISO 3166-1 alpha-2).", "examples": ["US"]}, "specialties": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Company specialties (e.g. \"AI\", \"Cloud Computing\").", "examples": [["B2B Data", "Firmographics", "Technographics"]]}, "employee_count": {"type": ["integer", "null"], "description": "Employee count.", "examples": [101]}, "follower_count": {"type": ["integer", "null"], "description": "Followers on LinkedIn.", "examples": [20558]}, "logo_url": {"type": ["string", "null"], "description": "Company logo download URL.", "examples": ["https://cdn.mixrank.com/md5/948adb5f520ea41ab9f831ea1f00f0c8"]}, "similar_pages": {"type": ["array", "null"], "items": {"type": "integer"}, "description": "List of linkedin_company ids found in \"Similar pages\" section.", "examples": [[72596476, 36096640, 19034488]]}}, "description": "LinkedIn company profile."}, "web": {"type": ["object", "null"], "properties": {"site_count": {"type": ["integer", "null"], "description": "Number of websites published by this company.", "examples": [1]}, "tag_count": {"type": ["integer", "null"], "description": "Number of Web Tags produced by this company.", "examples": [0]}}, "description": "Fields related to web platform."}, "appstore": {"type": ["object", "null"], "properties": {"app_count": {"type": ["integer", "null"], "description": "Number of iOS apps published by this company.", "examples": [0]}, "sdk_count": {"type": ["integer", "null"], "description": "Number of iOS SDKs produced by this company.", "examples": [0]}}, "description": "Fields related to Apple App Store."}, "playstore": {"type": ["object", "null"], "properties": {"app_count": {"type": ["integer", "null"], "description": "Number of Android apps published by this company.", "examples": [0]}, "sdk_count": {"type": ["integer", "null"], "description": "Number of Android SDKs produced by this company.", "examples": [0]}}, "description": "Fields related to Google Play Store."}, "industries": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Industry ID", "examples": [97]}, "name": {"type": ["string", "null"], "description": "Industry name", "examples": ["Market Research"]}, "is_primary": {"type": ["boolean", "null"], "description": "Whether or not this is a primary industry that this company is involved in", "examples": [true]}}}, "description": "Company industries."}, "sic": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["string", "null"], "description": "Industry ID.", "examples": ["8732"]}, "name": {"type": ["string", "null"], "description": "Industry name.", "examples": ["Commercial Economic, Sociological, and Educational Research"]}}}, "description": "Standard Industry Classification codes for this company."}, "naics": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["string", "null"], "description": "Industry ID", "examples": ["541910"]}, "name": {"type": ["string", "null"], "description": "Industry name.", "examples": ["Marketing Research and Public Opinion Polling"]}}}, "description": "North American Industry Classification System codes for this company."}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 4, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>employee_count</code>, <code>id</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "employee_count", "id"]}, "examples": {"default": {"value": "employee_count", "x-disabled": false}}}, {"name": "search", "in": "query", "required": false, "description": "Term to search for", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/companies?page_size=4&sort_field=employee_count", "summary": "Top 4 companies by number of employees."}, {"url": "/companies?search=rovio", "summary": "Search for companies matching \"rovio\"."}]}}, "/companies/{company_id}": {"get": {"tags": ["Companies"], "summary": "Overview", "description": "Summary information about a company.\n\nThe company_financials option is available only on <a href=\"#tag/companies/GET/companies/match\">company matching</a>.\n\nRequired permissions for your API key's user: `corp.companies`.", "operationId": "get-companies-company_id", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Company ID.", "examples": [82017665]}, "name": {"type": ["string", "null"], "description": "Company name.", "examples": ["MixRank"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company.", "examples": ["mixrank"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank (lower numbers are better and indicate more significant companies).", "examples": [145024]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.62]}, "employees": {"type": ["integer", "null"], "description": "Number of current employees at this company.", "examples": [101]}, "rank_internetretailer": {"type": ["integer", "null"], "description": "Internet Retailer Rank.", "examples": [null]}, "rank_incmagazine": {"type": ["integer", "null"], "description": "Inc. 5000 Rank.", "examples": [null]}, "rank_fortune": {"type": ["integer", "null"], "description": "Fortune Rank.", "examples": [null]}, "address": {"type": ["object", "null"], "properties": {"street_address": {"type": ["string", "null"], "description": "Street address of this company.", "examples": ["164 Townsend Unit 4"]}, "city": {"type": ["string", "null"], "description": "City of this company.", "examples": ["San Francisco, California"]}, "region": {"type": ["string", "null"], "description": "State/Province of the company headquarters.", "examples": ["California"]}, "country": {"type": ["string", "null"], "description": "Headquarters country of this company.", "examples": ["United States"]}, "postal_code": {"type": ["string", "null"], "description": "Postal routing code of this company.", "examples": ["94107"]}}, "description": "Primary address for this company."}, "linkedin": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "LinkedIn company ID.", "examples": [2476210]}, "website": {"type": ["string", "null"], "description": "LinkedIn company website.", "examples": ["https://mixrank.com"]}, "url": {"type": ["string", "null"], "description": "LinkedIn company URL.", "examples": ["https://www.linkedin.com/company/mixrank"]}, "type": {"type": ["string", "null"], "description": "Description of the company type (e.g. \"Public Company\", \"Privately Held\").", "examples": ["Privately Held"]}, "size": {"type": ["string", "null"], "description": "Description of the company size in terms of employees (e.g. \"1-10 employees\", \"10,001+ employees\").", "examples": ["11-50 employees"]}, "name": {"type": ["string", "null"], "description": "Name.", "examples": ["MixRank"]}, "founded": {"type": ["integer", "null"], "description": "Foundation year.", "examples": [2011]}, "description": {"type": ["string", "null"], "description": "Description.", "examples": ["MixRank is the B2B data intelligence layer that data teams, AI builders, and GTM leaders trust for fresh, comprehensive demographic, firmographic, and technographic data."]}, "locations": {"type": ["array", "null"], "items": {"type": "object", "properties": {"address": {"type": ["string", "null"], "description": "Location address.", "examples": ["San Francisco, California 94107, US"]}, "is_primary": {"type": ["boolean", "null"], "description": "Boolean flag to distinguish between the primary location and the rest, \"true\" when is considered a primary address, otherwise \"false\".", "examples": [true]}}}, "description": "Locations."}, "country": {"type": ["string", "null"], "description": "Two letters country code (ISO 3166-1 alpha-2).", "examples": ["US"]}, "specialties": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Company specialties (e.g. \"AI\", \"Cloud Computing\").", "examples": [["B2B Data", "Firmographics", "Technographics"]]}, "employee_count": {"type": ["integer", "null"], "description": "Employee count.", "examples": [101]}, "follower_count": {"type": ["integer", "null"], "description": "Followers on LinkedIn.", "examples": [20558]}, "logo_url": {"type": ["string", "null"], "description": "Company logo download URL.", "examples": ["https://cdn.mixrank.com/md5/948adb5f520ea41ab9f831ea1f00f0c8"]}, "similar_pages": {"type": ["array", "null"], "items": {"type": "integer"}, "description": "List of linkedin_company ids found in \"Similar pages\" section.", "examples": [[72596476, 36096640, 19034488]]}}, "description": "LinkedIn company profile."}, "web": {"type": ["object", "null"], "properties": {"site_count": {"type": ["integer", "null"], "description": "Number of websites published by this company.", "examples": [1]}, "tag_count": {"type": ["integer", "null"], "description": "Number of Web Tags produced by this company.", "examples": [0]}}, "description": "Fields related to web platform."}, "appstore": {"type": ["object", "null"], "properties": {"app_count": {"type": ["integer", "null"], "description": "Number of iOS apps published by this company.", "examples": [0]}, "sdk_count": {"type": ["integer", "null"], "description": "Number of iOS SDKs produced by this company.", "examples": [0]}}, "description": "Fields related to Apple App Store."}, "playstore": {"type": ["object", "null"], "properties": {"app_count": {"type": ["integer", "null"], "description": "Number of Android apps published by this company.", "examples": [0]}, "sdk_count": {"type": ["integer", "null"], "description": "Number of Android SDKs produced by this company.", "examples": [0]}}, "description": "Fields related to Google Play Store."}, "industries": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Industry ID", "examples": [97]}, "name": {"type": ["string", "null"], "description": "Industry name", "examples": ["Market Research"]}, "is_primary": {"type": ["boolean", "null"], "description": "Whether or not this is a primary industry that this company is involved in", "examples": [true]}}}, "description": "Company industries."}, "sic": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["string", "null"], "description": "Industry ID.", "examples": ["8732"]}, "name": {"type": ["string", "null"], "description": "Industry name.", "examples": ["Commercial Economic, Sociological, and Educational Research"]}}}, "description": "Standard Industry Classification codes for this company."}, "naics": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["string", "null"], "description": "Industry ID", "examples": ["541910"]}, "name": {"type": ["string", "null"], "description": "Industry name.", "examples": ["Marketing Research and Public Opinion Polling"]}}}, "description": "North American Industry Classification System codes for this company."}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_parameter": {"summary": "Invalid parameter", "value": {"errors": {"company_id": "Invalid value 'abc'."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching company.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "Lookup timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "company_id", "in": "path", "required": true, "description": "MixRank company ID from /companies, /companies/match, or a company segment; distinct from linkedin.id.", "schema": {"type": "integer"}, "example": 81760867}], "x-mixrank-examples": [{"url": "/companies/81760867", "summary": "Company information for Google, Inc."}]}}, "/companies/match": {"get": {"tags": ["Companies"], "summary": "Match", "description": "Find at most one matching company.\n\nAt least one of name, url, linkedin or linkedin_company_id is required; without one the request returns 404.\n\nMatching uses linkedin_company_id first, then a usable LinkedIn company URL, then website or name candidates ranked to choose a single result. Website URLs normalize to root domains.\n\nFinancial content is disabled by default. With enable=company_financials, one credit is billed when a financial object is available. company_financials is null when unavailable, {} when available but disabled, and an object containing funding when enabled.\n\nRequired permissions for your API key's user: `corp.companies`.", "operationId": "get-companies-match", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Company ID.", "examples": [82017665]}, "name": {"type": ["string", "null"], "description": "Company name.", "examples": ["MixRank"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company.", "examples": ["mixrank"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank (lower numbers are better and indicate more significant companies).", "examples": [145024]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.62]}, "employees": {"type": ["integer", "null"], "description": "Number of current employees at this company.", "examples": [101]}, "rank_internetretailer": {"type": ["integer", "null"], "description": "Internet Retailer Rank.", "examples": [null]}, "rank_incmagazine": {"type": ["integer", "null"], "description": "Inc. 5000 Rank.", "examples": [null]}, "rank_fortune": {"type": ["integer", "null"], "description": "Fortune Rank.", "examples": [null]}, "address": {"type": ["object", "null"], "properties": {"street_address": {"type": ["string", "null"], "description": "Street address of this company.", "examples": ["164 Townsend Unit 4"]}, "city": {"type": ["string", "null"], "description": "City of this company.", "examples": ["San Francisco, California"]}, "region": {"type": ["string", "null"], "description": "State/Province of the company headquarters.", "examples": ["California"]}, "country": {"type": ["string", "null"], "description": "Headquarters country of this company.", "examples": ["United States"]}, "postal_code": {"type": ["string", "null"], "description": "Postal routing code of this company.", "examples": ["94107"]}}, "description": "Primary address for this company."}, "linkedin": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "LinkedIn company ID.", "examples": [2476210]}, "website": {"type": ["string", "null"], "description": "LinkedIn company website.", "examples": ["https://mixrank.com"]}, "url": {"type": ["string", "null"], "description": "LinkedIn company URL.", "examples": ["https://www.linkedin.com/company/mixrank"]}, "type": {"type": ["string", "null"], "description": "Description of the company type (e.g. \"Public Company\", \"Privately Held\").", "examples": ["Privately Held"]}, "size": {"type": ["string", "null"], "description": "Description of the company size in terms of employees (e.g. \"1-10 employees\", \"10,001+ employees\").", "examples": ["11-50 employees"]}, "name": {"type": ["string", "null"], "description": "Name.", "examples": ["MixRank"]}, "founded": {"type": ["integer", "null"], "description": "Foundation year.", "examples": [2011]}, "description": {"type": ["string", "null"], "description": "Description.", "examples": ["MixRank is the B2B data intelligence layer that data teams, AI builders, and GTM leaders trust for fresh, comprehensive demographic, firmographic, and technographic data."]}, "locations": {"type": ["array", "null"], "items": {"type": "object", "properties": {"address": {"type": ["string", "null"], "description": "Location address.", "examples": ["San Francisco, California 94107, US"]}, "is_primary": {"type": ["boolean", "null"], "description": "Boolean flag to distinguish between the primary location and the rest, \"true\" when is considered a primary address, otherwise \"false\".", "examples": [true]}}}, "description": "Locations."}, "country": {"type": ["string", "null"], "description": "Two letters country code (ISO 3166-1 alpha-2).", "examples": ["US"]}, "specialties": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Company specialties (e.g. \"AI\", \"Cloud Computing\").", "examples": [["B2B Data", "Firmographics", "Technographics"]]}, "employee_count": {"type": ["integer", "null"], "description": "Employee count.", "examples": [101]}, "follower_count": {"type": ["integer", "null"], "description": "Followers on LinkedIn.", "examples": [20558]}, "logo_url": {"type": ["string", "null"], "description": "Company logo download URL.", "examples": ["https://cdn.mixrank.com/md5/948adb5f520ea41ab9f831ea1f00f0c8"]}, "similar_pages": {"type": ["array", "null"], "items": {"type": "integer"}, "description": "List of linkedin_company ids found in \"Similar pages\" section.", "examples": [[72596476, 36096640, 19034488]]}}, "description": "LinkedIn company profile."}, "web": {"type": ["object", "null"], "properties": {"site_count": {"type": ["integer", "null"], "description": "Number of websites published by this company.", "examples": [1]}, "tag_count": {"type": ["integer", "null"], "description": "Number of Web Tags produced by this company.", "examples": [0]}}, "description": "Fields related to web platform."}, "appstore": {"type": ["object", "null"], "properties": {"app_count": {"type": ["integer", "null"], "description": "Number of iOS apps published by this company.", "examples": [0]}, "sdk_count": {"type": ["integer", "null"], "description": "Number of iOS SDKs produced by this company.", "examples": [0]}}, "description": "Fields related to Apple App Store."}, "playstore": {"type": ["object", "null"], "properties": {"app_count": {"type": ["integer", "null"], "description": "Number of Android apps published by this company.", "examples": [0]}, "sdk_count": {"type": ["integer", "null"], "description": "Number of Android SDKs produced by this company.", "examples": [0]}}, "description": "Fields related to Google Play Store."}, "industries": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Industry ID", "examples": [97]}, "name": {"type": ["string", "null"], "description": "Industry name", "examples": ["Market Research"]}, "is_primary": {"type": ["boolean", "null"], "description": "Whether or not this is a primary industry that this company is involved in", "examples": [true]}}}, "description": "Company industries."}, "sic": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["string", "null"], "description": "Industry ID.", "examples": ["8732"]}, "name": {"type": ["string", "null"], "description": "Industry name.", "examples": ["Commercial Economic, Sociological, and Educational Research"]}}}, "description": "Standard Industry Classification codes for this company."}, "naics": {"type": ["array", "null"], "items": {"type": "object", "properties": {"id": {"type": ["string", "null"], "description": "Industry ID", "examples": ["541910"]}, "name": {"type": ["string", "null"], "description": "Industry name.", "examples": ["Marketing Research and Public Opinion Polling"]}}}, "description": "North American Industry Classification System codes for this company."}, "company_financials": {"type": ["object", "null"], "properties": {"funding": {"type": ["object", "null"], "properties": {"total_funding": {"type": ["integer", "null"], "description": "Total capital raised across all rounds (assumed USD).", "examples": [2000000]}, "total_funding_currency": {"type": ["string", "null"], "description": "Currency of total_funding (e.g. \"USD\"); null when total_funding is null.", "examples": ["USD"]}, "round_count": {"type": ["integer", "null"], "description": "Number of funding rounds in this object.", "examples": [3]}, "rounds": {"type": ["array", "null"], "items": {"type": "object", "properties": {"round_type": {"type": ["string", "null"], "description": "Round name/type (e.g. \"Series A\", \"Debt financing\").", "examples": ["Debt financing"]}, "announced_date": {"type": ["string", "null"], "description": "Date the round was announced (ISO 8601), or null.", "examples": ["2016-03-26"]}, "amount": {"type": ["integer", "null"], "description": "Amount raised in the round, or null.", "examples": [250000]}, "currency": {"type": ["string", "null"], "description": "Currency of amount, or null.", "examples": ["USD"]}, "deal_status": {"type": ["string", "null"], "description": "Round deal status (e.g. \"announced\").", "examples": ["announced"]}, "lead_investor": {"type": ["string", "null"], "description": "Lead investor name, or null.", "examples": ["Lighter Capital, Inc."]}, "investors": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Names of investors participating in the round.", "examples": [["Lighter Capital, Inc."]]}}}, "description": "Funding rounds, newest first (undated rounds last)."}}, "description": "Merged, vendor-neutral funding summary for the company."}}, "description": "Funding and financial data for this company (paid add-on; enable with enable=company_financials). null when no data exists; {} when data exists but the add-on is not enabled; {\"funding\": {...}} when enabled. Billed one credit per object when enabled and data is present."}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"linkedin_company_id": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching company or no usable match input.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "Lookup timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}, "400": {"description": "Invalid request parameters or unsupported enable value.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_enable": {"summary": "Invalid enable", "value": {"errors": {"message": "foo is not a valid enable value"}}}}}}}}, "parameters": [{"name": "name", "in": "query", "required": false, "description": "Company name.", "schema": {"type": "string"}}, {"name": "url", "in": "query", "required": false, "description": "Domain name, website url.", "schema": {"type": "string"}, "examples": {"default": {"value": "mixrank.com", "x-disabled": false}}}, {"name": "linkedin", "in": "query", "required": false, "description": "Company's LinkedIn url.", "schema": {"type": "string"}}, {"name": "linkedin_company_id", "in": "query", "required": false, "description": "Numeric LinkedIn company ID, corresponding to linkedin.id in company responses. This is not the MixRank company ID.", "schema": {"type": "integer"}}, {"name": "enable", "in": "query", "required": false, "description": "Enable paid add-on content. Supported values: company_financials. Comma separated. Default: nothing enabled.", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/companies/match?url=mixrank.com", "summary": "Find by website."}, {"url": "/companies/match?name=Xerox", "summary": "Find best match to company name \"Xerox\"."}, {"url": "/companies/match?name=MAXDigital%20LLC", "summary": "Match \"MAXDigital LLC\"."}, {"url": "/companies/match?name=UNC-Chapel%20Hill", "summary": "Match \"UNC-Chapel Hill\"."}, {"url": "/companies/match?url=https://guardian.co.uk/", "summary": "Find by website url."}, {"url": "/companies/match?linkedin=https://linkedin.com/company/157355", "summary": "Find by LinkedIn url."}, {"url": "/companies/match?linkedin=https://linkedin.com/company/gameloft", "summary": "Find by LinkedIn url."}, {"url": "/companies/match?linkedin=https://linkedin.com/company/databricks&enable=company_financials", "summary": "Match Databricks and include the company_financials funding add-on."}]}}, "/companies/{company_id}/employee-metrics": {"get": {"tags": ["Companies"], "summary": "Employee Summary Metrics", "description": "Cumulative summary headcount metrics by employee type.\n\nOmitting job_tags returns available tag rows. Multiple IDs select the union of individual or direct-parent tags. Categories can overlap; summing rows need not count unique employees. Current, alltime and expired counts describe observed job records; observation dates are not confirmed employment start or end dates.\n\nRequired permissions for your API key's user: `corp.companies`.", "operationId": "get-companies-company_id-employee-metrics", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "results": {"type": "array", "items": {"type": "object", "properties": {"job_tag_label": {"type": ["string", "null"], "description": "Descriptive label for this employee type.", "examples": ["High School"]}, "job_tag_id": {"type": ["integer", "null"], "description": "Unique identifier for this employee type.", "examples": [813]}, "job_count_current": {"type": ["integer", "null"], "description": "Number of current employees.", "examples": [561]}, "job_count_alltime": {"type": ["integer", "null"], "description": "Number of employees that have ever worked at this company.", "examples": [733]}, "job_count_expired": {"type": ["integer", "null"], "description": "Number of employees that no longer work at this company.", "examples": [172]}, "job_first_seen": {"type": ["string", "null"], "format": "date", "description": "First observation of an employee of this type.", "examples": ["1964-04-01"]}, "job_last_seen": {"type": ["string", "null"], "format": "date", "description": "Last date an employee of this type was observed at this company. May lag from current date as data is refreshed.", "examples": ["2026-08-01"]}}}}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_parameter": {"summary": "Invalid parameter", "value": {"errors": {"company_id": "Invalid value 'abc'."}}}, "invalid_tag_id": {"summary": "Invalid tag ID", "value": {"errors": {"message": "Invalid job_tags value"}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching rows.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [{"name": "company_id", "in": "path", "required": true, "description": "MixRank company ID from /companies, /companies/match, or a company segment; distinct from linkedin.id.", "schema": {"type": "integer"}, "example": 91408393}, {"name": "job_tags", "in": "query", "required": false, "description": "Filters by specific employee type(s).<br>Use comma-separated values for multiple IDs (e.g., `job_tags=813,22`).<br>Refer to the Job Tags `/jobtags` endpoint for all valid values.<br>Parent IDs can be used to filter by groups:<br><b>10029</b> -> Academic Qualification <small>(e.g., 'High School', 'Bachelor Degree', ...)</small><br><b>10030</b> -> Country <small>(e.g., 'United Kingdom', 'United States', ...)</small><br><b>10031</b> -> Employment Type <small>(e.g., 'Full-time', 'Internship', ...)</small><br><b>10032</b> -> Function <small>(e.g., 'Engineering', 'Human Resources', ...)</small><br><b>10033</b> -> Industry <small>(e.g., 'Construction', 'Investment Banking', 'Armed Forces', ...)</small><br><b>10035</b> -> Seniority <small>(e.g., 'Entry level', 'Vice President (VP)' ...)</small><br>", "schema": {"type": "string"}, "examples": {"default": {"value": "10029", "x-disabled": false}}}], "x-mixrank-examples": [{"url": "/companies/91408393/employee-metrics?job_tags=10029", "summary": "OpenAI employee counts related to Academic Qualification."}, {"url": "/companies/91408393/employee-metrics?job_tags=813,26", "summary": "OpenAI employee counts with Part-Time and High School tags."}]}}, "/companies/{company_id}/employee-metrics/{job_tag_id}/timeseries": {"get": {"tags": ["Companies"], "summary": "Employee Trends", "description": "Employee headcount trends by employee type summarized by month.\n\nMonths are YYYY-MM-01, ordered oldest first. Missing data returns 404.\n\nRequired permissions for your API key's user: `corp.companies`.", "operationId": "get-companies-company_id-employee-metrics-job_tag_id-timeseries", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "results": {"type": "array", "items": {"type": "object", "properties": {"job_tag_id": {"type": ["integer", "null"], "description": "Unique identifier for this employee type.", "examples": [813]}, "job_count_current": {"type": ["integer", "null"], "description": "Number of current employees as of this date.", "examples": [561]}, "job_count_alltime": {"type": ["integer", "null"], "description": "Number of employees that have ever worked at this company as of this date.", "examples": [733]}, "job_count_expired": {"type": ["integer", "null"], "description": "Number of employees that stopped working at this company before this date.", "examples": [172]}, "month": {"type": ["string", "null"], "format": "date", "description": "Summarized by month.", "examples": ["2026-08-01"]}}}}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_parameter": {"summary": "Invalid parameter", "value": {"errors": {"company_id": "Invalid value 'abc'."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching rows.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [{"name": "company_id", "in": "path", "required": true, "description": "MixRank company ID from /companies, /companies/match, or a company segment; distinct from linkedin.id.", "schema": {"type": "integer"}, "example": 91408393}, {"name": "job_tag_id", "in": "path", "required": true, "description": "Specific employee-type tag ID from /jobtags; no parent expansion.", "schema": {"type": "integer"}, "example": 813}, {"name": "since", "in": "query", "required": false, "description": "First included month. Non-first-day dates round up: 2020-03-15 excludes March. The first observed job also constrains the start.", "schema": {"type": "string", "format": "date"}}], "x-mixrank-examples": [{"url": "/companies/91408393/employee-metrics/813/timeseries", "summary": "OpenAI employee trends related to High School."}, {"url": "/companies/91408393/employee-metrics/813/timeseries?since=2020-03-01", "summary": "The same trends, but only showing data from 1st March 2020 to the present."}]}}, "/companies/{company_id}/timeseries": {"get": {"tags": ["Companies"], "summary": "Trends", "description": "Employee and followers trends about a company.\n\nNewest samples first; dates are not guaranteed daily. Individual series values can be null. employee_count is the employee count reported by LinkedIn.\n\nRequired permissions for your API key's user: `corp.companies`.", "operationId": "get-companies-company_id-timeseries", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [100]}, "results": {"type": "array", "items": {"type": "object", "properties": {"date": {"type": ["string", "null"], "format": "date", "description": "The date this sample was taken.", "examples": ["2026-10-06"]}, "employee_count": {"type": ["integer", "null"], "description": "Number of employees (headcount).", "examples": [297958]}, "linkedin_follower_count": {"type": ["integer", "null"], "description": "Number of LinkedIn followers.", "examples": [42470199]}, "facebook_like_count": {"type": ["integer", "null"], "description": "Number of Facebook likes.", "examples": [null]}, "twitter_follower_count": {"type": ["integer", "null"], "description": "Number of Twitter followers.", "examples": [null]}, "seomoz_link_count": {"type": ["integer", "null"], "description": "Number of Seomoz links.", "examples": [null]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_parameter": {"summary": "Invalid parameter", "value": {"errors": {"company_id": "Invalid value 'abc'."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching data.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "Lookup timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "company_id", "in": "path", "required": true, "description": "MixRank company ID from /companies, /companies/match, or a company segment; distinct from linkedin.id.", "schema": {"type": "integer"}, "example": 81760867}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 100, "minimum": 1, "maximum": 1000}}, {"name": "since", "in": "query", "required": false, "schema": {"type": "string", "format": "date"}, "description": "Exclusive lower date bound: 2020-03-19 excludes that day."}], "x-mixrank-examples": [{"url": "/companies/81760867/timeseries", "summary": "Google"}, {"url": "/companies/81760867/timeseries?since=2020-03-19", "summary": "Google from 2020-03-19 to present"}, {"url": "/companies/81760867/timeseries?page_size=50", "summary": "Latest 50 records for Google"}, {"url": "/companies/81760867/timeseries?page_size=50&offset=150", "summary": "Latest 50, skipping 150 records for Google"}]}}, "/jobtags": {"get": {"tags": ["Companies"], "summary": "Job Tags", "description": "An ontology that classifies job positions by job function, employment type, seniority, industry, academic qualification, payscale, and country.\n\nJob tags classify employee roles. Use the returned id values in employee-metrics job_tags or the employee trend URL job_tag_id. These IDs are separate from segment feature IDs.\n\nRows are ordered by ID. parent_id links a child to its parent tag.", "operationId": "get-jobtags", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Unique identifier for this tag.", "examples": [813]}, "label": {"type": ["string", "null"], "description": "Descriptive label for this tag.", "examples": ["High School"]}, "parent_id": {"type": ["integer", "null"], "description": "Unique identifier for this tag's parent tag.", "examples": [10029]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching rows.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}, "400": {"description": "Invalid tag IDs.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_tag_id": {"summary": "Invalid tag ID", "value": {"errors": {"message": "Invalid tag_ids value"}}}}}}}}, "parameters": [{"name": "tag_ids", "in": "query", "required": false, "description": "Parameter that filters tags by their unique id.<br>Leave it blank to get all possible tags.<br>Use comma-separated values for multiple IDs (e.g., `?tag_ids=813,22`).<br>", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/jobtags", "summary": "Returns all the valid job tags."}, {"url": "/jobtags?tag_ids=813,22", "summary": "Returns the Full-time and High School job tags."}]}}, "/companies/segment-preview": {"get": {"tags": ["Audience Segments"], "summary": "Company Segment Preview", "description": "Retrieve MixRank company IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not company IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nis_truncated indicates additional matches.\n\nRequired permissions for your API key's user: `corp.companies.segment`.", "operationId": "get-companies-segment-preview", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": "integer", "description": "Number of returned IDs, not all matching IDs.", "examples": [2]}, "is_truncated": {"type": "boolean", "examples": [true]}, "results": {"type": "array", "items": {"type": "integer"}, "examples": [[82017665, 81760867]]}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"limit": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching IDs.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [{"name": "query", "in": "query", "required": true, "description": "Required boolean feature-ID expression; at most 530 features.", "schema": {"type": "string"}, "example": "123|456"}, {"name": "limit", "in": "query", "required": false, "description": "Maximum returned IDs.", "schema": {"type": "integer", "default": 100, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/companies/segment-preview?query=123%7C456", "summary": "Illustrative OR query; use IDs from feature lookup."}]}, "post": {"tags": ["Audience Segments"], "summary": "Company Segment Preview", "description": "Retrieve MixRank company IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not company IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nis_truncated indicates additional matches.\n\nRequired permissions for your API key's user: `corp.companies.segment`.", "operationId": "post-companies-segment-preview", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": "integer", "description": "Number of returned IDs, not all matching IDs.", "examples": [2]}, "is_truncated": {"type": "boolean", "examples": [true]}, "results": {"type": "array", "items": {"type": "integer"}, "examples": [[82017665, 81760867]]}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"limit": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching IDs.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [], "x-mixrank-examples": [{"url": "/companies/segment-preview", "post_data": "query=123%7C456", "summary": "POST form with illustrative feature IDs."}], "requestBody": {"required": true, "content": {"application/x-www-form-urlencoded": {"schema": {"type": "object", "properties": {"query": {"type": "string", "description": "Required boolean feature-ID expression; at most 530 features."}, "limit": {"type": "integer", "default": 100, "minimum": 1, "maximum": 100, "description": "Maximum returned IDs."}}, "required": ["query"]}, "example": {"query": "123|456"}}}}}}, "/companies/segment-query": {"get": {"tags": ["Audience Segments"], "summary": "Company Segment Query", "description": "Retrieve MixRank company IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not company IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nReturns a token for an asynchronous export of up to 10,000 IDs. Poll <a href=\"#tag/audience-segments/GET/segment-result\">the export result</a> with that token: 204 means pending, 200 downloads Zstandard-compressed CSV containing one row of sorted IDs. Empty output is the literal none. A _truncated suffix before .csv.zst indicates additional matches. Exports can only be downloaded by the submitting user.\n\nRequired permissions for your API key's user: `corp.companies.segment.query`.", "operationId": "get-companies-segment-query", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"token": {"type": "string", "examples": ["a2e1f8c3d7b9e2d6f1e8b0a5c2d3f4b6"]}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}}, "parameters": [{"name": "query", "in": "query", "required": true, "description": "Required boolean feature-ID expression; at most 530 features.", "schema": {"type": "string"}, "example": "123|456"}], "x-mixrank-examples": [{"url": "/companies/segment-query?query=123%7C456", "summary": "Illustrative OR query; use IDs from feature lookup."}]}, "post": {"tags": ["Audience Segments"], "summary": "Company Segment Query", "description": "Retrieve MixRank company IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not company IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nReturns a token for an asynchronous export of up to 10,000 IDs. Poll <a href=\"#tag/audience-segments/GET/segment-result\">the export result</a> with that token: 204 means pending, 200 downloads Zstandard-compressed CSV containing one row of sorted IDs. Empty output is the literal none. A _truncated suffix before .csv.zst indicates additional matches. Exports can only be downloaded by the submitting user.\n\nRequired permissions for your API key's user: `corp.companies.segment.query`.", "operationId": "post-companies-segment-query", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"token": {"type": "string", "examples": ["a2e1f8c3d7b9e2d6f1e8b0a5c2d3f4b6"]}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}}, "parameters": [], "x-mixrank-examples": [{"url": "/companies/segment-query", "post_data": "query=123%7C456", "summary": "POST form with illustrative feature IDs."}], "requestBody": {"required": true, "content": {"application/x-www-form-urlencoded": {"schema": {"type": "object", "properties": {"query": {"type": "string", "description": "Required boolean feature-ID expression; at most 530 features."}}, "required": ["query"]}, "example": {"query": "123|456"}}}}}}, "/email/prospect": {"get": {"tags": ["Email"], "summary": "Get Prospect", "description": "Discovers or generates candidate email addresses. Requires person_id, or domain plus at least one of full_name, first_name, or last_name. Billing is per returned email. With webhook, returns HTTP 202 and delivers the result asynchronously.\n\nRequired permissions for your API key's user: `email.prospect`.", "operationId": "get-email-prospect", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "properties": {"name": {"type": ["string", "null"], "description": "The name used to generate emails.", "examples": ["support"]}, "emails": {"type": ["array", "null"], "items": {"type": "object", "properties": {"email": {"type": ["string", "null"], "description": "The requested email address.", "examples": ["support@mixrank.com"]}, "normalized": {"type": ["string", "null"], "description": "The normalized email address.", "examples": ["support@mixrank.com"]}, "validity": {"type": ["string", "null"], "description": "<p>Email validity. Possible values are:</p>\n<ul>\n    <li><code>valid</code>: The email is valid.</li>\n    <li><code>ambiguous</code>: There is not enough information about this email.</li>\n    <li><code>maybe_valid</code>: Similar to <code>ambiguous</code>, but we know it was valid at some point.</li>\n    <li><code>invalid</code>: The email is invalid.</li>\n    <li><code>uncached</code>: Only returned after a strategy of <code>cached</code> didn't find the result.</li>\n    <li><code>malformed</code>: This email address is malformed.</li>\n    <li><code>temp_error</code>: Temporary internal error, please try again later.</li>\n    <li><code>perm_error</code>: Permament error, maybe a misconfigured email server?</li>\n</ul>", "examples": ["valid"], "enum": ["valid", "ambiguous", "maybe_valid", "invalid", "uncached", "malformed", "temp_error", "perm_error"]}, "validated_at": {"type": ["string", "null"], "description": "When this result was generated.", "examples": ["2026-10-07T17:50:57.711722"]}, "uses_greylist": {"type": ["boolean", "null"], "description": "Whether the recipient domain greylists our probe. Null on cached results (not stored). While the greylist window is still closed the result is inconclusive (<code>validity</code> is <code>ambiguous</code>) and <code>retry_after</code> hints when to retry; once resolved <code>validity</code> is conclusive while this stays true.", "examples": [null]}, "retry_after": {"type": ["string", "null"], "description": "If greylisted, the earliest time it is worth retrying this address. Null on cached results and when not greylisted.", "examples": [null]}, "gateway": {"type": ["string", "null"], "description": "Gateway name. Not strictly a SEG, but who is filtering email.", "examples": ["google"]}, "is_disposable": {"type": ["boolean", "null"], "description": "Whether the email address is disposable / temporary.", "examples": [false]}, "is_consumer": {"type": ["boolean", "null"], "description": "Whether the email is b2c (gmail.com, yahoo.com, ...).", "examples": [false]}, "is_domain_catchall": {"type": ["boolean", "null"], "description": "Whether the email domain is catchall (not this particular address). Might be null for unknown.", "examples": [null]}, "mx_records": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of MX DNS records for the domain", "examples": [["aspmx.l.google.com", "alt1.aspmx.l.google.com", "alt2.aspmx.l.google.com", "aspmx2.googlemail.com", "aspmx3.googlemail.com"]]}}}, "description": "Discovered email assessments; may include ambiguous linked addresses when keep_ambiguous is enabled."}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"person_id": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Too many pending webhook requests.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}, "too_many_webhooks": {"summary": "Too many webhooks", "value": {"errors": {"webhook": "You already have 1200 webhook requests pending. Please wait for them to be processed."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "202": {"description": "Webhook request accepted; the result is delivered asynchronously.", "content": {"application/json": {"schema": {"type": "object", "required": ["id", "status"], "properties": {"id": {"type": "string", "format": "uuid"}, "status": {"type": "string", "enum": ["accepted"]}}}, "example": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "status": "accepted"}}}}, "400": {"description": "Invalid inputs or webhook URL.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_webhook": {"summary": "Invalid webhook", "value": {"errors": {"webhook": "'webhook' must use https."}}}, "missing_domain": {"summary": "Missing domain", "value": {"errors": {"domain": "Missing domain to test emails."}}}, "missing_name": {"summary": "Missing name", "value": {"errors": {"full_name": "Missing a person name."}}}}}}}, "503": {"description": "Queue unavailable; retry later.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"queue_unavailable": {"summary": "Queue unavailable", "value": {"errors": {"webhook": "Queued prospect requests are temporarily unavailable. Please retry later."}}}}}}}, "404": {"description": "Person, usable name, or company domain could not be found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"unknown_person": {"summary": "Unknown person", "value": {"errors": {"person_id": "Did not find the given person"}}}, "no_name": {"summary": "No name", "value": {"errors": {"full_name": "The given person does not have a name in our database. Please use full_name."}}}, "no_domain": {"summary": "No domain", "value": {"errors": {"domain": "Could not determine necessary domains based on person_id. Please use domain parameter."}}}}}}}}, "parameters": [{"name": "full_name", "in": "query", "required": false, "description": "Full name.", "schema": {"type": "string"}, "examples": {"default": {"value": "support", "x-disabled": false}}}, {"name": "first_name", "in": "query", "required": false, "description": "First name.", "schema": {"type": "string"}}, {"name": "last_name", "in": "query", "required": false, "description": "Last name.", "schema": {"type": "string"}}, {"name": "person_id", "in": "query", "required": false, "description": "MixRank person ID, as returned by the person search or lookup endpoints.", "schema": {"type": "integer"}}, {"name": "domain", "in": "query", "required": false, "description": "Company domain without a scheme or path.", "schema": {"type": "string"}, "examples": {"default": {"value": "mixrank.com", "x-disabled": false}}}, {"name": "limit", "in": "query", "required": false, "description": "Set a limit on the number of emails returned.", "schema": {"type": "integer", "default": 1, "minimum": 1, "maximum": 10}}, {"name": "check_ownership", "in": "query", "required": false, "description": "When given a Person ID, attempt to exclude emails that belong to persons with similar names.", "schema": {"type": "string", "enum": ["t", "f"], "default": "t"}}, {"name": "skip_sv", "in": "query", "required": false, "description": "Experimental parameter. When given a Person ID, attempt to exclude side ventures from positions.", "schema": {"type": "string", "enum": ["t", "f"], "default": "f"}}, {"name": "keep_ambiguous", "in": "query", "required": false, "description": "When given a Person ID and no email is flagged valid, keep linked emails flagged ambiguous.", "schema": {"type": "string", "enum": ["t", "f"], "default": "f"}}, {"name": "downscore_edu", "in": "query", "required": false, "description": "Only consider educational (.edu) emails once every other candidate has been exhausted.", "schema": {"type": "string", "enum": ["t", "f"], "default": "t"}}, {"name": "webhook", "in": "query", "required": false, "description": "<p>An <code>https</code> url to deliver the result to. Given one, the request is accepted with a\n<code>202</code> and a body of <code>{\"id\": ..., \"status\": \"accepted\"}</code> instead of waiting for\nthe prospecting, which can take a while. The result is <code>POST</code>ed to this url as soon as it is ready.</p>\n<p>The body is <code>{\"id\": ..., \"type\": ..., \"timestamp\": ..., \"data\": ...}</code>, where <code>id</code>\nrepeats the initial <code>id</code>, <code>type</code> names the event, <code>timestamp</code> is when the\nresult was produced, and <code>data</code> carries the <code>status</code> the synchronous request would\nhave answered with, and is otherwise the response you would have received synchronously, or an\n<code>error</code> message if it could not be answered.</p> <p>Deliveries follow\n<a href=\"https://github.com/standard-webhooks/standard-webhooks\">Standard Webhooks</a>: each carries a\n<code>Webhook-Id</code> (which mirrors the body's <code>id</code>), a <code>Webhook-Timestamp</code> (unix\nseconds) and a <code>Webhook-Signature</code> header, the last formatted\n<code>v1,&lt;base64 hmac-sha256 of \"&lt;id&gt;.&lt;timestamp&gt;.&lt;body&gt;\"&gt;</code> and keyed with\nyour api key, so any Standard Webhooks client can verify it. Reject a body whose signature does not match,\nand one whose timestamp is older than you are willing to accept. Delivery is retried with backoff until\nyour endpoint answers <code>2xx</code>, and is abandoned after 10 attempts.</p>", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/email/prospect?full_name=support&domain=mixrank.com", "summary": "Get an email."}, {"url": "/email/prospect?full_name=Satya%20Nadella&domain=microsoft.com&limit=3", "summary": "Get an email."}, {"url": "/email/prospect?first_name=Bill&last_name=Gates&domain=gatesfoundation.org", "summary": "Get an email."}, {"url": "/email/prospect?person_id=53254996&limit=4", "summary": "Get an email."}, {"url": "/email/prospect?person_id=53930938&domain=gatesfoundation.org", "summary": "Get an email."}, {"url": "/email/prospect?person_id=53254996&webhook=https://example.com/hooks/prospect", "summary": "Get an email, delivered to a webhook instead of waiting for it."}]}}, "/person/segment-preview": {"get": {"tags": ["Audience Segments"], "summary": "Person Segment Preview", "description": "Retrieve MixRank person IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not person IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nis_truncated indicates additional matches.\n\nRequired permissions for your API key's user: `persons.segment`.", "operationId": "get-person-segment-preview", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": "integer", "description": "Number of returned IDs, not all matching IDs.", "examples": [2]}, "is_truncated": {"type": "boolean", "examples": [true]}, "results": {"type": "array", "items": {"type": "integer"}, "examples": [[900000001, 900000002]]}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"limit": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching IDs.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [{"name": "query", "in": "query", "required": true, "description": "Required boolean feature-ID expression; at most 530 features.", "schema": {"type": "string"}, "example": "123|456"}, {"name": "limit", "in": "query", "required": false, "description": "Maximum returned IDs.", "schema": {"type": "integer", "default": 100, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/person/segment-preview?query=123%7C456", "summary": "Illustrative OR query; use IDs from feature lookup."}]}, "post": {"tags": ["Audience Segments"], "summary": "Person Segment Preview", "description": "Retrieve MixRank person IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not person IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nis_truncated indicates additional matches.\n\nRequired permissions for your API key's user: `persons.segment`.", "operationId": "post-person-segment-preview", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": "integer", "description": "Number of returned IDs, not all matching IDs.", "examples": [2]}, "is_truncated": {"type": "boolean", "examples": [true]}, "results": {"type": "array", "items": {"type": "integer"}, "examples": [[900000001, 900000002]]}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"limit": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching IDs.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [], "x-mixrank-examples": [{"url": "/person/segment-preview", "post_data": "query=123%7C456", "summary": "POST form with illustrative feature IDs."}], "requestBody": {"required": true, "content": {"application/x-www-form-urlencoded": {"schema": {"type": "object", "properties": {"query": {"type": "string", "description": "Required boolean feature-ID expression; at most 530 features."}, "limit": {"type": "integer", "default": 100, "minimum": 1, "maximum": 100, "description": "Maximum returned IDs."}}, "required": ["query"]}, "example": {"query": "123|456"}}}}}}, "/person/segment-query": {"get": {"tags": ["Audience Segments"], "summary": "Person Segment Query", "description": "Retrieve MixRank person IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not person IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nReturns a token for an asynchronous export of up to 10,000 IDs. Poll <a href=\"#tag/audience-segments/GET/segment-result\">the export result</a> with that token: 204 means pending, 200 downloads Zstandard-compressed CSV containing one row of sorted IDs. Empty output is the literal none. A _truncated suffix before .csv.zst indicates additional matches. Exports can only be downloaded by the submitting user.\n\nRequired permissions for your API key's user: `persons.segment.query`.", "operationId": "get-person-segment-query", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"token": {"type": "string", "examples": ["a2e1f8c3d7b9e2d6f1e8b0a5c2d3f4b6"]}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}}, "parameters": [{"name": "query", "in": "query", "required": true, "description": "Required boolean feature-ID expression; at most 530 features.", "schema": {"type": "string"}, "example": "123|456"}], "x-mixrank-examples": [{"url": "/person/segment-query?query=123%7C456", "summary": "Illustrative OR query; use IDs from feature lookup."}]}, "post": {"tags": ["Audience Segments"], "summary": "Person Segment Query", "description": "Retrieve MixRank person IDs matching a combination of features, such as industry or country. Obtain filter IDs from <a href=\"#tag/audience-segments/GET/segment-features/{segment}\">feature lookup</a>; feature IDs are filter values, not person IDs. Use comma for AND, | for OR, ~ for NOT and parentheses for grouping. ~(123,456)|789 matches records lacking at least one of 123 and 456, or possessing 789. Queries accept at most 530 features.\n\nReturns a token for an asynchronous export of up to 10,000 IDs. Poll <a href=\"#tag/audience-segments/GET/segment-result\">the export result</a> with that token: 204 means pending, 200 downloads Zstandard-compressed CSV containing one row of sorted IDs. Empty output is the literal none. A _truncated suffix before .csv.zst indicates additional matches. Exports can only be downloaded by the submitting user.\n\nRequired permissions for your API key's user: `persons.segment.query`.", "operationId": "post-person-segment-query", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"token": {"type": "string", "examples": ["a2e1f8c3d7b9e2d6f1e8b0a5c2d3f4b6"]}}}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"query": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}}, "parameters": [], "x-mixrank-examples": [{"url": "/person/segment-query", "post_data": "query=123%7C456", "summary": "POST form with illustrative feature IDs."}], "requestBody": {"required": true, "content": {"application/x-www-form-urlencoded": {"schema": {"type": "object", "properties": {"query": {"type": "string", "description": "Required boolean feature-ID expression; at most 530 features."}}, "required": ["query"]}, "example": {"query": "123|456"}}}}}}, "/email/validate": {"get": {"tags": ["Email"], "summary": "Validate", "description": "Assesses an email address without guaranteeing deliverability. Cached and fetched assessments are billed separately. Timeout, malformed address, and cache miss return HTTP 200 assessments with validity temp_error, malformed, or uncached, respectively. With webhook, returns HTTP 202 and delivers the result asynchronously.\n\nRequired permissions for your API key's user: `email.validate`.", "operationId": "get-email-validate", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "properties": {"email": {"type": ["string", "null"], "description": "The requested email address.", "examples": ["support@mixrank.com"]}, "normalized": {"type": ["string", "null"], "description": "The normalized email address.", "examples": ["support@mixrank.com"]}, "validity": {"type": ["string", "null"], "description": "<p>Email validity. Possible values are:</p>\n<ul>\n    <li><code>valid</code>: The email is valid.</li>\n    <li><code>ambiguous</code>: There is not enough information about this email.</li>\n    <li><code>maybe_valid</code>: Similar to <code>ambiguous</code>, but we know it was valid at some point.</li>\n    <li><code>invalid</code>: The email is invalid.</li>\n    <li><code>uncached</code>: Only returned after a strategy of <code>cached</code> didn't find the result.</li>\n    <li><code>malformed</code>: This email address is malformed.</li>\n    <li><code>temp_error</code>: Temporary internal error, please try again later.</li>\n    <li><code>perm_error</code>: Permament error, maybe a misconfigured email server?</li>\n</ul>", "examples": ["valid"], "enum": ["valid", "ambiguous", "maybe_valid", "invalid", "uncached", "malformed", "temp_error", "perm_error"]}, "validated_at": {"type": ["string", "null"], "description": "When this result was generated.", "examples": ["2026-10-07T17:50:57.711722"]}, "uses_greylist": {"type": ["boolean", "null"], "description": "Whether the recipient domain greylists our probe. Null on cached results (not stored). While the greylist window is still closed the result is inconclusive (<code>validity</code> is <code>ambiguous</code>) and <code>retry_after</code> hints when to retry; once resolved <code>validity</code> is conclusive while this stays true.", "examples": [null]}, "retry_after": {"type": ["string", "null"], "description": "If greylisted, the earliest time it is worth retrying this address. Null on cached results and when not greylisted.", "examples": [null]}, "gateway": {"type": ["string", "null"], "description": "Gateway name. Not strictly a SEG, but who is filtering email.", "examples": ["google"]}, "is_disposable": {"type": ["boolean", "null"], "description": "Whether the email address is disposable / temporary.", "examples": [false]}, "is_consumer": {"type": ["boolean", "null"], "description": "Whether the email is b2c (gmail.com, yahoo.com, ...).", "examples": [false]}, "is_domain_catchall": {"type": ["boolean", "null"], "description": "Whether the email domain is catchall (not this particular address). Might be null for unknown.", "examples": [null]}, "mx_records": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of MX DNS records for the domain", "examples": [["aspmx.l.google.com", "alt1.aspmx.l.google.com", "alt2.aspmx.l.google.com", "aspmx2.googlemail.com", "aspmx3.googlemail.com"]]}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"timeout": "Invalid value 'abc'."}}]}]}, "examples": {"cache_miss": {"value": {"email": "person@example.com", "normalized": "person@example.com", "validity": "uncached", "validated_at": "2026-10-06T12:00:00", "uses_greylist": null, "retry_after": null, "gateway": null, "is_disposable": false, "is_consumer": false, "is_domain_catchall": null, "mx_records": []}}}}}}, "400": {"description": "Invalid parameters or webhook URL.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"email": "Parameter is required."}}}, "invalid_webhook": {"summary": "Invalid webhook", "value": {"errors": {"webhook": "'webhook' must use https."}}}, "invalid_strategy": {"summary": "Invalid strategy", "value": {"errors": {"strategy": "Invalid value 'latest'."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Too many pending webhook requests.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}, "too_many_webhooks": {"summary": "Too many webhooks", "value": {"errors": {"webhook": "You already have 1200 webhook requests pending. Please wait for them to be processed."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "202": {"description": "Webhook request accepted; the result is delivered asynchronously.", "content": {"application/json": {"schema": {"type": "object", "required": ["id", "status"], "properties": {"id": {"type": "string", "format": "uuid"}, "status": {"type": "string", "enum": ["accepted"]}}}, "example": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "status": "accepted"}}}}, "503": {"description": "Queue unavailable; retry later.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"queue_unavailable": {"summary": "Queue unavailable", "value": {"errors": {"webhook": "Queued validations are temporarily unavailable. Please retry later."}}}}}}}}, "parameters": [{"name": "email", "in": "query", "required": true, "description": "The email address to verify.", "schema": {"type": "string"}, "examples": {"default": {"value": "support@mixrank.com", "x-disabled": false}}}, {"name": "timeout", "in": "query", "required": false, "description": "Synchronous validation timeout in seconds; ignored with webhook.", "schema": {"type": "number", "default": 120, "minimum": 0, "maximum": 120}}, {"name": "maxage", "in": "query", "required": false, "description": "Optional cache age in seconds, including for strict/besteffort. Without it, any cached result may qualify. Ignored by fetch.", "schema": {"type": "integer"}}, {"name": "strategy", "in": "query", "required": false, "description": "cached returns stored data only; fetch requests a refresh. strict uses sufficiently recent cached data, otherwise refreshes; besteffort also falls back to stale cached data when refresh fails.", "schema": {"type": "string", "default": "besteffort", "enum": ["cached", "fetch", "strict", "besteffort"]}}, {"name": "webhook", "in": "query", "required": false, "description": "<p>An <code>https</code> url to deliver the result to. Given one, the request is accepted with a\n<code>202</code> and a body of <code>{\"id\": ..., \"status\": \"accepted\"}</code> instead of waiting for\nthe validation. The result is <code>POST</code>ed to this url as soon as it is ready.</p>\n<p>The body is <code>{\"id\": ..., \"type\": ..., \"timestamp\": ..., \"data\": ...}</code>, where <code>id</code>\nrepeats the initial <code>id</code>, <code>type</code> names the event, <code>timestamp</code> is when the\nresult was produced, and <code>data</code> carries the <code>status</code> the synchronous request would\nhave answered with, and is otherwise the response you would have received synchronously, or an\n<code>error</code> message if it could not be answered.</p> <p>Deliveries follow\n<a href=\"https://github.com/standard-webhooks/standard-webhooks\">Standard Webhooks</a>: each carries a\n<code>Webhook-Id</code> (which mirrors the body's <code>id</code>), a <code>Webhook-Timestamp</code> (unix\nseconds) and a <code>Webhook-Signature</code> header, the last formatted\n<code>v1,&lt;base64 hmac-sha256 of \"&lt;id&gt;.&lt;timestamp&gt;.&lt;body&gt;\"&gt;</code> and keyed with\nyour api key, so any Standard Webhooks client can verify it. Reject a body whose signature does not match,\nand one whose timestamp is older than you are willing to accept. Delivery is retried with backoff until\nyour endpoint answers <code>2xx</code>, and is abandoned after 10 attempts.</p>", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/email/validate?email=support@mixrank.com", "summary": "Validate an email."}, {"url": "/email/validate?email=support@mixrank.com&strategy=fetch", "summary": "Validate an email, ignore cache."}, {"url": "/email/validate?email=invalid@mixrank.com&strategy=strict&maxage=3600", "summary": "Validate an email if the cached entry is older than 1 hour."}, {"url": "/email/validate?email=support@mixrank.com&strategy=strict", "summary": "Validate an email if there is no cached entry."}, {"url": "/email/validate?email=invalid@mixrank.com&strategy=cached&maxage=60", "summary": "Get cached validation if it is not older than 1 minute."}]}}, "/email/validate/bulk-job/{job_id}": {"get": {"tags": ["Email"], "summary": "Check Job", "description": "MixRank email validation jobs belong to the API key owner and are accessible across that user\u2019s authorized keys. A non-null completed_at indicates completion. download_url provides gzip-compressed JSON Lines output and requires no API key. Each output record contains an email validation assessment and line_number. Private jobs require deletion of the output after download.\n\nRequired permissions for your API key's user: `email.validate.bulk`.", "operationId": "get-email-validate-bulk-job-job_id", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"properties": {"id": {"type": "string", "description": "Job ID, scoped to the requesting user across their API keys.", "examples": ["5c91d8a2-9736-4ae1-941d-241971105934"], "format": "uuid"}, "created_at": {"type": ["string", "null"], "description": "Job creation UTC time.", "examples": ["2026-10-06 12:00:00"]}, "lines_total": {"type": ["integer", "null"], "description": "Total items extracted from input file.", "examples": [2]}, "lines_invalid": {"type": ["integer", "null"], "description": "Number of items which were not deemed as valid email addresses.", "examples": [0]}, "lines_processed": {"type": ["integer", "null"], "description": "Total items processed so far.", "examples": [2]}, "lines_refreshed": {"type": ["integer", "null"], "description": "Total items that were refreshed.", "examples": [2]}, "strategy": {"type": ["string", "null"], "description": "Strategy used for all items.", "examples": ["besteffort"], "enum": ["cached", "fetch", "strict", "besteffort"]}, "maxage": {"type": ["string", "null"], "description": "UTC cache timestamp cutoff; null when no cutoff applies. The request maxage is a duration in seconds.", "examples": ["2026-09-06 12:00:00"]}, "completed_at": {"type": ["string", "null"], "description": "UTC completion time; null while pending.", "examples": ["2026-10-06 12:05:00"]}, "download_url": {"type": ["string", "null"], "description": "Output download URL; null until output exists or after deletion.", "examples": ["https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"], "format": "uri"}}}, "examples": {"pending": {"value": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": null, "lines_processed": 0, "lines_refreshed": 0, "strategy": "besteffort", "maxage": "2026-09-06 12:00:00", "download_url": null}}, "completed": {"value": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": "2026-10-06 12:05:00", "lines_processed": 2, "lines_refreshed": 2, "strategy": "besteffort", "maxage": "2026-09-06 12:00:00", "download_url": "https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "408": {"description": "Database operation timed out; retry later.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}, "400": {"description": "Malformed job UUID.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"malformed_uuid": {"summary": "Malformed UUID", "value": {"errors": {"message": "Invalid format for a GUID"}}}}}}}, "404": {"description": "Job does not exist or belongs to another user.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"not_found": {"summary": "Not found", "value": {"errors": {"message": "Job not found."}}}}}}}}, "parameters": [{"name": "job_id", "in": "path", "required": true, "description": "Job ID from the submission response, owned by the requesting user. Accepts UUID text with or without hyphens.", "schema": {"type": "string", "example": "5c91d8a2-9736-4ae1-941d-241971105934", "format": "uuid"}}]}, "delete": {"tags": ["Email"], "summary": "Delete Job Output", "description": "Deletes the output of a private email validation job owned by the requesting user. Job metadata is retained. Returns HTTP 200 metadata with download_url null. Deletion does not cancel a pending job, which may create output afterward.\n\nRequired permissions for your API key's user: `email.validate.bulk`.", "operationId": "delete-email-validate-bulk-job-job_id", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"properties": {"id": {"type": "string", "description": "Job ID, scoped to the requesting user across their API keys.", "examples": ["5c91d8a2-9736-4ae1-941d-241971105934"], "format": "uuid"}, "created_at": {"type": ["string", "null"], "description": "Job creation UTC time.", "examples": ["2026-10-06 12:00:00"]}, "lines_total": {"type": ["integer", "null"], "description": "Total items extracted from input file.", "examples": [2]}, "lines_invalid": {"type": ["integer", "null"], "description": "Number of items which were not deemed as valid email addresses.", "examples": [0]}, "lines_processed": {"type": ["integer", "null"], "description": "Total items processed so far.", "examples": [2]}, "lines_refreshed": {"type": ["integer", "null"], "description": "Total items that were refreshed.", "examples": [2]}, "strategy": {"type": ["string", "null"], "description": "Strategy used for all items.", "examples": ["besteffort"], "enum": ["cached", "fetch", "strict", "besteffort"]}, "maxage": {"type": ["string", "null"], "description": "UTC cache timestamp cutoff; null when no cutoff applies. The request maxage is a duration in seconds.", "examples": ["2026-09-06 12:00:00"]}, "completed_at": {"type": ["string", "null"], "description": "UTC completion time; null while pending.", "examples": ["2026-10-06 12:05:00"]}, "download_url": {"type": ["string", "null"], "description": "Output download URL; null until output exists or after deletion.", "examples": ["https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"], "format": "uri"}}}, "examples": {"deleted": {"value": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": "2026-10-06 12:05:00", "lines_processed": 2, "lines_refreshed": 2, "strategy": "fetch", "maxage": null, "download_url": null}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "408": {"description": "Database operation timed out; retry later.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}, "400": {"description": "Malformed UUID or job is not private.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"malformed_uuid": {"summary": "Malformed UUID", "value": {"errors": {"message": "Invalid format for a GUID"}}}, "not_private": {"summary": "Not private", "value": {"errors": {"message": "Job is not marked as private."}}}}}}}, "404": {"description": "Job does not exist or belongs to another user.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"not_found": {"summary": "Not found", "value": {"errors": {"message": "Job not found."}}}}}}}}, "parameters": [{"name": "job_id", "in": "path", "required": true, "description": "Job ID from the submission response, owned by the requesting user. Accepts UUID text with or without hyphens.", "schema": {"type": "string", "example": "5c91d8a2-9736-4ae1-941d-241971105934", "format": "uuid"}}]}}, "/email/validate/bulk-job": {"get": {"tags": ["Email"], "summary": "List Jobs", "description": "MixRank email validation jobs belong to the API key owner and are accessible across that user\u2019s authorized keys. Lists job metadata newest first. A non-null completed_at indicates completion. download_url provides gzip-compressed JSON Lines output and requires no API key. Each output record contains an email validation assessment and line_number. Private jobs require deletion of the output after download.\n\nRequired permissions for your API key's user: `email.validate.bulk`.", "operationId": "get-email-validate-bulk-job", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": "integer", "examples": [2], "description": "Number of jobs returned on this page."}, "offset": {"type": "integer", "examples": [0]}, "page_size": {"type": "integer", "examples": [10]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "string", "description": "Job ID, scoped to the requesting user across their API keys.", "examples": ["5c91d8a2-9736-4ae1-941d-241971105934"], "format": "uuid"}, "created_at": {"type": ["string", "null"], "description": "Job creation UTC time.", "examples": ["2026-10-06 12:00:00"]}, "lines_total": {"type": ["integer", "null"], "description": "Total items extracted from input file.", "examples": [2]}, "lines_invalid": {"type": ["integer", "null"], "description": "Number of items which were not deemed as valid email addresses.", "examples": [0]}, "lines_processed": {"type": ["integer", "null"], "description": "Total items processed so far.", "examples": [2]}, "lines_refreshed": {"type": ["integer", "null"], "description": "Total items that were refreshed.", "examples": [2]}, "strategy": {"type": ["string", "null"], "description": "Strategy used for all items.", "examples": ["besteffort"], "enum": ["cached", "fetch", "strict", "besteffort"]}, "maxage": {"type": ["string", "null"], "description": "UTC cache timestamp cutoff; null when no cutoff applies. The request maxage is a duration in seconds.", "examples": ["2026-09-06 12:00:00"]}, "completed_at": {"type": ["string", "null"], "description": "UTC completion time; null while pending.", "examples": ["2026-10-06 12:05:00"]}, "download_url": {"type": ["string", "null"], "description": "Output download URL; null until output exists or after deletion.", "examples": ["https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"], "format": "uri"}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"page_size": "Invalid value 'abc'."}}]}]}, "examples": {"jobs": {"value": {"total": 2, "offset": 0, "page_size": 10, "results": [{"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": null, "lines_processed": 0, "lines_refreshed": 0, "strategy": "besteffort", "maxage": "2026-09-06 12:00:00", "download_url": null}, {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": "2026-10-06 12:05:00", "lines_processed": 2, "lines_refreshed": 2, "strategy": "besteffort", "maxage": "2026-09-06 12:00:00", "download_url": "https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"}]}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "408": {"description": "Database operation timed out; retry later.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 10, "minimum": 1, "maximum": 100}}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}]}, "post": {"tags": ["Email"], "summary": "Submit Job", "description": "MixRank email validation jobs belong to the API key owner and are accessible across that user\u2019s authorized keys. A non-null completed_at indicates completion. download_url provides gzip-compressed JSON Lines output and requires no API key. Each output record contains an email validation assessment and line_number. Private jobs require deletion of the output after download. Limited to 3,000,000 input lines and 20 unfinished jobs per user.\n\nRequired permissions for your API key's user: `email.validate.bulk`.", "operationId": "post-email-validate-bulk-job", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "properties": {"id": {"type": "string", "description": "Job ID, scoped to the requesting user across their API keys.", "examples": ["5c91d8a2-9736-4ae1-941d-241971105934"], "format": "uuid"}, "created_at": {"type": ["string", "null"], "description": "Job creation UTC time.", "examples": ["2026-10-06 12:00:00"]}, "lines_total": {"type": ["integer", "null"], "description": "Total items extracted from input file.", "examples": [2]}, "lines_invalid": {"type": ["integer", "null"], "description": "Number of items which were not deemed as valid email addresses.", "examples": [0]}, "lines_processed": {"type": ["integer", "null"], "description": "Total items processed so far.", "examples": [2]}, "lines_refreshed": {"type": ["integer", "null"], "description": "Total items that were refreshed.", "examples": [2]}, "strategy": {"type": ["string", "null"], "description": "Strategy used for all items.", "examples": ["besteffort"], "enum": ["cached", "fetch", "strict", "besteffort"]}, "maxage": {"type": ["string", "null"], "description": "UTC cache timestamp cutoff; null when no cutoff applies. The request maxage is a duration in seconds.", "examples": ["2026-09-06 12:00:00"]}, "completed_at": {"type": ["string", "null"], "description": "UTC completion time; null while pending.", "examples": ["2026-10-06 12:05:00"]}, "download_url": {"type": ["string", "null"], "description": "Output download URL; null until output exists or after deletion.", "examples": ["https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"], "format": "uri"}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"maxage": "Invalid value 'abc'."}}]}]}, "examples": {"pending": {"value": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": null, "lines_processed": 0, "lines_refreshed": 0, "strategy": "besteffort", "maxage": "2026-09-06 12:00:00", "download_url": null}}, "completed": {"value": {"id": "5c91d8a2-9736-4ae1-941d-241971105934", "created_at": "2026-10-06 12:00:00", "lines_total": 2, "lines_invalid": 0, "completed_at": "2026-10-06 12:05:00", "lines_processed": 2, "lines_refreshed": 2, "strategy": "besteffort", "maxage": "2026-09-06 12:00:00", "download_url": "https://data.mixrank.com/export/bulk_job/email/3f2b7c9e1a4d5f60718293a4b5c6d7e8.jsonl.gz"}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "At most 20 unfinished jobs per user; wait for one to finish.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}, "too_many_jobs": {"summary": "Too many jobs", "value": {"errors": {"message": "You already have 20/20 jobs scheduled. Please wait for at least one of them to complete before submitting a new request."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "408": {"description": "Database operation timed out; retry later.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}, "400": {"description": "Missing or invalid file, duplicate in-flight file, too many lines, or invalid parameters. Also returned when no valid email addresses exist, or when private=t is passed, since private mode is removed.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_file": {"summary": "Missing file", "value": {"errors": {"message": "The 'file' form-parameter is missing"}}}, "too_many_lines": {"summary": "Too many lines", "value": {"errors": {"message": "Too many lines in your file. Please stay under the limit of 3000000"}}}, "duplicate_file": {"summary": "Duplicate file", "value": {"errors": {"message": "An identical file is already being processed. Please wait for the existing job to finish."}}}, "no_valid_emails": {"summary": "No valid emails", "value": {"errors": {"message": "No valid email addresses were found in your file."}}}, "private_removed": {"summary": "Private removed", "value": {"errors": {"message": "Private mode is removed"}}}, "invalid_strategy": {"summary": "Invalid strategy", "value": {"errors": {"strategy": "Invalid value 'latest'."}}}}}}}, "402": {"description": "Reserved for insufficient account quota; quota rejection is currently disabled.", "content": {"application/json": {"schema": {"type": "object", "properties": {"error": {"type": "string", "const": "credit_limit_exceeded"}, "message": {"type": "string", "description": "Reason the job exceeds the available credit limit."}, "current_usage": {"type": "integer"}, "quota_limit": {"type": "integer"}, "monthly_limit": {"type": "integer", "description": "Compatibility alias for quota_limit."}, "contact_email": {"type": "string", "format": "email"}}, "required": ["error", "message", "current_usage", "quota_limit", "monthly_limit", "contact_email"]}, "examples": {"credit_limit_exceeded": {"summary": "Credit limit exceeded", "value": {"error": "credit_limit_exceeded", "message": "Your remaining quota for Bulk Email Validation Refresh is 1500, this bulk job has 2500 lines so you do not have enough credits to run it. Please contact sales to increase your limit.", "current_usage": 8500, "quota_limit": 10000, "monthly_limit": 10000, "contact_email": "accounts@mixrank.com"}}}}}}}, "parameters": [{"name": "maxage", "in": "query", "required": false, "description": "Optional cache age in seconds, including for strict/besteffort. Without it, any cached result may qualify. Ignored by fetch.", "schema": {"type": "integer"}}, {"name": "strategy", "in": "query", "required": false, "description": "cached returns stored data only; fetch requests a refresh. strict uses sufficiently recent cached data, otherwise refreshes; besteffort also falls back to stale cached data when refresh fails.", "schema": {"type": "string", "default": "besteffort", "enum": ["cached", "fetch", "strict", "besteffort"]}}], "x-mixrank-examples": [{"url": "/email/validate/bulk-job", "summary": "Submit a list of email addresses."}], "requestBody": {"required": true, "content": {"multipart/form-data": {"schema": {"type": "object", "required": ["file"], "properties": {"file": {"type": "string", "format": "binary", "description": "UTF-8 text containing newline-delimited email addresses."}}}}}}}}, "/segment-features/{segment}": {"get": {"tags": ["Audience Segments"], "summary": "Features", "description": "<p>\n    Features or feature IDs are a way to codify a set of properties. For\n    example, the property \"currently a software engineer\" could be codified\n    by the feature ID <code>123</code> or the property \"worked at\n    Microsoft\" by the feature ID <code>456</code>, and both can be used to\n    search for people that are currently software engineers or that worked\n    at Microsoft.\n</p>\n<p>\n    Features are categorized by segments and by types within each segment.\n    Currently, the supported segments are <code>persons</code> and <code>companies</code>.\n    Each segment contains features for searching (people or companies) by different criteria. \n</p>\n<p>Up to 530 feature IDs can be returned.</p>\n\ntotal counts returned feature rows. Feature-name search syntax is distinct from the numeric ID-expression syntax used by segment preview/query. For companies employee_size, code is required (A through I); search alone is insufficient. expand_search applies to type=job_title. For concat_features=t, a returned row may have null id/mod/name/explanation and feature_concat=\"123|456\" (illustrative IDs), usable as an OR query.", "operationId": "get-segment-features-segment", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Feature ID.", "examples": [3096224825841206]}, "mod": {"type": ["string", "null"], "description": "Search modifier.", "examples": ["present"]}, "name": {"type": ["string", "null"], "description": "Feature name.", "examples": ["Microsoft"]}, "description": {"type": ["string", "null"], "description": "Feature description.", "examples": [null]}, "explanation": {"type": ["string", "null"], "description": "Feature explanation.", "examples": ["Currently works at \"Microsoft\"."]}, "feature_concat": {"type": ["string", "null"], "description": "Null if <code>concat_features</code> is not passed or false.", "examples": [null]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"limit": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"type": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching feature rows.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "Feature lookup timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "segment", "in": "path", "required": true, "description": "Segment of feature IDs to retrieve. Supported values:                     <code>persons</code> and <code>companies</code>.", "schema": {"type": "string", "enum": ["persons", "companies"]}, "example": "persons"}, {"name": "type", "in": "query", "required": true, "description": "<p>Each segment supports different types of features.</p>\n<b>Persons</b>\n<p>Feature types to search people by:</p>\n<ul>\n    <li><code>company</code>: company names.</li>\n    <li><code>job_title</code>: job titles.</li>\n    <li><code>industry</code>: industry names.</li>\n    <li><code>country</code>: location country.</li>\n    <li><code>company_type</code>: company type.</li>\n    <li><code>language_prof</code>: language proficiency.</li>\n    <li><code>job_title_tag</code>: job title tags, such as seniority, job function, etc.</li>\n    <li><code>linkedin_school</code>: linkedin schools.</li>\n</ul>\n<b>Companies</b>\n<p>Feature types to search companies by:</p>\n<ul>\n    <li><code>industry</code>: industry names.</li>\n    <li><code>company_type</code>: company type.</li>\n    <li><code>country</code>: country of headquarters.</li>\n    <li><code>employee_size</code>: number of employees.</li>\n</ul>", "schema": {"type": "string", "enum": ["company", "job_title", "industry", "country", "company_type", "language_prof", "job_title_tag", "linkedin_school", "employee_size"]}, "examples": {"default": {"value": "company", "x-disabled": false}}}, {"name": "limit", "in": "query", "required": false, "description": "Maximum number of feature rows returned.", "schema": {"type": "integer", "default": 100, "minimum": 1, "maximum": 530}}, {"name": "search", "in": "query", "required": false, "description": "Term used for looking up feature IDs. Case insensitive and cannot be longer than 8000 characters.", "schema": {"type": "string"}, "examples": {"default": {"value": "Microsoft", "x-disabled": false}}}, {"name": "code", "in": "query", "required": false, "description": "<p>\n    Parameter used for looking up feature IDs by encoded values.\n</p>\n<p>\nCodes of type <code>company_type</code>:\n</p>\n<ul>\n    <li><code>G</code>: Government Agency</li>\n    <li><code>S</code>: Partnership</li>\n    <li><code>P</code>: Privately Held</li>\n    <li><code>D</code>: Educational</li>\n    <li><code>E</code>: Self Employed</li>\n    <li><code>N</code>: Non Profit</li>\n    <li><code>C</code>: Public Company</li>\n    <li><code>O</code>: Self Owned</li>\n</ul>\n<p>\nCodes of type <code>employee_size</code>:\n</p>\n<ul>\n    <li><code>A</code>: Self-employed</li>\n    <li><code>B</code>: 2--10 employees</li>\n    <li><code>C</code>: 11--50 employees</li>\n    <li><code>D</code>: 51--200 employees</li>\n    <li><code>E</code>: 201--500 employees</li>\n    <li><code>F</code>: 501--1,000 employees</li>\n    <li><code>G</code>: 1,001--5,000 employees</li>\n    <li><code>H</code>: 5,001--10,000 employees</li>\n    <li><code>I</code>: 10,001+ employees</li>\n</ul>", "schema": {"type": "string"}}, {"name": "company_id", "in": "query", "required": false, "description": "MixRank company ID; supported for type=company.", "schema": {"type": "integer"}}, {"name": "url", "in": "query", "required": false, "description": "Parameter used for looking up feature IDs by a specific domain of a\n                company or school. It only works for features of type\n                <code>company</code> or <code>linkedin_school</code>.", "schema": {"type": "string"}}, {"name": "org_id", "in": "query", "required": false, "description": "LinkedIn company ID; supported for type=company.", "schema": {"type": "integer"}}, {"name": "linkedin_url", "in": "query", "required": false, "description": "Parameter used for looking up feature IDs by a specific LinkedIn URL of a\n                company or school.\n                It only works for features of type  <code>company</code> or <code>linkedin_school</code>.", "schema": {"type": "string"}}, {"name": "expand_search", "in": "query", "required": false, "description": "This parameter is used to expand job title feature search to include fuzzier matches.\n                It only works for features of type <code>job_title</code>.", "schema": {"type": "string", "enum": ["t", "f"], "default": "f"}}, {"name": "concat_features", "in": "query", "required": false, "description": "This parameter concatenates expand_search job title feature results in a single string\n                separated by vertical bars (<code>|</code>), ready to be used as a final query.\n                The <code>feature_concat</code> response field is populated with the result.", "schema": {"type": "string", "enum": ["t", "f"], "default": "f"}}, {"name": "tag_type", "in": "query", "required": false, "description": "This parameter is used to filter the job_title_tag type.\n                It only works for features of type <code>job_title_tag</code>.\n                <ul>\n                    <li><code>job_seniority</code></li>\n                    <li><code>job_function</code></li>\n                    <li><code>job_employment_type</code></li>\n                    <li><code>job_academic_qualification</code></li>\n                </ul>", "schema": {"type": "string"}}, {"name": "modifiers", "in": "query", "required": false, "description": "Comma-separated modifiers. <p>\n    Features support modifiers and they allow for finer\n    filters. For example, searching for people who previously\n    worked at a company, the <code>past</code> modifier is\n    used. Also this parameter is used for search language proficiency\n    levels as <code>Native or bilingual proficiency</code>.\n</p>\n<p>\n    If this parameter is not passed, all features matching the\n    <code>search</code> term are returned. The modifiers\n    supported by each feature type within each segment are:\n</p>\n<b>Persons</b>\n<ul>\n    <li><code>company</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>job_title</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>industry</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>country</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>company_type</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>language_prof</code>:\n        <code>NP: No proficiency</code>,\n        <code>EP: Elementary proficiency</code>,\n        <code>LWP: Limited working proficiency</code>,\n        <code>PWP: Professional working proficiency</code>,\n        <code>FPP: Full professional proficiency</code>,\n        <code>NBP: Native or bilingual proficiency</code>.\n    <li><code>job_title_tag</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>linkedin_school</code>: Only <code>ever</code> linkedin_school features are returned.</li>\n    </li>\n</ul>\n<b>Companies</b>\n<ul>\n    <li><code>industry</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>company_type</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>country</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n    <li><code>employee_size</code>: <code>past</code>, <code>present</code>, <code>ever</code>.</li>\n</ul>", "schema": {"type": "string", "example": "present,ever"}}], "x-mixrank-examples": [{"url": "/segment-features/persons?type=company&search=Microsoft", "summary": "Feature IDs to search for people who are working or worked at Microsoft."}, {"url": "/segment-features/persons?type=company&search=Microsoft&modifiers=present", "summary": "Feature IDs to search for people who are currently working at Microsoft."}, {"url": "/segment-features/persons?type=company&search=Microsoft&modifiers=past", "summary": "Feature IDs to search for people who worked at Microsoft."}, {"url": "/segment-features/persons?type=company&search=Microsoft AND Excel", "summary": "Feature IDs to search for people who are working or worked for a company\n            whose name matches both \"Microsoft\" and \"Excel\"."}, {"url": "/segment-features/persons?type=company&search=Microsoft OR Excel", "summary": "Feature IDs to search for people who are working or worked for a company\n            whose name matches \"Microsoft\" or \"Excel\"."}, {"url": "/segment-features/persons?type=company&company_id=82023958", "summary": "Feature IDs to search for people who are working or worked for a company\n            with ID equal to 82023958 (\"Xerox\" company)."}, {"url": "/segment-features/persons?type=company&company_id=89826092&modifiers=past", "summary": "Feature ID to search for people who worked for a company with ID\n               equal to 89826092 (\"Prime Acceptance Corp\" company)."}, {"url": "/segment-features/persons?type=job_title&search=compensation&modifiers=present&expand_search=t&limit=50", "summary": "Extended feature IDs (50 features) to search for people currently\n            working on compensation related areas."}, {"url": "/segment-features/persons?type=industry&search=Computer AND Games&modifiers=present", "summary": "Feature IDs to search for people currently in Computer and Game related industries."}, {"url": "/segment-features/persons?type=industry&search=defense OR food&modifiers=present", "summary": "Feature IDs to search for people who currently are in the defense or food\n               related Industries."}, {"url": "/segment-features/persons?type=country&search=AD or USA", "summary": "Feature IDs to search for people whose current country location are United States or Andorra.\n               Note: Three character ISO search for Andorra (AND) is not supported."}, {"url": "/segment-features/persons?type=country&search=brazil or USA&modifiers=present", "summary": "Feature IDs to search for people whose current country location is United States or Brazil."}, {"url": "/segment-features/persons?type=company&url=https://www.prompt-recruit.co.uk&modifiers=present", "summary": "Feature IDs to search for people who are working for \"Prompt Recruitment\""}, {"url": "/segment-features/persons?type=company&url=www.microsoft.com/es-co/&modifiers=past", "summary": "Feature IDs to search for people who worked at \"Microsoft\"."}, {"url": "/segment-features/persons?type=company_type&search=Government Agency&modifiers=present", "summary": "Feature IDs to search for people who are working in a company classified as Government Agency."}, {"url": "/segment-features/persons?type=language_prof&search=English&modifiers=NBP", "summary": "Feature IDs to search for people who have a Native or bilingual proficiency in English."}, {"url": "/segment-features/persons?type=job_title_tag&tag_type=job_function&search=Purchasing&modifiers=past", "summary": "Feature IDs to search for people who had purchasing job_function tag in previous positions."}, {"url": "/segment-features/persons?type=job_title_tag&tag_type=job_seniority&search=director&modifiers=present", "summary": "Feature IDs to search for people who curretly have director's job_seniority tag."}, {"url": "/segment-features/persons?type=linkedin_school&linkedin_url=https://www.linkedin.com/school/harvard-university", "summary": "Feature IDs to search for people who have ever attended Harvard University using linkedin_url."}, {"url": "/segment-features/persons?type=linkedin_school&url=https://www.harvard.edu", "summary": "Feature IDs to search for people who have ever attended Harvard University using domain."}, {"url": "/segment-features/persons?type=linkedin_school&search=harvard", "summary": "Feature IDs to search for people who have ever attended Harvard University using key words."}, {"url": "/segment-features/companies?type=industry&search=IT Services", "summary": "Feature IDs to search for companies who have been in industries\n            related with IT Services."}, {"url": "/segment-features/companies?type=industry&search=IT Services&modifiers=present", "summary": "Feature IDs to search for companies currently in an industry related with\n            IT Services."}, {"url": "/segment-features/companies?type=industry&search=IT Services&modifiers=past", "summary": "Feature IDs to search for companies who in the past were in an industry\n            related with<br> IT Services."}, {"url": "/segment-features/companies?type=industry&search=IT Services AND IT Consulting", "summary": "Feature IDs to search for companies who have been in an industry related with\n            IT Services and IT Consulting."}, {"url": "/segment-features/companies?type=industry&search=IT Services OR Software Development", "summary": "Feature IDs to search for companies who have been in an industry related with\n            IT Services or Software Development."}, {"url": "/segment-features/companies?type=company_type&code=P&modifiers=present", "summary": "Feature ID to search for companies currently classified as \"Privately Held\"."}, {"url": "/segment-features/companies?type=country&search=AR&modifiers=past", "summary": "Feature ID to search for companies whose past headquarters location was Argentina<br>\n            (AR)."}, {"url": "/segment-features/companies?type=country&search=India&modifiers=present", "summary": "Feature ID to search for companies whose headquarters are currently located in India."}, {"url": "/segment-features/companies?type=employee_size&code=F&modifiers=present", "summary": "Feature ID to search for companies who currently have a number of\n            employees in the<br> range of 501-1000 employees."}]}}, "/segment-result": {"get": {"tags": ["Audience Segments"], "summary": "Segment Result", "description": "Poll with the token returned by a person or company segment-query. Only the submitting user can download the export. HTTP 204 means pending; HTTP 200 downloads a Zstandard-compressed CSV attachment with one row of sorted IDs, limited to 10,000. Empty output is the literal none. The filename suffix _truncated before .csv.zst indicates additional matches.\n\nResult IDs identify <a href=\"#/person/{person_id}\">people</a> or <a href=\"#tag/companies/GET/companies/{company_id}\">companies</a>, depending on the query that created the export.", "operationId": "get-segment-result", "responses": {"200": {"description": "Completed export download.", "content": {"application/zst": {"schema": {"type": "string", "format": "binary"}}}, "headers": {"Content-Encoding": {"schema": {"type": "string", "enum": ["zst"]}}, "Content-Disposition": {"schema": {"type": "string"}, "example": "attachment; filename=TOKEN_truncated.csv.zst"}}}, "403": {"description": "Token belongs to another user, or API access is denied.", "content": {"application/json": {"schema": {"oneOf": [{"type": "object", "required": ["status"], "properties": {"status": {"type": "string"}}}, {"type": "object", "required": ["errors"], "properties": {"errors": {"type": "object"}}}]}, "examples": {"forbidden_access": {"summary": "Forbidden access", "value": {"status": "Forbidden access"}}, "invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "204": {"description": "Export is still processing; no response body."}, "404": {"description": "Unknown or missing token.", "content": {"application/json": {"schema": {"oneOf": [{"type": "object", "required": ["status"], "properties": {"status": {"type": "string"}}}, {"type": "object", "required": ["errors"], "properties": {"errors": {"type": "object"}}}]}, "examples": {"unknown_token": {"summary": "Unknown token", "value": {"status": "No file exists for the passed token"}}, "missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"token": "Parameter is required."}}}}}}}}, "parameters": [{"name": "token", "in": "query", "required": true, "description": "Export token returned by segment-query.", "schema": {"type": "string"}, "examples": {"default": {"value": "a2e1f8c3d7b9e2d6f1e8b0a5c2d3f4b6", "x-disabled": false}}}], "x-mixrank-examples": [{"url": "/segment-result?token=a2e1f8c3d7b9e2d6f1e8b0a5c2d3f4b6", "summary": "Download a potentially large result file with all person IDs that matched the segment query.\n            Use the token provided by the endpoint in the section <a href=\"#/person/segment-query\">Person\n            Segment Query</a>\". The token in this example is for demonstrative purposes."}]}}, "/appstore/ipa/{ipa_id}": {"get": {"tags": ["iOS Apps"], "summary": "IPA", "description": "Get metadata and, when permitted, a download link for an iOS app package (IPA file).\n\nYour API key's account needs appstore.apps access for metadata and appstore.ipas for download links; without the latter, download_link is null. Missing files and link-generation failures return HTTP 200 with a top-level error.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-ipa-ipa_id", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "properties": {"ipa_id": {"type": ["integer", "null"], "description": "MixRank ID of the IPA.", "examples": [871027104]}, "error": {"type": ["string", "null"], "description": "Error raised while trying to generate a signed URL.", "examples": [null]}, "download_link": {"type": ["string", "null"], "description": "Signed IPA URL; requested expiry is 10 days. Null if unavailable.", "examples": ["https://mr-ios-ipas.s3.amazonaws.com/untouched_ipas/1318650898-871027104.ipa?X-Amz-Signature=..."]}, "app_id": {"type": ["integer", "null"], "description": "Internal MixRank app ID, not the Apple App Store ID.", "examples": [1318650898]}, "asset_size": {"type": ["integer", "null"], "description": "Size of the IPA file in bytes.", "examples": [239489024]}, "bundle_short_version_string": {"type": ["string", "null"], "description": "The user-facing version string as specified in the app's CFBundleShortVersionString.", "examples": ["24.12.0500"]}, "bundle_version": {"type": ["string", "null"], "description": "The build version number as specified in the app's CFBundleVersion.", "examples": ["1733405209"]}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration files included in the IPA package", "examples": [87]}, "md5": {"type": ["string", "null"], "description": "MD5 hash of the IPA.", "examples": ["6f7568f6319e11c2fd9e1f7d5e1ce0fc"]}, "resource_count": {"type": ["integer", "null"], "description": "The total number of resource files (images, sounds, etc.) contained within the IPA package.", "examples": [1125]}, "version_display": {"type": ["string", "null"], "description": "Version of the IPA file.", "examples": ["24.12.0500"]}, "downloaded_at": {"type": ["string", "null"], "description": "Timestamp this IPA file was downloaded.", "examples": ["2024-12-11 00:07:08.188378"]}, "apple_platform_name": {"type": ["string", "null"], "description": "Platform identifier for the IPA file", "examples": ["ios"]}, "release_date": {"type": ["string", "null"], "description": "Official release date of the IPA file.", "examples": ["2024-12-10 00:00:00"]}, "release_notes": {"type": ["string", "null"], "description": "Release notes which accompanied this release of the IPA.", "examples": ["Das letzte Update f\u00fcr dieses Jahr - mit kleinen \u00c4nderungen f\u00fcr euch."]}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"ipa_id": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "ipa_id", "in": "path", "required": true, "description": "MixRank binary ID from the id field of /appstore/apps/{app_id}/versions. This is not an Apple App Store app ID.", "schema": {"type": "integer"}, "example": 871027104}], "x-mixrank-examples": [{"url": "/appstore/ipa/871027104", "summary": "Get metadata for IPA 871027104, with a download link if permitted."}]}}, "/appstore/apps": {"get": {"tags": ["iOS Apps"], "summary": "Directory", "description": "Directory of iOS apps.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Apple App Store numeric ID.", "examples": [284882215]}, "bundle_id": {"type": ["string", "null"], "description": "The unique string identifier for this app.", "examples": ["com.facebook.Facebook"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Facebook"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [17]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.59]}, "developer_id": {"type": ["integer", "null"], "description": "App Store artist/developer ID; use in the developer apps endpoint.", "examples": [284882218]}, "developer": {"type": ["string", "null"], "description": "The name of the app developer.", "examples": ["Meta Platforms, Inc."]}, "company_url": {"type": ["string", "null"], "description": "Company website.", "examples": ["http://www.facebook.com/mobile"]}, "support_url": {"type": ["string", "null"], "description": "Support website.", "examples": ["http://www.facebook.com/help/?page=18834"]}, "privacy_policy_url": {"type": ["string", "null"], "description": "App's privacy policy.", "examples": ["http://www.facebook.com/about/privacy/"]}, "seller": {"type": ["string", "null"], "description": "The name of the app seller.", "examples": ["Meta Platforms, Inc."]}, "copyright": {"type": ["string", "null"], "description": "App's copyright notice.", "examples": ["\u00a9 2023 Meta"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [1053213]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.45]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [106008288]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-07"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the first version of this app.", "examples": ["2014-04-18"]}, "small_artwork_url": {"type": ["string", "null"], "description": "Small 60x60 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.png"]}, "large_artwork_url": {"type": ["string", "null"], "description": "Large 100x100 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.png"]}, "xlarge_artwork_url": {"type": ["string", "null"], "description": "Extra large 512x512 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.png"]}, "genre": {"type": ["string", "null"], "description": "Genre this app is in.", "examples": ["Social Networking"]}, "genres": {"type": ["array", "null"], "description": "Genre names; null when none are available.", "examples": [["Social Networking"]], "items": {"type": "string"}}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration properties extracted from the app's info.plist (across all inspected versions).", "examples": [50427]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [141327039]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta Platforms Inc"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["41277281"]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"version_number": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["582.0.0"]}, "version_string": {"type": ["string", "null"], "description": "Unique identifier of binary.", "examples": ["15987691"]}}, "description": "Latest version information."}, "content_rating": {"type": ["string", "null"], "description": "Content safety rating.", "examples": ["12+"]}, "content_rating_details": {"type": ["string", "null"], "description": "Content safety rating details.", "examples": ["Infrequent/Mild Guns or Other Weapons , Age Assurance , Infrequent/Mild Alcohol, Tobacco, or Drug Use or References , Advertising , Messaging and Chat , Advisory.YES.SOCIAL_MEDIA , Parental Controls..."]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 4, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>rating_count</code>, <code>release_date</code>, <code>configs_count</code>, <code>id</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "rating_count", "release_date", "configs_count", "id"]}, "examples": {"default": {"value": "rating_count", "x-disabled": false}}}, {"name": "sort_order", "in": "query", "required": false, "description": "Ignored for rank and release_date (ascending), and rating_count and configs_count (descending). Applies to other supported sort fields.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}, {"name": "company.id", "in": "query", "required": false, "description": "Filter results by company ID.", "schema": {"type": "integer"}}, {"name": "search", "in": "query", "required": false, "description": "Term to search for", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/appstore/apps?page_size=4&sort_field=rating_count", "summary": "Top 4 apps by number of ratings."}, {"url": "/appstore/apps?page_size=4&sort_field=id&sort_order=asc", "summary": "The apps with the lowest IDs in the appstore."}, {"url": "/appstore/apps?company.id=82018021", "summary": "iOS apps released by Supercell."}, {"url": "/appstore/apps?search=zombies", "summary": "Search for apps matching \"zombies\"."}]}}, "/appstore/apps/{app_id}": {"get": {"tags": ["iOS Apps"], "summary": "Overview", "description": "Summary information about an App Store app.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"id": {"type": "integer", "description": "Apple App Store numeric ID.", "examples": [284882215]}, "bundle_id": {"type": ["string", "null"], "description": "The unique string identifier for this app.", "examples": ["com.facebook.Facebook"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Facebook"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [17]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.59]}, "developer_id": {"type": ["integer", "null"], "description": "App Store artist/developer ID; use in the developer apps endpoint.", "examples": [284882218]}, "developer": {"type": ["string", "null"], "description": "The name of the app developer.", "examples": ["Meta Platforms, Inc."]}, "company_url": {"type": ["string", "null"], "description": "Company website.", "examples": ["http://www.facebook.com/mobile"]}, "support_url": {"type": ["string", "null"], "description": "Support website.", "examples": ["http://www.facebook.com/help/?page=18834"]}, "privacy_policy_url": {"type": ["string", "null"], "description": "App's privacy policy.", "examples": ["http://www.facebook.com/about/privacy/"]}, "seller": {"type": ["string", "null"], "description": "The name of the app seller.", "examples": ["Meta Platforms, Inc."]}, "copyright": {"type": ["string", "null"], "description": "App's copyright notice.", "examples": ["\u00a9 2023 Meta"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [1053213]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.45]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [106008288]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-07"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the first version of this app.", "examples": ["2014-04-18"]}, "small_artwork_url": {"type": ["string", "null"], "description": "Small 60x60 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.png"]}, "large_artwork_url": {"type": ["string", "null"], "description": "Large 100x100 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.png"]}, "xlarge_artwork_url": {"type": ["string", "null"], "description": "Extra large 512x512 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.png"]}, "genre": {"type": ["string", "null"], "description": "Genre this app is in.", "examples": ["Social Networking"]}, "genres": {"type": ["array", "null"], "description": "Genre names; null when none are available.", "examples": [["Social Networking"]], "items": {"type": "string"}}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration properties extracted from the app's info.plist (across all inspected versions).", "examples": [50427]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [141327039]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta Platforms Inc"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["41277281"]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"version_number": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["582.0.0"]}, "version_string": {"type": ["string", "null"], "description": "Unique identifier of binary.", "examples": ["15987691"]}}, "description": "Latest version information."}, "content_rating": {"type": ["string", "null"], "description": "Content safety rating.", "examples": ["12+"]}, "content_rating_details": {"type": ["string", "null"], "description": "Content safety rating details.", "examples": ["Infrequent/Mild Guns or Other Weapons , Age Assurance , Infrequent/Mild Alcohol, Tobacco, or Drug Use or References , Advertising , Messaging and Chat , Advisory.YES.SOCIAL_MEDIA , Parental Controls..."]}, "developer_link": {"type": ["string", "null"], "description": "Developer's itunes profile.", "examples": ["https://apps.apple.com/us/developer/meta-platforms-inc/id284882218"]}, "ratings": {"type": ["object", "null"], "properties": {"1": {"type": ["integer", "null"], "examples": [8694502]}, "2": {"type": ["integer", "null"], "examples": [1987476]}, "3": {"type": ["integer", "null"], "examples": [4118248]}, "4": {"type": ["integer", "null"], "examples": [8903996]}, "5": {"type": ["integer", "null"], "examples": [82304066]}}, "description": "Number of ratings per star."}, "summary": {"type": ["string", "null"], "description": "The description of this app", "examples": ["Where real people propel your curiosity. Whether you\u2019re thrifting gear, showing reels to that group who gets it, or sharing laughs over fun images reimagined by AI, Facebook helps you make things..."]}, "installation_size": {"type": ["integer", "null"], "description": "Size of the app in bytes.", "examples": [513508352]}, "price": {"type": ["string", "null"], "description": "Price for this app in US appstore.", "examples": ["Free"]}, "compatibility": {"type": ["object", "null"], "properties": {"min_ios_version": {"type": ["string", "null"], "examples": ["15.1"]}, "supported_devices": {"type": ["array", "null"], "items": {"type": "string"}, "examples": [["tvos", "iphone", "ipad"]]}}, "description": "Restrictions on Supported Devices"}, "screenshot_urls": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Screenshots for iPhone, iPod.", "examples": [["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/75/26/f4/7526f4ae-6017-0e69-7a03-eab147122b19/f254967c-6ef9-4cc6-b4bf-e89cf016337c_1-iOS-5.5-Home.png/392x696bb.jpg", "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/5a/e9/55/5ae95577-c18a-0b51-71c9-a148cc0ad323/c795c58d-ec37-463c-9ab9-ba0b8bc00ddd_2-iOS-5.5-Reels.png/392x696bb.jpg", "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/b8/69/31/b86931ae-08d7-c9a3-3fae-ab5a37daac80/0130e841-7bad-4f8c-83c9-61ea0bac7d7b_3-iOS-5.5-Stories.png/392x696bb.jpg"]]}, "ipad_screenshot_urls": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Screenshots for iPad", "examples": [["https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/d4/8c/aa/d48caae2-9b6c-7ea1-ba50-06ff6ce94881/iPad2-Marketplace.png/392x696bb.jpg", "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource211/v4/d7/75/16/d77516e3-9c90-0d18-782d-079244443f28/iPad2-Feed.png/392x696bb.jpg", "https://is1-ssl.mzstatic.com/image/thumb/PurpleSource221/v4/c9/aa/42/c9aa42eb-2bf1-dd4a-c2ed-f6bd66f64e86/iPad2-Reels.png/392x696bb.jpg"]]}, "privacy_label_ids": {"type": ["array", "null"], "items": {"type": "integer"}, "description": "Privacy label IDs from /appstore/privacy/labels.", "examples": [[1352, 270, 560]]}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching entity was found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "284882215"}], "x-mixrank-examples": [{"url": "/appstore/apps/284882215", "summary": "Summary information for Facebook."}, {"url": "/appstore/apps/com.pandora", "summary": "Summary information for Pandora."}]}}, "/appstore/apps/{app_id}/rankings": {"get": {"tags": ["iOS Apps"], "summary": "Rankings Summary", "description": "Rankings for an app. Apps are ranked in \"lists\" which are made up of a container, a country, and a genre.\n\nOnly lists in which the app was seen within the last month are included. Container, genre and country values are display names, not query slugs.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-rankings", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "List ID.", "examples": [521]}, "container": {"type": ["string", "null"], "description": "List container.", "examples": ["Top Free Applications"]}, "genre": {"type": ["string", "null"], "description": "List genre.", "examples": ["App Store"]}, "country": {"type": ["string", "null"], "description": "List country.", "examples": ["Canada"]}, "current_rank": {"type": ["integer", "null"], "description": "Latest observed rank in this list; not a live store rank.", "examples": [98]}, "highest_rank": {"type": ["integer", "null"], "description": "The highest rank the app achieved in this list.", "examples": [9]}, "first_ranked": {"type": ["string", "null"], "format": "date", "description": "The date this app first ranked in this list.", "examples": ["2019-08-01"]}, "last_ranked": {"type": ["string", "null"], "format": "date", "description": "The date this app last ranked in this list.", "examples": ["2026-10-07"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "331177714"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/appstore/apps/331177714/rankings", "summary": "Rankings for Starbucks."}, {"url": "/appstore/apps/com.starbucks.mystarbucks/rankings", "summary": "Rankings for Starbucks."}]}}, "/appstore/apps/{app_id}/rankings-history": {"get": {"tags": ["iOS Apps"], "summary": "Rankings History", "description": "Ranking history for an app in a given ranking list.\n\nObservations are ordered newest first.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-rankings-history", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"ranking": {"type": ["integer", "null"], "description": "The current rank of this app at this time.", "examples": [194]}, "date": {"type": ["string", "null"], "description": "When this ranking list was generated by Apple (UTC).", "examples": ["2026-09-27 13:12:04"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"before": "Invalid datetime: 'abc'. Expected format: YYYY-MM-DD."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"container": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "284993459"}, {"name": "container", "in": "query", "required": true, "description": "Chart type identifier from /appstore/rankings.", "schema": {"type": "string"}, "examples": {"default": {"value": "topfreeapplications", "x-disabled": false}}}, {"name": "genre", "in": "query", "required": true, "description": "App category identifier from /appstore/rankings; ios includes all apps.", "schema": {"type": "string"}, "examples": {"default": {"value": "ios", "x-disabled": false}}}, {"name": "country", "in": "query", "required": true, "description": "Country slug from /appstore/rankings, for example us.", "schema": {"type": "string"}, "examples": {"default": {"value": "us", "x-disabled": false}}}, {"name": "before", "in": "query", "required": false, "description": "Include observations on or before this UTC date (inclusive).", "schema": {"type": "string", "format": "date"}}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/appstore/apps/284993459/rankings-history?container=topfreeapplications&genre=ios&country=us", "summary": "Rankings history for Shazam in the \"Top Free Applications\" list in the US."}, {"url": "/appstore/apps/com.supercell.magic/rankings-history?container=topfreeapplications&genre=ios&country=us", "summary": "Rankings history for \"Clash of Clans\" in the \"Top Free Applications\" list in the US."}]}}, "/appstore/apps/{app_id}/sdks": {"get": {"tags": ["iOS Apps"], "summary": "SDKs", "description": "SDKs installed in a given app.\n\nIncludes historical detections. Current presence is relative to the latest analyzed binary/version, which can differ from the latest store release.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-sdks", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": ["string", "null"], "description": "Name of the SDK.", "examples": ["CAGlobalEditPhotoKit"]}, "slug": {"type": ["string", "null"], "description": "ID of the SDK.", "examples": ["caglobaleditphotokit"]}, "upload_date_min": {"type": ["string", "null"], "format": "date", "description": "The upload date of the oldest version of the app with this SDK installed.", "examples": ["2026-03-25"]}, "upload_date_max": {"type": ["string", "null"], "format": "date", "description": "The upload date of the newest version of the app with this SDK installed.", "examples": ["2026-10-06"]}, "version_code_min": {"type": ["integer", "null"], "description": "IPA ID of the earliest detection; not an App Store version number.", "examples": [883711573]}, "version_code_max": {"type": ["integer", "null"], "description": "IPA ID of the latest detection; not an App Store version number.", "examples": [892561705]}, "currently_installed": {"type": ["boolean", "null"], "description": "Detected in the latest analyzed binary/version.", "examples": [true]}, "sdk_version": {"type": ["string", "null"], "description": "Version of the SDK in use.", "examples": ["4.8.3"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "389801252"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 500}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>version_code_min</code>, <code>version_code_max</code>, <code>name</code>, <code>slug</code>.", "schema": {"type": "string", "default": "version_code_min", "enum": ["version_code_min", "version_code_max", "name", "slug"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/apps/389801252/sdks", "summary": "SDKs installed in Instagram."}, {"url": "/appstore/apps/com.supercell.magic/sdks", "summary": "SDKs installed in \"Clash of Clans\"."}]}}, "/appstore/apps/{app_id}/configs": {"get": {"tags": ["iOS Apps"], "summary": "Configs", "description": "Configuration options for iOS apps from embedded Info.plist documents.\n\nInfo.plist configuration documents extracted from analyzed iOS app packages (IPA files); one result per document/version.\n\nRequired permissions for your API key's user: `appstore.configs`.", "operationId": "get-appstore-apps-app_id-configs", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": "integer", "examples": [92]}, "results": {"type": "array", "items": {"properties": {"version": {"type": ["string", "null"], "description": "The version of the app analyzed.", "examples": ["7.10"]}, "plist": {"type": ["object", "null"], "description": "The plist document embedded in the app.", "examples": [{"DTXcode": "0502", "DTSDKName": "iphoneos7.0", "DTCompiler": "com.apple.compilers.llvm.clang.1_0", "DTSDKBuild": "11B508", "MCLogLevel": 16, "UIAppFonts": ["HelveticaNeueLTStd-It.otf", "HelveticaNeueLTStd-Roman.otf", "HelveticaNeueLTStd-Bd.otf"]}]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No configuration documents were found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_results": {"summary": "No results", "value": {"errors": {"message": "No results."}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "321916506"}], "x-mixrank-examples": [{"url": "/appstore/apps/321916506/configs", "summary": "Get the config options for Words With Friends."}, {"url": "/appstore/apps/com.newtoyinc.WordsWithFriendsFree/configs", "summary": "Get the config options for Words With Friends."}]}}, "/appstore/apps/{app_id}/versions": {"get": {"tags": ["iOS Apps"], "summary": "Versions", "description": "Releases of an app.\n\nAvailable analyzed binaries; not guaranteed to include every public release.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-versions", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "IPA ID usable in /appstore/ipa/{ipa_id}.", "examples": [892578469]}, "asset_size": {"type": ["integer", "null"], "description": "Size of IPA in bytes.", "examples": [435131392]}, "config_count": {"type": ["integer", "null"], "description": "Number of Info.plist configs.", "examples": [236]}, "class_count": {"type": ["integer", "null"], "description": "Number of classes in binary.", "examples": [13587]}, "resource_count": {"type": ["integer", "null"], "description": "Number of files in bundle.", "examples": [1795]}, "version_display": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["14.39"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "Date this version was released to the store.", "examples": ["2026-10-07"]}, "release_notes": {"type": ["string", "null"], "description": "Developer's release notes.", "examples": ["Every week, we polish up the Pinterest app. This update includes:\n- Bug fixes\n- Performance improvements\n\nTell us if you like this latest version at https://help.pinterest.com/contact"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "429047995"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>id</code>.", "schema": {"type": "string", "default": "id", "enum": ["id"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/apps/429047995/versions", "summary": "Versions of Pinterest app."}, {"url": "/appstore/apps/com.supercell.magic/versions", "summary": "Versions of \"Clash of Clans\" app."}]}}, "/appstore/apps/{app_id}/iaps": {"get": {"tags": ["iOS Apps"], "summary": "In-App Purchases", "description": "In-App purchases offered by this app.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-iaps", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "In-app purchase ID (unique globally).", "examples": [6785102]}, "name": {"type": ["string", "null"], "description": "Name of in-app purchase.", "examples": ["Structures Starter Pack"]}, "price_str": {"type": ["string", "null"], "description": "Formatted price text, including the stored currency formatting.", "examples": ["USD\u00a05.99"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "479516143"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>id</code>.", "schema": {"type": "string", "default": "id", "enum": ["id"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/apps/479516143/iaps", "summary": "In-app purchases offered by \"Minecraft\"."}, {"url": "/appstore/apps/com.mojang.minecraftpe/iaps", "summary": "In-app purchases offered by \"Minecraft\"."}]}}, "/appstore/apps/{app_id}/reviews": {"get": {"tags": ["iOS Apps"], "summary": "Reviews", "description": "User reviews of a given app.\n\nReviews are ordered newest first; sort_order only accepts desc.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-reviews", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Review ID.", "examples": [12667445253]}, "user_id": {"type": ["integer", "null"], "description": "iTunes user ID.", "examples": [900000601]}, "username": {"type": ["string", "null"], "description": "iTunes username.", "examples": ["sample_reviewer"]}, "rating": {"type": ["integer", "null"], "description": "Star rating (1-5).", "examples": [5]}, "version": {"type": ["string", "null"], "description": "Version of app the user is reviewing.", "examples": ["1.21.81"]}, "date": {"type": ["string", "null"], "format": "date", "description": "When the user submitted the review.", "examples": ["2025-05-17"]}, "vote_yes": {"type": ["integer", "null"], "description": "Number of users that voted this review as helpful.", "examples": [3]}, "vote_no": {"type": ["integer", "null"], "description": "Number of users that voted this review as unhelpful.", "examples": [0]}, "title": {"type": ["string", "null"], "description": "Title of the review.", "examples": ["Great with friends"]}, "body": {"type": ["string", "null"], "description": "Body of the review.", "examples": ["Building together on a shared world is the best part."]}, "country_id": {"type": ["string", "null"], "description": "Country code of the store the user downloaded the app from.", "examples": ["us"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "479516143"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>date</code>.", "schema": {"type": "string", "default": "date", "enum": ["date"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["desc"]}}], "x-mixrank-examples": [{"url": "/appstore/apps/479516143/reviews", "summary": "Reviews of \"Minecraft\"."}, {"url": "/appstore/apps/com.mojang.minecraftpe/reviews", "summary": "Reviews of \"Minecraft\"."}]}}, "/appstore/apps/{app_id}/downloads": {"get": {"tags": ["iOS Apps"], "summary": "Downloads", "description": "Download trends for a given app.\n\nDaily estimates grouped by country name.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-downloads", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"country": {"type": ["string", "null"], "description": "Name of country for downloads timeseries.", "examples": ["United Arab Emirates"]}, "data": {"type": "array", "items": {"type": "array", "minItems": 2, "maxItems": 2, "items": {"anyOf": [{"type": "string", "format": "date"}, {"type": "integer"}]}}, "description": "Daily [date, integer estimate] pairs.", "examples": [[["2026-09-11", 487], ["2026-09-12", 406], ["2026-09-13", 419]]]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"interval": "Invalid value: 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No estimates were found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_results": {"summary": "No results", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The estimate query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "529479190"}, {"name": "interval", "in": "query", "required": false, "description": "Duration to retrieve data for. Possible values:  '1 month', '3 month', '6 month', '12 month'", "schema": {"type": "string", "default": "1 month", "enum": ["1 month", "3 month", "6 month", "12 month"]}}, {"name": "country", "in": "query", "required": false, "description": "Two-letter country code filter, for example us; output uses country names.", "schema": {"type": "string"}}, {"name": "offset", "in": "query", "required": false, "description": "Months to shift the requested period into the past.", "schema": {"type": "integer", "default": 0}}], "x-mixrank-examples": [{"url": "/appstore/apps/529479190/downloads", "summary": "Downloads trend for \"Clash of Clans\"."}, {"url": "/appstore/apps/com.supercell.magic/downloads", "summary": "Downloads trend for \"Clash of Clans\"."}, {"url": "/appstore/apps/com.supercell.magic/downloads?interval=3%20month", "summary": "Downloads trend for \"Clash of Clans\" for the last 3 months"}, {"url": "/appstore/apps/com.supercell.magic/downloads?interval=3%20month&country=us", "summary": "Downloads trend for \"Clash of Clans\" for the last 3 months for US only."}, {"url": "/appstore/apps/com.supercell.magic/downloads?interval=3%20month&offset=3", "summary": "Downloads trend for \"Clash of Clans\" for the period between 6 months ago and 3 months ago."}]}}, "/appstore/apps/{app_id}/revenue": {"get": {"tags": ["iOS Apps"], "summary": "Revenue", "description": "Revenue trends for a given app.\n\nDaily estimates grouped by country name.\n\nRevenue estimates are in US dollars (USD).\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-apps-app_id-revenue", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"country": {"type": ["string", "null"], "description": "Name of country for revenue timeseries.", "examples": ["United Arab Emirates"]}, "data": {"type": "array", "items": {"type": "array", "minItems": 2, "maxItems": 2, "items": {"anyOf": [{"type": "string", "format": "date"}, {"type": "integer"}]}}, "description": "Daily [date, integer estimate] pairs.", "examples": [[["2026-09-11", 1528], ["2026-09-12", 1571], ["2026-09-13", 1671]]]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"interval": "Invalid value: 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No estimates were found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_results": {"summary": "No results", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The estimate query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "app_id", "in": "path", "required": true, "description": "Apple App Store ID (numeric) or bundle ID: id or bundle_id from /appstore/apps.", "schema": {"type": "string"}, "example": "529479190"}, {"name": "interval", "in": "query", "required": false, "description": "Duration to retrieve data for. Possible values:  '1 month', '3 month', '6 month', '12 month'", "schema": {"type": "string", "default": "1 month", "enum": ["1 month", "3 month", "6 month", "12 month"]}}, {"name": "country", "in": "query", "required": false, "description": "Two-letter country code filter, for example us; output uses country names.", "schema": {"type": "string"}}, {"name": "offset", "in": "query", "required": false, "description": "Months to shift the requested period into the past.", "schema": {"type": "integer", "default": 0}}], "x-mixrank-examples": [{"url": "/appstore/apps/529479190/revenue", "summary": "Revenue trend for \"Clash of Clans\"."}, {"url": "/appstore/apps/com.supercell.magic/revenue", "summary": "Revenue trend for \"Clash of Clans\"."}, {"url": "/appstore/apps/com.supercell.magic/revenue?interval=3%20month", "summary": "Revenue trend for \"Clash of Clans\" for the last 3 months"}, {"url": "/appstore/apps/com.supercell.magic/revenue?interval=3%20month&country=us", "summary": "Revenue trend for \"Clash of Clans\" for the last 3 months for US only"}, {"url": "/appstore/apps/com.supercell.magic/revenue?interval=3%20month&offset=3", "summary": "Revenue trend for \"Clash of Clans\" for the period between 6 months ago and 3 months ago."}]}}, "/appstore/developers/{developer_id}/apps": {"get": {"tags": ["iOS Developers"], "summary": "Apps", "description": "Apps published by a developer\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-developers-developer_id-apps", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Apple App Store numeric ID.", "examples": [284882215]}, "bundle_id": {"type": ["string", "null"], "description": "The unique string identifier for this app.", "examples": ["com.facebook.Facebook"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Facebook"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [17]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.59]}, "developer_id": {"type": ["integer", "null"], "description": "App Store artist/developer ID; use in the developer apps endpoint.", "examples": [284882218]}, "developer": {"type": ["string", "null"], "description": "The name of the app developer.", "examples": ["Meta Platforms, Inc."]}, "company_url": {"type": ["string", "null"], "description": "Company website.", "examples": ["http://www.facebook.com/mobile"]}, "support_url": {"type": ["string", "null"], "description": "Support website.", "examples": ["http://www.facebook.com/help/?page=18834"]}, "privacy_policy_url": {"type": ["string", "null"], "description": "App's privacy policy.", "examples": ["http://www.facebook.com/about/privacy/"]}, "seller": {"type": ["string", "null"], "description": "The name of the app seller.", "examples": ["Meta Platforms, Inc."]}, "copyright": {"type": ["string", "null"], "description": "App's copyright notice.", "examples": ["\u00a9 2023 Meta"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [1053213]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.45]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [106008288]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-07"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the first version of this app.", "examples": ["2014-04-18"]}, "small_artwork_url": {"type": ["string", "null"], "description": "Small 60x60 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.png"]}, "large_artwork_url": {"type": ["string", "null"], "description": "Large 100x100 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.png"]}, "xlarge_artwork_url": {"type": ["string", "null"], "description": "Extra large 512x512 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.png"]}, "genre": {"type": ["string", "null"], "description": "Genre this app is in.", "examples": ["Social Networking"]}, "genres": {"type": ["array", "null"], "description": "Genre names; null when none are available.", "examples": [["Social Networking"]], "items": {"type": "string"}}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration properties extracted from the app's info.plist (across all inspected versions).", "examples": [50427]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [141327039]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta Platforms Inc"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["41277281"]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"version_number": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["582.0.0"]}, "version_string": {"type": ["string", "null"], "description": "Unique identifier of binary.", "examples": ["15987691"]}}, "description": "Latest version information."}, "content_rating": {"type": ["string", "null"], "description": "Content safety rating.", "examples": ["12+"]}, "content_rating_details": {"type": ["string", "null"], "description": "Content safety rating details.", "examples": ["Infrequent/Mild Guns or Other Weapons , Age Assurance , Infrequent/Mild Alcohol, Tobacco, or Drug Use or References , Advertising , Messaging and Chat , Advisory.YES.SOCIAL_MEDIA , Parental Controls..."]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_parameter": {"summary": "Invalid parameter", "value": {"errors": {"developer_id": "Invalid value 'abc'."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "developer_id", "in": "path", "required": true, "description": "App Store artist/developer ID from the developer_id field in app responses.", "schema": {"type": "integer"}, "example": 422679887}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rating_count</code>, <code>release_date</code>, <code>configs_count</code>, <code>rating</code>, <code>id</code>.", "schema": {"type": "string", "default": "rating_count", "enum": ["rating_count", "release_date", "configs_count", "rating", "id"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/developers/422679887/apps", "summary": "Get the apps developed by OMGPOP."}]}}, "/appstore/privacy/labels": {"get": {"tags": ["iOS App Privacy"], "summary": "Privacy labels", "description": "Possible privacy labels for iOS apps from App Store.\n\nApp privacy_label_ids reference /appstore/privacy/labels. Each label's datatype_id, linkage_id, and purpose_id reference id in the corresponding /appstore/privacy/datatype, /appstore/privacy/linkage, and /appstore/privacy/purpose dictionaries.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-privacy-labels", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Privacy label id.", "examples": [128]}, "datatype_id": {"type": ["integer", "null"], "description": "Privacy label datatype id.", "examples": [2]}, "linkage_id": {"type": ["integer", "null"], "description": "Privacy label linkage id.", "examples": [2]}, "purpose_id": {"type": ["integer", "null"], "description": "Privacy label purpose id.", "examples": [5]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "x-mixrank-examples": [{"url": "/appstore/privacy/labels", "summary": "Get all possible App Store privacy labels."}]}}, "/appstore/privacy/datatype": {"get": {"tags": ["iOS App Privacy"], "summary": "Privacy Data Types", "description": "Dictionary of privacy data types and categories for iOS apps from App Store.\n\nApp privacy_label_ids reference /appstore/privacy/labels. Each label's datatype_id, linkage_id, and purpose_id reference id in the corresponding /appstore/privacy/datatype, /appstore/privacy/linkage, and /appstore/privacy/purpose dictionaries.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-privacy-datatype", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Privacy data type id.", "examples": [2]}, "category_label": {"type": ["string", "null"], "description": "Privacy data category label.", "examples": ["Contact Info"]}, "category_identifier": {"type": ["string", "null"], "description": "Privacy data category identifier.", "examples": ["CONTACT_INFO"]}, "label": {"type": ["string", "null"], "description": "Privacy data type label.", "examples": ["Email Address"]}, "description": {"type": ["string", "null"], "description": "Privacy data type description.", "examples": ["Including but not limited to a hashed email address"]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "x-mixrank-examples": [{"url": "/appstore/privacy/datatype", "summary": "Get all possible App Store privacy data types with categories."}]}}, "/appstore/privacy/linkage": {"get": {"tags": ["iOS App Privacy"], "summary": "Privacy Linkage Types", "description": "Dictionary of privacy linkage types for iOS apps from App Store.\n\nApp privacy_label_ids reference /appstore/privacy/labels. Each label's datatype_id, linkage_id, and purpose_id reference id in the corresponding /appstore/privacy/datatype, /appstore/privacy/linkage, and /appstore/privacy/purpose dictionaries.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-privacy-linkage", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Privacy linkage id.", "examples": [2]}, "label": {"type": ["string", "null"], "description": "Privacy linkage label.", "examples": ["Data Linked to You"]}, "identifier": {"type": ["string", "null"], "description": "Privacy linkage identifier.", "examples": ["DATA_LINKED_TO_YOU"]}, "description": {"type": ["string", "null"], "description": "Privacy linkage description.", "examples": ["The following data, which may be collected and linked to your identity, may be used for the following purposes:"]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "x-mixrank-examples": [{"url": "/appstore/privacy/linkage", "summary": "Get all possible App Store privacy types."}]}}, "/appstore/privacy/purpose": {"get": {"tags": ["iOS App Privacy"], "summary": "Privacy Data Purposes", "description": "Dictionary of privacy data collection purposes for iOS apps from App Store.\n\nApp privacy_label_ids reference /appstore/privacy/labels. Each label's datatype_id, linkage_id, and purpose_id reference id in the corresponding /appstore/privacy/datatype, /appstore/privacy/linkage, and /appstore/privacy/purpose dictionaries.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-privacy-purpose", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Privacy data collection purpose id.", "examples": [5]}, "label": {"type": ["string", "null"], "description": "Privacy data collection purpose label.", "examples": ["App Functionality"]}, "identifier": {"type": ["string", "null"], "description": "Privacy data collection purpose identifier.", "examples": ["APP_FUNCTIONALITY"]}, "description": {"type": ["string", "null"], "description": "Privacy data collection purpose description.", "examples": ["Such as to authenticate the user, enable features, prevent fraud, implement security measures, ensure server up-time, minimize app crashes, improve scalability and performance, or perform customer support"]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "x-mixrank-examples": [{"url": "/appstore/privacy/purpose", "summary": "Get all possible App Store privacy data collection purposes."}]}}, "/appstore/rankings": {"get": {"tags": ["iOS Rankings"], "summary": "Lists", "description": "App Store chart identifiers: container (chart type), genre (app category), and country (store). Not every combination has a ranking list.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-rankings", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"properties": {"container": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of iOS rankings containers, eg \"topfreeapplications\".", "examples": [["topfreeapplications", "toppaidapplications", "topgrossingapplications"]]}, "genre": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of iOS genres, eg \"ios-games-racing\".", "examples": [["ios", "ios-books", "ios-business"]]}, "country": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of iOS rankings countries, eg \"us\".", "examples": [["us", "ca", "fr"]]}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "x-mixrank-examples": [{"url": "/appstore/rankings", "summary": "Get all ranking lists."}]}}, "/appstore/rankings/{container}/{genre}/{country}": {"get": {"tags": ["iOS Rankings"], "summary": "Rankings", "description": "Get app rankings by list. A list is determined by container, a genre, and a country.\n\nReturns the latest recorded chart, or the most recent chart strictly before the UTC date supplied in before.\n\nRequired permissions for your API key's user: `appstore.apps`.", "operationId": "get-appstore-rankings-container-genre-country", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Apple App Store numeric ID.", "examples": [284882215]}, "bundle_id": {"type": ["string", "null"], "description": "The unique string identifier for this app.", "examples": ["com.facebook.Facebook"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Facebook"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [17]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.59]}, "developer_id": {"type": ["integer", "null"], "description": "App Store artist/developer ID; use in the developer apps endpoint.", "examples": [284882218]}, "developer": {"type": ["string", "null"], "description": "The name of the app developer.", "examples": ["Meta Platforms, Inc."]}, "company_url": {"type": ["string", "null"], "description": "Company website.", "examples": ["http://www.facebook.com/mobile"]}, "support_url": {"type": ["string", "null"], "description": "Support website.", "examples": ["http://www.facebook.com/help/?page=18834"]}, "privacy_policy_url": {"type": ["string", "null"], "description": "App's privacy policy.", "examples": ["http://www.facebook.com/about/privacy/"]}, "seller": {"type": ["string", "null"], "description": "The name of the app seller.", "examples": ["Meta Platforms, Inc."]}, "copyright": {"type": ["string", "null"], "description": "App's copyright notice.", "examples": ["\u00a9 2023 Meta"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [1053213]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.45]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [106008288]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-07"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the first version of this app.", "examples": ["2014-04-18"]}, "small_artwork_url": {"type": ["string", "null"], "description": "Small 60x60 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.png"]}, "large_artwork_url": {"type": ["string", "null"], "description": "Large 100x100 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.png"]}, "xlarge_artwork_url": {"type": ["string", "null"], "description": "Extra large 512x512 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.png"]}, "genre": {"type": ["string", "null"], "description": "Genre this app is in.", "examples": ["Social Networking"]}, "genres": {"type": ["array", "null"], "description": "Genre names; null when none are available.", "examples": [["Social Networking"]], "items": {"type": "string"}}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration properties extracted from the app's info.plist (across all inspected versions).", "examples": [50427]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [141327039]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta Platforms Inc"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["41277281"]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"version_number": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["582.0.0"]}, "version_string": {"type": ["string", "null"], "description": "Unique identifier of binary.", "examples": ["15987691"]}}, "description": "Latest version information."}, "content_rating": {"type": ["string", "null"], "description": "Content safety rating.", "examples": ["12+"]}, "content_rating_details": {"type": ["string", "null"], "description": "Content safety rating details.", "examples": ["Infrequent/Mild Guns or Other Weapons , Age Assurance , Infrequent/Mild Alcohol, Tobacco, or Drug Use or References , Advertising , Messaging and Chat , Advisory.YES.SOCIAL_MEDIA , Parental Controls..."]}, "ranking": {"type": ["integer", "null"], "description": "The current rank of this app.", "examples": [25]}, "ranking_date": {"type": ["string", "null"], "description": "When this ranking list was generated by Apple (UTC).", "examples": ["2026-10-11 00:29:09.682780"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>ranking</code>.", "schema": {"type": "string", "default": "ranking", "enum": ["ranking"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "asc", "enum": ["asc", "desc"]}}, {"name": "container", "in": "path", "required": true, "description": "Chart type identifier from /appstore/rankings.", "schema": {"type": "string"}, "example": "topfreeapplications"}, {"name": "genre", "in": "path", "required": true, "description": "App category identifier from /appstore/rankings; ios includes all apps.", "schema": {"type": "string"}, "example": "ios"}, {"name": "country", "in": "path", "required": true, "description": "Lowercase country slug from /appstore/rankings, for example us.", "schema": {"type": "string"}, "example": "us"}, {"name": "before", "in": "query", "required": false, "description": "Return ranking list as it appeared before given date (in UTC).", "schema": {"type": "string", "format": "date"}}], "x-mixrank-examples": [{"url": "/appstore/rankings/topfreeapplications/ios/us", "summary": "Rankings of top free apps."}]}}, "/appstore/sdks": {"get": {"tags": ["iOS SDKs"], "summary": "Directory", "description": "List of identified SDKs.\n\nInstallation counts measure apps with SDK detections, not device installations.\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"rank": {"type": ["integer", "null"], "description": "MixRank Rank", "examples": [1]}, "score": {"type": ["number", "null"], "description": "Score of this SDK", "examples": [0.64]}, "name": {"type": ["string", "null"], "description": "Name of the SDK.", "examples": ["GoogleUtilities"]}, "id": {"type": ["integer", "null"], "description": "Unique integer ID of this SDK", "examples": [25229]}, "slug": {"type": ["string", "null"], "description": "Identifies this SDK.", "examples": ["googleutilities"]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [951347]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [902197]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [49150]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "company.id", "in": "query", "required": false, "description": "Filter results by company ID.", "schema": {"type": "integer"}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>total_installs</code>, <code>current_installs</code>, <code>uninstalls</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "total_installs", "current_installs", "uninstalls"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Ignored: rank sorts ascending; total_installs, current_installs and uninstalls sort descending.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/sdks?page_size=10", "summary": "Top 10 SDKs by rank"}, {"url": "/appstore/sdks?sort_field=total_installs&page_size=4", "summary": "Top 4 SDKs by all-time installs."}, {"url": "/appstore/sdks?sort_field=uninstalls&page_size=4", "summary": "Top 4 SDKs by most uninstalls."}]}}, "/appstore/sdks/{sdk_slug}": {"get": {"tags": ["iOS SDKs"], "summary": "Overview", "description": "Get summary information about an SDK.\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks-sdk_slug", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": ["string", "null"], "description": "Name of this SDK.", "examples": ["Facebook"]}, "slug": {"type": ["string", "null"], "description": "ID of this SDK.", "examples": ["facebook"]}, "description": {"type": ["string", "null"], "description": "Description of this SDK.", "examples": ["The FBSDKMessengerSharer is used to share media from apps into Messenger. The underlying mechanism used to share data between apps is UIPasteboard"]}, "tags": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Tags indicating types of SDK.", "examples": [["software-library", "cloud-services", "analytics"]]}, "url": {"type": ["string", "null"], "description": "Usually points to the company or documentation page for this SDK.", "examples": ["https://developers.facebook.com/docs/reference/ios/current/class/FBSDKMessengerSharer/"]}, "logo_url": {"type": ["string", "null"], "description": "Logo for the SDK/company.", "examples": ["https://s3.amazonaws.com/mr-sdk-logos/logos/2316df3665cdf401b070797e33d90f16"]}, "publisher_count": {"type": ["integer", "null"], "description": "Number of app publishers whose apps have had this SDK detected.", "examples": [404393]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [939205]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [871829]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [67376]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81764746]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["facebook"]}}, "description": "Information about the company associated with this object"}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching entity was found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /appstore/sdks.", "schema": {"type": "string"}, "example": "facebook"}], "x-mixrank-examples": [{"url": "/appstore/sdks/facebook", "summary": "Get information about the Facebook SDK."}]}}, "/appstore/sdks/{sdk_slug}/installs": {"get": {"tags": ["iOS SDKs"], "summary": "Installs", "description": "Get apps that have this SDK installed.\n\nApps with the SDK currently detected according to the latest analyzed binary.\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks-sdk_slug-installs", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Apple App Store numeric ID.", "examples": [284882215]}, "bundle_id": {"type": ["string", "null"], "description": "The unique string identifier for this app.", "examples": ["com.facebook.Facebook"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Facebook"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [17]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.59]}, "developer_id": {"type": ["integer", "null"], "description": "App Store artist/developer ID; use in the developer apps endpoint.", "examples": [284882218]}, "developer": {"type": ["string", "null"], "description": "The name of the app developer.", "examples": ["Meta Platforms, Inc."]}, "company_url": {"type": ["string", "null"], "description": "Company website.", "examples": ["http://www.facebook.com/mobile"]}, "support_url": {"type": ["string", "null"], "description": "Support website.", "examples": ["http://www.facebook.com/help/?page=18834"]}, "privacy_policy_url": {"type": ["string", "null"], "description": "App's privacy policy.", "examples": ["http://www.facebook.com/about/privacy/"]}, "seller": {"type": ["string", "null"], "description": "The name of the app seller.", "examples": ["Meta Platforms, Inc."]}, "copyright": {"type": ["string", "null"], "description": "App's copyright notice.", "examples": ["\u00a9 2023 Meta"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [1053213]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.45]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [106008288]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-07"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the first version of this app.", "examples": ["2014-04-18"]}, "small_artwork_url": {"type": ["string", "null"], "description": "Small 60x60 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.png"]}, "large_artwork_url": {"type": ["string", "null"], "description": "Large 100x100 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.png"]}, "xlarge_artwork_url": {"type": ["string", "null"], "description": "Extra large 512x512 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.png"]}, "genre": {"type": ["string", "null"], "description": "Genre this app is in.", "examples": ["Social Networking"]}, "genres": {"type": ["array", "null"], "description": "Genre names; null when none are available.", "examples": [["Social Networking"]], "items": {"type": "string"}}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration properties extracted from the app's info.plist (across all inspected versions).", "examples": [50427]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [141327039]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta Platforms Inc"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["41277281"]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"version_number": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["582.0.0"]}, "version_string": {"type": ["string", "null"], "description": "Unique identifier of binary.", "examples": ["15987691"]}}, "description": "Latest version information."}, "content_rating": {"type": ["string", "null"], "description": "Content safety rating.", "examples": ["12+"]}, "content_rating_details": {"type": ["string", "null"], "description": "Content safety rating details.", "examples": ["Infrequent/Mild Guns or Other Weapons , Age Assurance , Infrequent/Mild Alcohol, Tobacco, or Drug Use or References , Advertising , Messaging and Chat , Advisory.YES.SOCIAL_MEDIA , Parental Controls..."]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /appstore/sdks.", "schema": {"type": "string"}, "example": "flurry"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>rating_count</code>, <code>upload_date</code>, <code>id</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "rating_count", "upload_date", "id"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Ignored for rank and release_date (ascending), and rating_count and configs_count (descending). Applies to other supported sort fields.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/sdks/flurry/installs?page_size=10", "summary": "Top 10 apps that have installed the Flurry SDK."}, {"url": "/appstore/sdks/google-analytics/installs?page_size=10", "summary": "Top 10 apps that have installed the Google Analytics SDK."}]}}, "/appstore/sdks/{sdk_slug}/install-trend": {"get": {"tags": ["iOS SDKs"], "summary": "Install trend", "description": "Get historical count of apps that have this SDK installed.\n\nDaily counts of observed SDK use in apps, newest first; not device installs.\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks-sdk_slug-install-trend", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"total_installs": {"type": ["integer", "null"], "description": "Apps in which this SDK had been detected by this date.", "examples": [829889]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK present as of this date.", "examples": [725477]}, "uninstalls": {"type": ["integer", "null"], "description": "Apps with this SDK detected previously but removed as of this date.", "examples": [104412]}, "date": {"type": ["string", "null"], "format": "date", "description": "Date this count was taken.", "examples": ["2026-08-18"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /appstore/sdks.", "schema": {"type": "string"}, "example": "admob"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/appstore/sdks/admob/install-trend", "summary": "Historical count of apps that have installed the AdMob SDK."}]}}, "/appstore/sdks/{sdk_slug}/uninstalls": {"get": {"tags": ["iOS SDKs"], "summary": "Uninstalls", "description": "Get apps that have uninstalled this SDK.\n\nApps with observed SDK removals; these are not user app-uninstallation events.\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks-sdk_slug-uninstalls", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": "integer", "description": "Apple App Store numeric ID.", "examples": [284882215]}, "bundle_id": {"type": ["string", "null"], "description": "The unique string identifier for this app.", "examples": ["com.facebook.Facebook"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Facebook"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [17]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.59]}, "developer_id": {"type": ["integer", "null"], "description": "App Store artist/developer ID; use in the developer apps endpoint.", "examples": [284882218]}, "developer": {"type": ["string", "null"], "description": "The name of the app developer.", "examples": ["Meta Platforms, Inc."]}, "company_url": {"type": ["string", "null"], "description": "Company website.", "examples": ["http://www.facebook.com/mobile"]}, "support_url": {"type": ["string", "null"], "description": "Support website.", "examples": ["http://www.facebook.com/help/?page=18834"]}, "privacy_policy_url": {"type": ["string", "null"], "description": "App's privacy policy.", "examples": ["http://www.facebook.com/about/privacy/"]}, "seller": {"type": ["string", "null"], "description": "The name of the app seller.", "examples": ["Meta Platforms, Inc."]}, "copyright": {"type": ["string", "null"], "description": "App's copyright notice.", "examples": ["\u00a9 2023 Meta"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [1053213]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.45]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [106008288]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-07"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the first version of this app.", "examples": ["2014-04-18"]}, "small_artwork_url": {"type": ["string", "null"], "description": "Small 60x60 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/60x60bb.png"]}, "large_artwork_url": {"type": ["string", "null"], "description": "Large 100x100 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/100x100bb.png"]}, "xlarge_artwork_url": {"type": ["string", "null"], "description": "Extra large 512x512 app icon.", "examples": ["https://is1-ssl.mzstatic.com/image/thumb/Purple221/v4/8a/a0/a8/8aa0a82f-fcd1-b9b4-f664-28b5389f2886/Icon-Production-0-0-1x_U007epad-0-1-0-sRGB-85-220.png/512x512bb.png"]}, "genre": {"type": ["string", "null"], "description": "Genre this app is in.", "examples": ["Social Networking"]}, "genres": {"type": ["array", "null"], "description": "Genre names; null when none are available.", "examples": [["Social Networking"]], "items": {"type": "string"}}, "configs_count": {"type": ["integer", "null"], "description": "The number of configuration properties extracted from the app's info.plist (across all inspected versions).", "examples": [50427]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [141327039]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Meta Platforms Inc"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["41277281"]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"version_number": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["582.0.0"]}, "version_string": {"type": ["string", "null"], "description": "Unique identifier of binary.", "examples": ["15987691"]}}, "description": "Latest version information."}, "content_rating": {"type": ["string", "null"], "description": "Content safety rating.", "examples": ["12+"]}, "content_rating_details": {"type": ["string", "null"], "description": "Content safety rating details.", "examples": ["Infrequent/Mild Guns or Other Weapons , Age Assurance , Infrequent/Mild Alcohol, Tobacco, or Drug Use or References , Advertising , Messaging and Chat , Advisory.YES.SOCIAL_MEDIA , Parental Controls..."]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /appstore/sdks.", "schema": {"type": "string"}, "example": "flurry"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>rating_count</code>, <code>upload_date</code>, <code>id</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "rating_count", "upload_date", "id"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Ignored for rank and release_date (ascending), and rating_count and configs_count (descending). Applies to other supported sort fields.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/appstore/sdks/flurry/uninstalls?page_size=10", "summary": "Top 10 apps that have uninstalled the Flurry SDK."}, {"url": "/appstore/sdks/oauth/uninstalls?page_size=10&sort_field=rating_count", "summary": "Top 10 apps by number of ratings that have uninstalled the OAuth SDK."}]}}, "/appstore/sdks/{sdk_slug}/genres": {"get": {"tags": ["iOS SDKs"], "summary": "Genres", "description": "Get aggregate genre data for a given SDK's apps.\n\nApp counts grouped by App Store genre (app category).\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks-sdk_slug-genres", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"genre": {"type": ["string", "null"], "description": "Genre display name.", "examples": ["Action"]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [7622]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [6304]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [1318]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /appstore/sdks.", "schema": {"type": "string"}, "example": "inmobi"}], "x-mixrank-examples": [{"url": "/appstore/sdks/inmobi/genres", "summary": "Get genre stats for apps that have installed InMobi."}, {"url": "/appstore/sdks/flurry/genres", "summary": "Get genre stats for apps that have installed Flurry."}]}}, "/appstore/sdks/{sdk_slug}/versions": {"get": {"tags": ["iOS SDKs"], "summary": "Versions", "description": "Releases of an SDK\n\nCocoaPods release metadata, including pod variants distinguished by name. Unpaginated; ordered by name, then descending numeric version.\n\nRequired permissions for your API key's user: `appstore.sdks`.", "operationId": "get-appstore-sdks-sdk_slug-versions", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "The unique ID of this entity", "examples": [913892]}, "version": {"type": ["string", "null"], "description": "The version number of the release", "examples": ["11.5.0"]}, "name": {"type": ["string", "null"], "description": "The name of the SDK in this version", "examples": ["InMobiSDK"]}, "summary": {"type": ["string", "null"], "description": "Summary", "examples": ["InMobi iOS SDK"]}, "description": {"type": ["string", "null"], "description": "Detailed description beyond what is in the summary", "examples": ["This is the InMobi iOS SDK 11.5.0. Please proceed to http://www.inmobi.com/sdk for more information."]}, "homepage": {"type": ["string", "null"], "description": "Homepage link for this SDK", "examples": ["http://www.inmobi.com/sdk"]}, "documentation_url": {"type": ["string", "null"], "description": "Link to SDK documentation", "examples": [null]}, "social_media_url": {"type": ["string", "null"], "description": "Link to the social media page for this SDK", "examples": [null]}, "source": {"type": ["object", "null"], "description": "A mapping of details about the source of this SDK, such as the git repo and tag.", "examples": [{"http": "https://dl.inmobi.com/inmobi-sdk/IM/InMobi-iOS-SDK-11.5.0.zip"}]}, "platform": {"type": ["array", "null"], "items": {"type": "string"}, "description": "The platform on which this SDK is supported", "examples": [null]}, "ios_deployment_target": {"type": ["string", "null"], "description": "The minimum deployment targets of the supported platform", "examples": [null]}, "authors": {"type": ["object", "null"], "description": "A mapping of details about the SDK authors", "examples": [{"InMobi": "sdk-dev-support@inmobi.com"}]}, "license": {"type": ["object", "null"], "description": "A mapping of details about the SDK license", "examples": [{"type": "Custom"}]}, "screenshots": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of screenshots listed by this SDK", "examples": [null]}, "other_data": {"type": ["object", "null"], "description": "A mapping of miscellaneous data about this SDK", "examples": [{"platforms": "{\"ios\": \"12.0\"}", "swift_version": "\"5.0\"", "swift_versions": "\"5.0\""}]}, "xcconfig": {"type": ["object", "null"], "description": "A mapping of xcconfig entries", "examples": [{"OTHER_LDFLAGS": "-ObjC"}]}, "source_files": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns for the included source files", "examples": [null]}, "public_header_files": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns for public header files", "examples": [null]}, "preserve_paths": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns specified preserve_path which should not be removed after being downloaded", "examples": [["InMobiSDK.xcframework"]]}, "exclude_files": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns in exclude_files", "examples": [null]}, "vendored_libraries": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns for vendored libraries", "examples": [null]}, "vendored_frameworks": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns for vendored frameworks that come shipped with the SDK", "examples": [["InMobiSDK.xcframework"]]}, "resources": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns for included resources", "examples": [null]}, "libraries": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of dependent system libraries that are linked against", "examples": [["sqlite3.0"]]}, "frameworks": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of dependent system frameworks that are linked against", "examples": [["WebKit"]]}, "weak_frameworks": {"type": ["array", "null"], "items": {"type": "string"}, "description": "A list of frameworks that the SDK target weakly links against.", "examples": [null]}, "private_header_files": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of file-path patterns for private header files", "examples": [null]}, "requires_arc": {"type": ["boolean", "null"], "description": "Whether this SDK requires ARC (Automatic Reference Counting)", "examples": [null]}, "default_subspec": {"type": ["string", "null"], "description": "The specified list of subspecs names to indicate preferred dependencies", "examples": [null]}, "dependencies": {"type": ["array", "null"], "items": {"type": "string"}, "description": "List of dependencies", "examples": [null]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /appstore/sdks.", "schema": {"type": "string"}, "example": "inmobi"}], "x-mixrank-examples": [{"url": "/appstore/sdks/inmobi/versions", "summary": "Get the version history for the InMobi SDK"}, {"url": "/appstore/sdks/flurry/versions", "summary": "Get the version history for the Flurry SDK"}]}}, "/playstore/apks/{package_name}/{version_id}": {"get": {"tags": ["Play Store Apps"], "summary": "APK", "description": "Get metadata and, when permitted, download links for an Android app version's files.\n\nYour API key's account needs playstore.apps access for metadata and playstore.apks for download links; without the latter, download_link is null. Missing files and link-generation failures return HTTP 200 with a top-level error.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apks-package_name-version_id", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"properties": {"package_name": {"type": ["string", "null"], "description": "Package name", "examples": ["com.microsoft.bing"]}, "version_id": {"type": "string", "description": "App version code echoed as the path string.", "examples": ["421106038"]}, "error": {"type": ["string", "null"], "description": "Error raised while trying to generate a signed URL.", "examples": [null]}, "version_string": {"type": ["string", "null"], "description": "Version of the APK.", "examples": ["29.5.421106038"]}, "major_version_number": {"type": ["integer", "null"], "description": "Major version number of the APK.", "examples": [0]}, "release_date": {"type": ["string", "null"], "description": "Official release date of the APK.", "examples": ["2024-11-05 00:00:00"]}, "changes_html": {"type": ["string", "null"], "description": "Release notes which accompanied this release of the APK.", "examples": ["This update includes bug fixes and performance improvements to enhance your experience."]}, "namespace_count": {"type": ["integer", "null"], "description": "Total number of namespaces in the APK.", "examples": [3363]}, "permission_count": {"type": ["integer", "null"], "description": "Total number of permissions declared in the APK.", "examples": [40]}, "splits": {"type": ["array", "null"], "items": {"type": "object", "properties": {"name": {"type": ["string", "null"], "description": "APK split name.", "examples": ["base"]}, "file_type": {"type": ["integer", "null"], "description": "Type of the APK split.", "examples": [null]}, "file_extension": {"type": ["string", "null"], "description": "file extension for the split (Non Exaustive examples: apk, obb)", "examples": ["apk"]}, "byte_size": {"type": ["integer", "null"], "description": "Size of the APK split in bytes.", "examples": [107910023]}, "downloaded_at": {"type": ["string", "null"], "description": "Timestamp serialized as text, including time when available.", "examples": ["2024-11-08 09:29:49.540009"]}, "last_modified": {"type": ["string", "null"], "description": "Timestamp serialized as text, including time when available.", "examples": ["1981-01-01 01:01:02"]}, "md5": {"type": ["string", "null"], "description": "MD5 hash of the APK split.", "examples": ["30e168477172bbd7e9a8cd9a79b4149c"]}, "sha256": {"type": ["string", "null"], "description": "SHA-256 hash of the APK split.", "examples": ["18f6ad77a3519d5d8f7cdac9c38222d5c75cc7faacb7b5ad62b5889100e677d2"]}, "sha1": {"type": ["string", "null"], "description": "SHA-1 hash of the APK split.", "examples": ["8c1585a70bc1c9601773d01b0eaecd98f29496e7"]}, "namespace_count": {"type": ["integer", "null"], "description": "Total number of namespaces in the APK.", "examples": [3363]}, "permission_count": {"type": ["integer", "null"], "description": "Total number of permissions declared in the APK.", "examples": [42]}, "download_link": {"type": ["string", "null"], "description": "Signed APK split URL with a requested 10-day expiry; null without download access.", "examples": ["https://play_store_apks.s3.amazonaws.com/md5/30e168477172bbd7e9a8cd9a79b4149c.apk?X-Amz-Signature=..."]}}}, "description": "Files for this version, including APK packages and OBB expansion files."}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}, "400": {"description": "Invalid version code or request parameters.", "content": {"application/json": {"schema": {"anyOf": [{"type": "object", "properties": {"package_name": {"type": "string"}, "version_id": {"type": "string"}, "error": {"type": "string"}}}, {"type": "object", "properties": {"errors": {"type": "object"}}}]}, "examples": {"invalid_version_code": {"summary": "Invalid version code", "value": {"package_name": "com.microsoft.bing", "version_id": "latest", "error": "Invalid version_id, expected integer. Please see playstore/apps/com.microsoft.bing/versions for a list of available version ids."}}}}}}}, "parameters": [{"name": "package_name", "in": "path", "required": true, "description": "Android package name from pname in /playstore/apps.", "schema": {"type": "string", "example": "com.microsoft.bing"}}, {"name": "version_id", "in": "path", "required": true, "description": "Android integer version code from the id field of /playstore/apps/{pname}/versions for this package; not version_string.", "schema": {"type": "string", "pattern": "^[0-9]+$", "example": "421106038"}}], "x-mixrank-examples": [{"url": "/playstore/apks/com.microsoft.bing/421106038", "summary": "Get files for com.microsoft.bing version code 421106038, with download links if permitted."}]}}, "/playstore/apps": {"get": {"tags": ["Play Store Apps"], "summary": "Directory", "description": "Directory of Google Play (Android) apps.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"pname": {"type": ["string", "null"], "description": "The package name for this app.", "examples": ["com.king.candycrushsaga"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Candy Crush Saga"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [4]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.93]}, "developer_id": {"type": ["integer", "null"], "description": "Internal numeric developer ID; use in the developer apps endpoint.", "examples": [142682]}, "developer_name": {"type": ["string", "null"], "description": "The name of the app publisher. Usually a company or individual's name.", "examples": ["King"]}, "developer_email": {"type": ["string", "null"], "description": "Email address of the developer, from the public profile.", "examples": ["candycrush.techhelp@king.com"]}, "developer_website": {"type": ["string", "null"], "description": "Developer's website.", "examples": ["https://candycrush.com"]}, "downloads": {"type": ["integer", "null"], "description": "Observed Google Play download bucket lower bound, not an exact count.", "examples": [1000000000]}, "removed": {"type": ["boolean", "null"], "description": "Indicates if this app has been removed from the playstore.", "examples": [false]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [2088653]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.63]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [38935972]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-01"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the earliest version of this app.", "examples": ["2012-11-15"]}, "small_icon_url": {"type": ["string", "null"], "description": "48x48 app icon (deprecated).", "examples": ["https://playstore-images.mixrank.com/images/5d17458f52068ffa65ed345b7f46c1ce"]}, "large_icon_url": {"type": ["string", "null"], "description": "512x512 app icon.", "examples": ["https://playstore-images.mixrank.com/images/81c200e1fd692ed95589c9935d39e0f4"]}, "category": {"type": ["string", "null"], "description": "The primary category of this app.", "examples": ["game_casual"]}, "categories": {"type": "array", "items": {"type": "string"}, "description": "Google Play category identifiers; empty when none are available.", "examples": [["game", "game_casual"]]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [87953194]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["King"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": [null]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"major_version_number": {"type": ["integer", "null"], "description": "Major version number.", "examples": [1]}, "version_code": {"type": ["integer", "null"], "description": "Internal unique version code.", "examples": [1063002]}, "version_string": {"type": ["string", "null"], "description": "User-visible version number.", "examples": ["1.337.0.2"]}}, "description": "Latest version information."}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 4, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>downloads</code>, <code>rating_count</code>, <code>pname</code>.", "schema": {"type": "string", "default": "downloads", "enum": ["downloads", "rating_count", "pname"]}, "examples": {"default": {"value": "downloads", "x-disabled": false}}}, {"name": "company.id", "in": "query", "required": false, "description": "Filter results by company ID.", "schema": {"type": "integer"}}, {"name": "search", "in": "query", "required": false, "description": "Term to search for", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/playstore/apps?page_size=4&sort_field=downloads", "summary": "Top 4 apps by downloads."}, {"url": "/playstore/apps?page_size=4&sort_field=rating_count", "summary": "Top 4 apps by number of ratings."}, {"url": "/playstore/apps?company.id=81976622", "summary": "Apps by OMGPOP"}, {"url": "/playstore/apps?search=messenger", "summary": "Search for apps matching \"messenger\"."}]}}, "/playstore/apps/{pname}": {"get": {"tags": ["Play Store Apps"], "summary": "Overview", "description": "Summary information about a Google Play app.\n\nStorefront metadata reflects MixRank observations and may lag the live store.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"pname": {"type": ["string", "null"], "description": "The package name for this app.", "examples": ["com.king.candycrushsaga"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Candy Crush Saga"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [4]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.93]}, "developer_id": {"type": ["integer", "null"], "description": "Internal numeric developer ID; use in the developer apps endpoint.", "examples": [142682]}, "developer_name": {"type": ["string", "null"], "description": "The name of the app publisher. Usually a company or individual's name.", "examples": ["King"]}, "developer_email": {"type": ["string", "null"], "description": "Email address of the developer, from the public profile.", "examples": ["candycrush.techhelp@king.com"]}, "developer_website": {"type": ["string", "null"], "description": "Developer's website.", "examples": ["https://candycrush.com"]}, "downloads": {"type": ["integer", "null"], "description": "Observed Google Play download bucket lower bound, not an exact count.", "examples": [1000000000]}, "removed": {"type": ["boolean", "null"], "description": "Indicates if this app has been removed from the playstore.", "examples": [false]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [2088653]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.63]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [38935972]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-01"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the earliest version of this app.", "examples": ["2012-11-15"]}, "small_icon_url": {"type": ["string", "null"], "description": "48x48 app icon (deprecated).", "examples": ["https://playstore-images.mixrank.com/images/5d17458f52068ffa65ed345b7f46c1ce"]}, "large_icon_url": {"type": ["string", "null"], "description": "512x512 app icon.", "examples": ["https://playstore-images.mixrank.com/images/81c200e1fd692ed95589c9935d39e0f4"]}, "category": {"type": ["string", "null"], "description": "The primary category of this app.", "examples": ["game_casual"]}, "categories": {"type": "array", "items": {"type": "string"}, "description": "Google Play category identifiers; empty when none are available.", "examples": [["game", "game_casual"]]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [87953194]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["King"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": [null]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"major_version_number": {"type": ["integer", "null"], "examples": [1]}, "version_code": {"type": ["integer", "null"], "examples": [1063002]}, "version_string": {"type": ["string", "null"], "examples": ["1.337.0.2"]}}, "description": "An object with several fields: major_version_number, version_code (internal unique version code), version_string (pretty version number)."}, "permissions": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Android permission-name strings from observed app metadata.", "examples": [["android.permission.ACCESS_ADSERVICES_AD_ID", "android.permission.ACCESS_ADSERVICES_ATTRIBUTION", "android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE"]]}, "ratings": {"type": ["object", "null"], "properties": {"1": {"type": ["integer", "null"], "examples": [1112478]}, "2": {"type": ["integer", "null"], "examples": [462549]}, "3": {"type": ["integer", "null"], "examples": [1636860]}, "4": {"type": ["integer", "null"], "examples": [5309279]}, "5": {"type": ["integer", "null"], "examples": [30414792]}}, "description": "Number of ratings per star."}, "recent_changes_html": {"type": ["string", "null"], "description": "The recent changes HTML.", "examples": ["We hope you\u2019re having fun playing Candy Crush Saga! We update the game every week so don&#39;t forget to download the latest version to get all the sweet new features and levels!<br><br>New to the..."]}, "description_html": {"type": ["string", "null"], "description": "The HTML description of this app.", "examples": ["Candy Crush Saga is a bright, feel-good matching escape packed with colorful surprises, satisfying combos, and sweet moments of progress. Dive into a world of candy-coated challenges where every move..."]}, "privacy_policy": {"type": ["string", "null"], "description": "App privacy policy.", "examples": ["https://king.com/privacyPolicy"]}, "has_iap": {"type": ["boolean", "null"], "description": "App has in-app purchases.", "examples": [true]}, "iap_description": {"type": ["string", "null"], "description": "In-app purchase description.", "examples": ["$0.99 - $149.99 per item"]}, "contains_ads": {"type": ["boolean", "null"], "description": "App contains ads.", "examples": [true]}, "editors_choice": {"type": ["boolean", "null"], "description": "App is marked as \"Editors' Choice\".", "examples": [true]}, "installation_size": {"type": ["integer", "null"], "description": "Size of the app in bytes.", "examples": [177005092]}, "content_rating": {"type": ["integer", "null"], "description": "The content safety rating (1-5). See: https://support.google.com/googleplay/answer/1075738?hl=en.", "examples": [1]}, "content_rating_details": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Content safety rating details.", "examples": [["Everyone"]]}, "prices": {"type": ["array", "null"], "items": {"type": "object", "properties": {"currency_code": {"type": "string", "examples": ["USD"]}, "amount": {"type": "number", "description": "Price in currency units, not integer micros.", "examples": [6.99]}}}, "description": "List of prices for this app in different currencies."}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching entity was found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.king.candycrushsaga"}], "x-mixrank-examples": [{"url": "/playstore/apps/com.king.candycrushsaga", "summary": "Summary information for Candy Crush."}, {"url": "/playstore/apps/tunein.player", "summary": "Summary information for TuneIn Radio."}, {"url": "/playstore/apps/com.whatsapp", "summary": "Summary information for WhatsApp."}]}}, "/playstore/apps/{pname}/images": {"get": {"tags": ["Play Store Apps"], "summary": "Images", "description": "Get image and video assets for an app. Includes icons and screenshots.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname-images", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [100]}, "results": {"type": "array", "items": {"type": "object", "properties": {"url": {"type": ["string", "null"], "description": "Image or video asset URL.", "examples": ["https://playstore-images.mixrank.com/images/4a034604b8e446cf5129f6dcc250d27c"]}, "type": {"type": ["object", "null"], "description": "Meta info about this asset.", "examples": [{"type": 2, "description": "banner"}], "properties": {"type": {"type": "integer"}, "description": {"type": ["string", "null"]}}}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.king.candycrushsaga"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 100, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/playstore/apps/com.king.candycrushsaga/images", "summary": "Requests a page of image and video assets for Candy Crush."}, {"url": "/playstore/apps/com.supercell.clashofclans/images", "summary": "Requests a page of image and video assets for Clash of Clans."}]}}, "/playstore/apps/{pname}/rankings": {"get": {"tags": ["Play Store Apps"], "summary": "Rankings Summary", "description": "Rankings for an app. Apps are ranked in \"lists\" which are made up of a container, and (optionally) a category.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname-rankings", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"container": {"type": ["string", "null"], "description": "List container.", "examples": ["apps_movers_shakers"]}, "country": {"type": ["string", "null"], "description": "List country.", "examples": ["US"]}, "category": {"type": ["string", "null"], "description": "The category this app is in.", "examples": ["game"]}, "current_rank": {"type": ["integer", "null"], "description": "Latest observed rank in this list; not a live store rank.", "examples": [631]}, "highest_rank": {"type": ["integer", "null"], "description": "The highest rank the app achieved in this list.", "examples": [4]}, "first_ranked": {"type": ["string", "null"], "format": "date", "description": "The date this app first ranked in this list.", "examples": ["2016-02-23"]}, "last_ranked": {"type": ["string", "null"], "format": "date", "description": "The date this app last ranked in this list.", "examples": ["2021-11-28"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.glu.deerhunt2"}, {"name": "country", "in": "query", "required": false, "description": "Two letters country code (ISO 3166-1 alpha-2)", "schema": {"type": "string", "default": "US"}}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>current_rank</code>, <code>highest_rank</code>.", "schema": {"type": "string", "default": "current_rank", "enum": ["current_rank", "highest_rank"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/apps/com.glu.deerhunt2/rankings", "summary": "Rankings for Deer Hunter 2014."}, {"url": "/playstore/apps/com.wolfram.android.alpha/rankings", "summary": "Rankings for WolframAlpha."}]}}, "/playstore/apps/{pname}/rankings-history": {"get": {"tags": ["Play Store Apps"], "summary": "Rankings History", "description": "Ranking history for an app in a given ranking list.\n\nObservations are ordered newest first.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname-rankings-history", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"country": {"type": ["string", "null"], "description": "List country.", "examples": ["US"]}, "ranking": {"type": ["integer", "null"], "description": "The current rank of this app at this time.", "examples": [4]}, "date": {"type": ["string", "null"], "description": "When this ranking list was generated by Google (UTC).", "examples": ["2019-08-29 15:16:55.413690"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"before": "Invalid datetime: 'abc'. Expected format: YYYY-MM-DD."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"missing_parameter": {"summary": "Missing parameter", "value": {"errors": {"container": "Parameter is required."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.netflix.mediaclient"}, {"name": "country", "in": "query", "required": false, "description": "Two letters country code (ISO 3166-1 alpha-2)", "schema": {"type": "string", "default": "US"}}, {"name": "container", "in": "query", "required": true, "description": "Chart type identifier from /playstore/rankings.", "schema": {"type": "string"}, "examples": {"default": {"value": "apps_topgrossing", "x-disabled": false}}}, {"name": "category", "in": "query", "required": false, "description": "Category from /playstore/rankings. Omit for the all-category list.", "schema": {"type": "string"}}, {"name": "before", "in": "query", "required": false, "description": "Include observations on or before this UTC date (inclusive).", "schema": {"type": "string", "format": "date"}}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/playstore/apps/com.netflix.mediaclient/rankings-history?container=apps_topgrossing", "summary": "Rankings for Netflix in Top Grossing."}, {"url": "/playstore/apps/com.netflix.mediaclient/rankings-history?container=apps_topgrossing&before=2017-01-01", "summary": "Rankings for Netflix in Top Grossing on or before January 1, 2017."}, {"url": "/playstore/apps/com.amazon.mShop.android.shopping/rankings-history?container=apps_topgrossing&country=DE", "summary": "Rankings for Amazon in Top Grossing for Germany."}]}}, "/playstore/apps/{pname}/sdks": {"get": {"tags": ["Play Store Apps"], "summary": "SDKs", "description": "SDKs installed in a given app.\n\nIncludes historical detections. Current presence is relative to the latest analyzed binary/version, which can differ from the latest store release.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname-sdks", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"name": {"type": ["string", "null"], "description": "Name of the SDK.", "examples": ["Direct Tap"]}, "slug": {"type": ["string", "null"], "description": "ID of the SDK.", "examples": ["direct-tap"]}, "upload_date_min": {"type": ["string", "null"], "format": "date", "description": "The upload date of the oldest version of the app with this SDK installed.", "examples": ["2013-12-13"]}, "upload_date_max": {"type": ["string", "null"], "format": "date", "description": "The upload date of the newest version of the app with this SDK installed.", "examples": ["2013-12-13"]}, "version_code_min": {"type": ["integer", "null"], "description": "The oldest version of the app we've observed with this SDK.", "examples": [43]}, "version_code_max": {"type": ["integer", "null"], "description": "The newest version of the app we've observed with this SDK.", "examples": [43]}, "currently_installed": {"type": ["boolean", "null"], "description": "Detected in the latest analyzed binary/version.", "examples": [true]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.apostek.apps.pocketbingo"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 500}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>version_code_min</code>, <code>version_code_max</code>, <code>slug</code>.", "schema": {"type": "string", "default": "version_code_min", "enum": ["version_code_min", "version_code_max", "slug"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/apps/com.apostek.apps.pocketbingo/sdks?page_size=10", "summary": "SDKs installed in Pocket Bingo."}, {"url": "/playstore/apps/com.shazam.android/sdks?page_size=10", "summary": "SDKs installed in Shazam."}]}}, "/playstore/apps/{pname}/namespaces": {"get": {"tags": ["Play Store Apps"], "summary": "Namespaces", "description": "Namespaces present in a given app.\n\nIncludes historical detections. Current presence is relative to the latest analyzed binary/version, which can differ from the latest store release.\n\nNamespaces are Java package names found in app code; SDK identifications are available separately at /playstore/apps/{pname}/sdks.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname-namespaces", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"namespace": {"type": ["string", "null"], "description": "The namespace name.", "examples": ["InS"]}, "upload_date_min": {"type": ["string", "null"], "format": "date", "description": "The upload date of the oldest version of the app with this namespace present.", "examples": ["2026-10-02"]}, "upload_date_max": {"type": ["string", "null"], "format": "date", "description": "The upload date of the newest version of the app with this namespace present.", "examples": ["2026-10-02"]}, "version_code_min": {"type": ["integer", "null"], "description": "The oldest version of the app we've observed with this namespace present.", "examples": [993830905]}, "version_code_max": {"type": ["integer", "null"], "description": "The newest version of the app we've observed with this namespace present.", "examples": [993830905]}, "currently_installed": {"type": ["boolean", "null"], "description": "Detected in the latest analyzed binary/version.", "examples": [true]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.picsart.studio"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>version_code_min</code>, <code>version_code_max</code>, <code>namespace</code>.", "schema": {"type": "string", "default": "version_code_min", "enum": ["version_code_min", "version_code_max", "namespace"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/apps/com.picsart.studio/namespaces", "summary": "Get the namespaces in PicsArt."}, {"url": "/playstore/apps/com.instagram.android/namespaces", "summary": "Get the namespaces in Instagram."}]}}, "/playstore/apps/{pname}/versions": {"get": {"tags": ["Play Store Apps"], "summary": "Versions", "description": "Releases of an app.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-apps-pname-versions", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "App version code; use as version_id in the APK download endpoint.", "examples": [1289200]}, "asset_size": {"type": ["integer", "null"], "description": "Size of APK in bytes.", "examples": [243677321]}, "version_string": {"type": ["string", "null"], "description": "Human-friendly version number.", "examples": ["28.11.0.0"]}, "downloaded": {"type": ["boolean", "null"], "description": "Whether MixRank has downloaded this app binary for analysis.", "examples": [true]}, "is_latest": {"type": ["boolean", "null"], "description": "Indicates if this is the latest version available on Play Store (null if unknown).", "examples": [true]}, "latest_since": {"type": ["string", "null"], "description": "Last checked timestamp if this version was latest; null otherwise.", "examples": ["2026-10-10 10:01:21.740344"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "Date this version was released to the store", "examples": ["2026-09-29"]}, "release_notes": {"type": ["string", "null"], "description": "Developer's releases notes.", "examples": ["The Rakuten Viber experience just got better!<br> <br>Update now and feel the difference.<br>Like what you see? Rate us and submit a review today \ud83d\ude42"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.viber.voip"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>version_code</code>.", "schema": {"type": "string", "default": "version_code", "enum": ["version_code"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/apps/com.viber.voip/versions?page_size=10", "summary": "Versions of Viber."}]}}, "/playstore/apps/{pname}/versions/{version_code}/apks": {"get": {"tags": ["Play Store Apps"], "summary": "APKs", "description": "File metadata and storage locations for one Android app version, including APK splits.\n\nRequired permissions for your API key's user: `playstore.apks`.", "operationId": "get-playstore-apps-pname-versions-version_code-apks", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "Unique ID.", "examples": [17367518]}, "name": {"type": ["string", "null"], "description": "APK split filename.", "examples": ["base"]}, "file_extension": {"type": ["string", "null"], "description": "APK split file extension.", "examples": ["apk"]}, "byte_size": {"type": ["integer", "null"], "description": "Size of APK split in bytes.", "examples": [56377846]}, "download_at": {"type": ["string", "null"], "format": "date", "description": "Date this APK split was downloaded.", "examples": ["2020-11-06"]}, "md5": {"type": ["string", "null"], "description": "MD5 hash of file.", "examples": ["103b496cb455c9faaa29bf5f93812d74"]}, "sha1": {"type": ["string", "null"], "description": "SHA1 hash of file.", "examples": ["2c0754f18a40d26b3af0ff9bf07462efd27dc528"]}, "sha256": {"type": ["string", "null"], "description": "SHA256 hash of file.", "examples": ["629a3446813bce97329c1c36d0db8700598ffa52658567294ba5d198438d22fd"]}, "namespace_count": {"type": ["integer", "null"], "description": "Java namespace count.", "examples": [2002]}, "permission_count": {"type": ["integer", "null"], "description": "Android permission count.", "examples": [70]}, "s3uri": {"type": ["string", "null"], "description": "S3 storage URI, not a signed HTTP download URL. Use /playstore/apks/{package_name}/{version_id} for signed split links.", "examples": ["s3://play_store_apks/md5/103b496cb455c9faaa29bf5f93812d74.apk"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"version_code": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "pname", "in": "path", "required": true, "description": "Android package name: pname from /playstore/apps or id in the Google Play URL.", "schema": {"type": "string"}, "example": "com.viber.voip"}, {"name": "version_code", "in": "path", "required": true, "description": "Android integer version code from the id field of /playstore/apps/{pname}/versions for this package; not version_string.", "schema": {"type": "integer"}, "example": 640581}], "x-mixrank-examples": [{"url": "/playstore/apps/com.viber.voip/versions/640581/apks", "summary": "Viber version 640581."}]}}, "/playstore/developers/{developer_id}/apps": {"get": {"tags": ["Play Store Developers"], "summary": "Apps", "description": "Apps published by a developer\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-developers-developer_id-apps", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"pname": {"type": ["string", "null"], "description": "The package name for this app.", "examples": ["com.king.candycrushsaga"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Candy Crush Saga"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [4]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.93]}, "developer_id": {"type": ["integer", "null"], "description": "Internal numeric developer ID; use in the developer apps endpoint.", "examples": [142682]}, "developer_name": {"type": ["string", "null"], "description": "The name of the app publisher. Usually a company or individual's name.", "examples": ["King"]}, "developer_email": {"type": ["string", "null"], "description": "Email address of the developer, from the public profile.", "examples": ["candycrush.techhelp@king.com"]}, "developer_website": {"type": ["string", "null"], "description": "Developer's website.", "examples": ["https://candycrush.com"]}, "downloads": {"type": ["integer", "null"], "description": "Observed Google Play download bucket lower bound, not an exact count.", "examples": [1000000000]}, "removed": {"type": ["boolean", "null"], "description": "Indicates if this app has been removed from the playstore.", "examples": [false]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [2088653]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.63]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [38935972]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-01"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the earliest version of this app.", "examples": ["2012-11-15"]}, "small_icon_url": {"type": ["string", "null"], "description": "48x48 app icon (deprecated).", "examples": ["https://playstore-images.mixrank.com/images/5d17458f52068ffa65ed345b7f46c1ce"]}, "large_icon_url": {"type": ["string", "null"], "description": "512x512 app icon.", "examples": ["https://playstore-images.mixrank.com/images/81c200e1fd692ed95589c9935d39e0f4"]}, "category": {"type": ["string", "null"], "description": "The primary category of this app.", "examples": ["game_casual"]}, "categories": {"type": "array", "items": {"type": "string"}, "description": "Google Play category identifiers; empty when none are available.", "examples": [["game", "game_casual"]]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [87953194]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["King"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": [null]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"major_version_number": {"type": ["integer", "null"], "description": "Major version number.", "examples": [1]}, "version_code": {"type": ["integer", "null"], "description": "Internal unique version code.", "examples": [1063002]}, "version_string": {"type": ["string", "null"], "description": "User-visible version number.", "examples": ["1.337.0.2"]}}, "description": "Latest version information."}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "400": {"description": "Missing or invalid required parameter.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_parameter": {"summary": "Invalid parameter", "value": {"errors": {"developer_id": "Invalid value 'abc'."}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "developer_id", "in": "path", "required": true, "description": "Internal numeric Google Play developer ID from the developer_id field in app responses.", "schema": {"type": "integer"}, "example": 358123}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>downloads</code>, <code>rating_count</code>, <code>pname</code>.", "schema": {"type": "string", "default": "downloads", "enum": ["downloads", "rating_count", "pname"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/developers/358123/apps", "summary": "Get the apps developed by Rovio Mobile Ltd."}]}}, "/playstore/rankings": {"get": {"tags": ["Play Store Rankings"], "summary": "Lists", "description": "Google Play chart types (container) and app categories (category). Availability varies by country. A null category denotes an all-category chart.\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-rankings", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"container": {"type": ["string", "null"], "description": "The name of this container.", "examples": ["apps_topgrossing"]}, "category": {"type": ["string", "null"], "description": "The category within this container.", "examples": ["game_casual"]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}}, "x-mixrank-examples": [{"url": "/playstore/rankings", "summary": "Get all ranking lists."}]}}, "/playstore/rankings/{container}/{category}/{country}": {"get": {"tags": ["Play Store Rankings"], "summary": "Rankings", "description": "Get app rankings by list. A list is determined by container, category and country.\n\nReturns the latest snapshot strictly before the cutoff, searching the preceding 90 days (relative to now when before is omitted). The total is unavailable (null).\n\nRequired permissions for your API key's user: `playstore.apps`.", "operationId": "get-playstore-rankings-container-category-country", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"pname": {"type": ["string", "null"], "description": "The package name for this app.", "examples": ["com.king.candycrushsaga"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Candy Crush Saga"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [4]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.93]}, "developer_id": {"type": ["integer", "null"], "description": "Internal numeric developer ID; use in the developer apps endpoint.", "examples": [142682]}, "developer_name": {"type": ["string", "null"], "description": "The name of the app publisher. Usually a company or individual's name.", "examples": ["King"]}, "developer_email": {"type": ["string", "null"], "description": "Email address of the developer, from the public profile.", "examples": ["candycrush.techhelp@king.com"]}, "developer_website": {"type": ["string", "null"], "description": "Developer's website.", "examples": ["https://candycrush.com"]}, "downloads": {"type": ["integer", "null"], "description": "Observed Google Play download bucket lower bound, not an exact count.", "examples": [1000000000]}, "removed": {"type": ["boolean", "null"], "description": "Indicates if this app has been removed from the playstore.", "examples": [false]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [2088653]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.63]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [38935972]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-01"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the earliest version of this app.", "examples": ["2012-11-15"]}, "small_icon_url": {"type": ["string", "null"], "description": "48x48 app icon (deprecated).", "examples": ["https://playstore-images.mixrank.com/images/5d17458f52068ffa65ed345b7f46c1ce"]}, "large_icon_url": {"type": ["string", "null"], "description": "512x512 app icon.", "examples": ["https://playstore-images.mixrank.com/images/81c200e1fd692ed95589c9935d39e0f4"]}, "category": {"type": ["string", "null"], "description": "The primary category of this app.", "examples": ["game_casual"]}, "categories": {"type": "array", "items": {"type": "string"}, "description": "Google Play category identifiers; empty when none are available.", "examples": [["game", "game_casual"]]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [87953194]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["King"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": [null]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"major_version_number": {"type": ["integer", "null"], "description": "Major version number.", "examples": [1]}, "version_code": {"type": ["integer", "null"], "description": "Internal unique version code.", "examples": [1063002]}, "version_string": {"type": ["string", "null"], "description": "User-visible version number.", "examples": ["1.337.0.2"]}}, "description": "Latest version information."}, "ranking": {"type": ["integer", "null"], "description": "Rank within the list.", "examples": [1]}, "ranking_date": {"type": ["string", "null"], "description": "When this ranking list was generated by Google (UTC).", "examples": ["2026-10-12 14:45:55.375391"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>ranking</code>.", "schema": {"type": "string", "default": "ranking", "enum": ["ranking"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "asc", "enum": ["asc", "desc"]}}, {"name": "container", "in": "path", "required": true, "description": "Chart type identifier from /playstore/rankings.", "schema": {"type": "string"}, "example": "apps_topgrossing"}, {"name": "category", "in": "path", "required": true, "description": "Category identifier, or the literal path segment null for all categories.", "schema": {"type": "string"}, "example": "game_casual"}, {"name": "country", "in": "path", "required": true, "description": "2-letter country code, upper case (ISO 3166).", "schema": {"type": "string"}, "example": "US"}, {"name": "before", "in": "query", "required": false, "description": "Return ranking list as it appeared before given date (in UTC).", "schema": {"type": "string", "format": "date"}}], "x-mixrank-examples": [{"url": "/playstore/rankings/apps_topgrossing/game_casual/US", "summary": "Rankings of top grossing casual games in US."}, {"url": "/playstore/rankings/apps_topselling_free/null/US", "summary": "Rankings of top free apps in the US."}, {"url": "/playstore/rankings/apps_topselling_paid/photography/FR?before=2021-12-01", "summary": "Rankings of top selling paid photography apps in France before December 1, 2021."}, {"url": "/playstore/rankings/apps_topgrossing/game_arcade/TW", "summary": "Rankings of top grossing arcade games in Taiwan."}]}}, "/playstore/sdks": {"get": {"tags": ["Play Store SDKs"], "summary": "Directory", "description": "List of identified SDKs.\n\nInstallation counts measure apps with SDK detections, not device installations.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [1]}, "score": {"type": ["number", "null"], "description": "Score of the SDK", "examples": [0.78]}, "name": {"type": ["string", "null"], "description": "Name of the SDK.", "examples": ["Java Platform, Enterprise Edition 6"]}, "id": {"type": ["integer", "null"], "description": "Unique integer ID of this SDK", "examples": [933]}, "slug": {"type": ["string", "null"], "description": "Identifies this SDK.", "examples": ["java-platform-enterprise-edition-6"]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [3280138]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [1669682]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [1610456]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "company.id", "in": "query", "required": false, "description": "Filter results by company ID.", "schema": {"type": "integer"}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>total_installs</code>, <code>current_installs</code>, <code>uninstalls</code>, <code>slug</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "total_installs", "current_installs", "uninstalls", "slug"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Ignored: rank sorts ascending; total_installs, current_installs and uninstalls sort descending.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/sdks?page_size=10", "summary": "Top 10 SDKs by rank."}, {"url": "/playstore/sdks?sort_field=total_installs&page_size=4", "summary": "Top 4 SDKs by all-time installs."}, {"url": "/playstore/sdks?sort_field=uninstalls&page_size=4", "summary": "Top 4 SDKs by most uninstalls."}]}}, "/playstore/sdks/{sdk_slug}": {"get": {"tags": ["Play Store SDKs"], "summary": "Overview", "description": "Get summary information about an SDK.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks-sdk_slug", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"name": {"type": ["string", "null"], "description": "Name of this SDK.", "examples": ["Square"]}, "slug": {"type": ["string", "null"], "description": "ID of this SDK.", "examples": ["square"]}, "description": {"type": ["string", "null"], "description": "Description of this SDK.", "examples": ["Square helps millions of sellers run their business-from secure credit card processing to point of sale solutions. Get paid faster with Square."]}, "tags": {"type": ["array", "null"], "items": {"type": "string"}, "description": "Tags indicating types of SDK.", "examples": [["payments"]]}, "url": {"type": ["string", "null"], "description": "Usually points to the company or documentation page for this SDK.", "examples": ["https://developer.squareup.com/docs/sdks"]}, "logo_url": {"type": ["string", "null"], "description": "Logo for the SDK/company.", "examples": ["https://s3.amazonaws.com/mr-sdk-logos/logos/7b97daf812ba2a2e70bdbb084a0d87d8"]}, "publisher_count": {"type": ["integer", "null"], "description": "Number of app publishers whose apps have had this SDK detected.", "examples": [668820]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [2077336]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [452160]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [1625176]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81953700]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Square"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["square-"]}}, "description": "Information about the company associated with this object"}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching entity was found.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /playstore/sdks.", "schema": {"type": "string"}, "example": "square"}], "x-mixrank-examples": [{"url": "/playstore/sdks/square", "summary": "Get information about the Square SDK."}, {"url": "/playstore/sdks/startapp", "summary": "Get information about the StartApp SDK."}]}}, "/playstore/sdks/{sdk_slug}/installs": {"get": {"tags": ["Play Store SDKs"], "summary": "Installs", "description": "Get apps that have this SDK installed.\n\nApps with the SDK currently detected according to the latest analyzed binary.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks-sdk_slug-installs", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"pname": {"type": ["string", "null"], "description": "The package name for this app.", "examples": ["com.king.candycrushsaga"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Candy Crush Saga"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [4]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.93]}, "developer_id": {"type": ["integer", "null"], "description": "Internal numeric developer ID; use in the developer apps endpoint.", "examples": [142682]}, "developer_name": {"type": ["string", "null"], "description": "The name of the app publisher. Usually a company or individual's name.", "examples": ["King"]}, "developer_email": {"type": ["string", "null"], "description": "Email address of the developer, from the public profile.", "examples": ["candycrush.techhelp@king.com"]}, "developer_website": {"type": ["string", "null"], "description": "Developer's website.", "examples": ["https://candycrush.com"]}, "downloads": {"type": ["integer", "null"], "description": "Observed Google Play download bucket lower bound, not an exact count.", "examples": [1000000000]}, "removed": {"type": ["boolean", "null"], "description": "Indicates if this app has been removed from the playstore.", "examples": [false]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [2088653]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.63]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [38935972]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-01"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the earliest version of this app.", "examples": ["2012-11-15"]}, "small_icon_url": {"type": ["string", "null"], "description": "48x48 app icon (deprecated).", "examples": ["https://playstore-images.mixrank.com/images/5d17458f52068ffa65ed345b7f46c1ce"]}, "large_icon_url": {"type": ["string", "null"], "description": "512x512 app icon.", "examples": ["https://playstore-images.mixrank.com/images/81c200e1fd692ed95589c9935d39e0f4"]}, "category": {"type": ["string", "null"], "description": "The primary category of this app.", "examples": ["game_casual"]}, "categories": {"type": "array", "items": {"type": "string"}, "description": "Google Play category identifiers; empty when none are available.", "examples": [["game", "game_casual"]]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [87953194]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["King"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": [null]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"major_version_number": {"type": ["integer", "null"], "description": "Major version number.", "examples": [1]}, "version_code": {"type": ["integer", "null"], "description": "Internal unique version code.", "examples": [1063002]}, "version_string": {"type": ["string", "null"], "description": "User-visible version number.", "examples": ["1.337.0.2"]}}, "description": "Latest version information."}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /playstore/sdks.", "schema": {"type": "string"}, "example": "paypal"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>downloads</code>, <code>rating_count</code>, <code>pname</code>.", "schema": {"type": "string", "default": "downloads", "enum": ["downloads", "rating_count", "pname"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/sdks/paypal/installs?page_size=10", "summary": "Top 10 apps that have installed the PayPal SDK."}, {"url": "/playstore/sdks/google-analytics/installs?page_size=10", "summary": "Top 10 apps that have installed the Google Analytics SDK."}]}}, "/playstore/sdks/{sdk_slug}/install-trend": {"get": {"tags": ["Play Store SDKs"], "summary": "Install trend", "description": "Get historical count of apps that have this SDK installed.\n\nDaily counts of observed SDK use in apps, newest first; not device installs.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks-sdk_slug-install-trend", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"total_installs": {"type": ["integer", "null"], "description": "Apps in which this SDK had been detected by this date.", "examples": [6320968]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK present as of this date.", "examples": [6179044]}, "uninstalls": {"type": ["integer", "null"], "description": "Apps with this SDK detected previously but removed as of this date.", "examples": [141924]}, "date": {"type": ["string", "null"], "format": "date", "description": "Date this count was taken.", "examples": ["2026-10-06"]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /playstore/sdks.", "schema": {"type": "string"}, "example": "firebase"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/playstore/sdks/firebase/install-trend", "summary": "Historical count of apps that have installed the Firebase SDK."}]}}, "/playstore/sdks/{sdk_slug}/uninstalls": {"get": {"tags": ["Play Store SDKs"], "summary": "Uninstalls", "description": "Get apps that have uninstalled this SDK.\n\nApps with observed SDK removals; these are not user app-uninstallation events.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks-sdk_slug-uninstalls", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"pname": {"type": ["string", "null"], "description": "The package name for this app.", "examples": ["com.king.candycrushsaga"]}, "title": {"type": ["string", "null"], "description": "The title of the app.", "examples": ["Candy Crush Saga"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [4]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.93]}, "developer_id": {"type": ["integer", "null"], "description": "Internal numeric developer ID; use in the developer apps endpoint.", "examples": [142682]}, "developer_name": {"type": ["string", "null"], "description": "The name of the app publisher. Usually a company or individual's name.", "examples": ["King"]}, "developer_email": {"type": ["string", "null"], "description": "Email address of the developer, from the public profile.", "examples": ["candycrush.techhelp@king.com"]}, "developer_website": {"type": ["string", "null"], "description": "Developer's website.", "examples": ["https://candycrush.com"]}, "downloads": {"type": ["integer", "null"], "description": "Observed Google Play download bucket lower bound, not an exact count.", "examples": [1000000000]}, "removed": {"type": ["boolean", "null"], "description": "Indicates if this app has been removed from the playstore.", "examples": [false]}, "review_count": {"type": ["integer", "null"], "description": "Number of reviews/comments for this app.", "examples": [2088653]}, "rating": {"type": ["number", "null"], "description": "The current rating for this app. (0-5)", "examples": [4.63]}, "rating_count": {"type": ["integer", "null"], "description": "Number of ratings for this app.", "examples": [38935972]}, "upload_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the latest version of this app.", "examples": ["2026-10-01"]}, "release_date": {"type": ["string", "null"], "format": "date", "description": "The upload date for the earliest version of this app.", "examples": ["2012-11-15"]}, "small_icon_url": {"type": ["string", "null"], "description": "48x48 app icon (deprecated).", "examples": ["https://playstore-images.mixrank.com/images/5d17458f52068ffa65ed345b7f46c1ce"]}, "large_icon_url": {"type": ["string", "null"], "description": "512x512 app icon.", "examples": ["https://playstore-images.mixrank.com/images/81c200e1fd692ed95589c9935d39e0f4"]}, "category": {"type": ["string", "null"], "description": "The primary category of this app.", "examples": ["game_casual"]}, "categories": {"type": "array", "items": {"type": "string"}, "description": "Google Play category identifiers; empty when none are available.", "examples": [["game", "game_casual"]]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [87953194]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["King"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": [null]}}, "description": "Information about the company associated with this object"}, "version": {"type": ["object", "null"], "properties": {"major_version_number": {"type": ["integer", "null"], "description": "Major version number.", "examples": [1]}, "version_code": {"type": ["integer", "null"], "description": "Internal unique version code.", "examples": [1063002]}, "version_string": {"type": ["string", "null"], "description": "User-visible version number.", "examples": ["1.337.0.2"]}}, "description": "Latest version information."}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /playstore/sdks.", "schema": {"type": "string"}, "example": "flurry"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>downloads</code>, <code>rating_count</code>, <code>pname</code>.", "schema": {"type": "string", "default": "downloads", "enum": ["downloads", "rating_count", "pname"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Sort the results in the order specified. Sortable directions: <code>asc</code>, <code>desc</code>.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/playstore/sdks/flurry/uninstalls?page_size=10", "summary": "Top 10 apps that have uninstalled the Flurry SDK."}, {"url": "/playstore/sdks/millennial-media/uninstalls?page_size=10&sort_field=rating_count", "summary": "Top 10 apps by number of ratings that have uninstalled Millennial Media."}]}}, "/playstore/sdks/{sdk_slug}/categories": {"get": {"tags": ["Play Store SDKs"], "summary": "Categories", "description": "Get aggregate category data for a given SDK's apps.\n\nApp counts grouped by Google Play category identifier, ordered by category.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks-sdk_slug-categories", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"category": {"type": ["string", "null"], "description": "The identifier for this category.", "examples": ["android_wear"]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [3]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [0]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [3]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /playstore/sdks.", "schema": {"type": "string"}, "example": "inmobi"}], "x-mixrank-examples": [{"url": "/playstore/sdks/inmobi/categories", "summary": "Get category stats for apps that have installed InMobi."}, {"url": "/playstore/sdks/flurry/categories", "summary": "Get category stats for apps that have installed Flurry."}]}}, "/playstore/sdks/{sdk_slug}/downloads": {"get": {"tags": ["Play Store SDKs"], "summary": "Downloads", "description": "Get aggregate download data for a given SDK's apps, broken out by download bucket.\n\nBuckets use app download lower bounds. Counts measure apps with SDK detections or removals, include zero-count buckets, and are ordered by ascending download bucket.\n\nRequired permissions for your API key's user: `playstore.sdks`.", "operationId": "get-playstore-sdks-sdk_slug-downloads", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": "null"}, "page_size": {"type": "null"}, "results": {"type": "array", "items": {"type": "object", "properties": {"downloads": {"type": ["integer", "null"], "description": "The lower bound for this download bucket.", "examples": [0]}, "total_installs": {"type": ["integer", "null"], "description": "Number of apps in which this SDK has been detected.", "examples": [15716]}, "current_installs": {"type": ["integer", "null"], "description": "Apps with this SDK detected in their latest analyzed binary.", "examples": [3885]}, "uninstalls": {"type": ["integer", "null"], "description": "Number of apps from which this SDK was observed removed.", "examples": [11831]}}}}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "sdk_slug", "in": "path", "required": true, "description": "SDK identifier from the slug field in /playstore/sdks.", "schema": {"type": "string"}, "example": "facebook"}], "x-mixrank-examples": [{"url": "/playstore/sdks/facebook/downloads", "summary": "Get download stats for apps that have installed the Facebook SDK."}, {"url": "/playstore/sdks/google-play-in-app-billing/downloads", "summary": "Get download stats for apps that have installed the In-app purchases SDK."}]}}, "/web/sites": {"get": {"tags": ["Websites"], "summary": "Directory", "description": "Directory of websites.\n\nResults sort by ascending rank or ID. When search or company filtering is applied, `total` is null.\n\nRequired permissions for your API key's user: `web.sites`.", "operationId": "get-web-sites", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"domain": {"type": ["string", "null"], "description": "The website domain name.", "examples": ["google.com"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [1]}, "alexa_rank": {"type": ["integer", "null"], "description": "Stored Alexa rank; this historical field is not a current ranking.", "examples": [1]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.98]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81760867]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Google"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["google"]}}, "description": "Information about the company associated with this object"}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>id</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "id"]}}, {"name": "company.id", "in": "query", "required": false, "description": "MixRank company ID from /companies or /companies/match.", "schema": {"type": "integer"}, "examples": {"default": {"value": 81765662, "x-disabled": false}}}, {"name": "search", "in": "query", "required": false, "description": "Term to search for", "schema": {"type": "string"}}], "x-mixrank-examples": [{"url": "/web/sites?company.id=81765662", "summary": "Websites associated with Barnes & Noble."}, {"url": "/web/sites?search=chocolate", "summary": "Search for websites matching \"chocolate\"."}]}}, "/web/sites/{domain}": {"get": {"tags": ["Websites"], "summary": "Overview", "description": "Retrieve MixRank metadata for one website domain, including its associated company when available. Use <a href=\"#tag/websites/GET/web/sites/{domain}/tags\">the website technologies endpoint</a> to see detected tools.\n\nRequired permissions for your API key's user: `web.sites`.", "operationId": "get-web-sites-domain", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"domain": {"type": ["string", "null"], "description": "The website domain name.", "examples": ["google.com"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [1]}, "alexa_rank": {"type": ["integer", "null"], "description": "Stored Alexa rank; this historical field is not a current ranking.", "examples": [1]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.98]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81760867]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Google"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["google"]}}, "description": "Information about the company associated with this object"}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching record or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "domain", "in": "path", "required": true, "description": "Root website domain, such as example.com; omit https://, paths, www. and subdomains.", "schema": {"type": "string"}, "example": "google.com"}], "x-mixrank-examples": [{"url": "/web/sites/google.com", "summary": "Summary information for google.com."}]}}, "/web/sites/{domain}/tags": {"get": {"tags": ["Websites"], "summary": "Tags", "description": "List technologies MixRank has observed on this website. `times_seen` counts observations, not traffic. Detection does not guarantee current installation.\n\nRequired permissions for your API key's user: `web.sites`.", "operationId": "get-web-sites-domain-tags", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "ID of the tag.", "examples": [8]}, "slug": {"type": ["string", "null"], "description": "Textual ID of the web tag.", "examples": ["google-analytics"]}, "name": {"type": ["string", "null"], "description": "Name of the tag.", "examples": ["Google Analytics"]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81760867]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Google"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["google"]}}, "description": "Information about the company associated with this object"}, "times_seen": {"type": ["integer", "null"], "description": "Times this tag has been observed on this site.", "examples": [1117315]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching record or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "domain", "in": "path", "required": true, "description": "Root website domain, such as example.com; omit https://, paths, www. and subdomains.", "schema": {"type": "string"}, "example": "toysrus.com"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}], "x-mixrank-examples": [{"url": "/web/sites/toysrus.com/tags", "summary": "Tags found on Toys R Us."}]}}, "/web/tags/{slug}": {"get": {"tags": ["Web Tags"], "summary": "Overview", "description": "Retrieve MixRank metadata for one web technology. site_count counts observed websites, not visitors.\n\nRequired permissions for your API key's user: `web.tags`.", "operationId": "get-web-tags-slug", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"type": "object", "properties": {"id": {"type": ["integer", "null"], "description": "ID of the tag.", "examples": [8]}, "slug": {"type": ["string", "null"], "description": "Textual ID of the web tag.", "examples": ["google-analytics"]}, "name": {"type": ["string", "null"], "description": "Name of the tag.", "examples": ["Google Analytics"]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81760867]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Google"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["google"]}}, "description": "Information about the company associated with this object"}, "description": {"type": ["string", "null"], "description": "Description of the tag.", "examples": ["Google Analytics is a free Web analytics service that provides statistics and basic analytical tools for search engine optimization (SEO) and marketing purposes."]}, "url": {"type": ["string", "null"], "description": "URL reference for more information.", "examples": ["https://www.google.com/analytics/#?modal_active=none"]}, "logo_url": {"type": ["string", "null"], "description": "Logo for this tag.", "examples": ["https://sdk-logos.mixrank.com/logos/5c4f02ecf24ca812a38d23631ceec872"]}, "site_count": {"type": ["integer", "null"], "description": "Number of websites found with this tag.", "examples": [19480095]}}}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching record or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No such object."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Web technology identifier from the slug field in /web/tags, such as adroll.", "schema": {"type": "string"}, "example": "google-analytics"}], "x-mixrank-examples": [{"url": "/web/tags/google-analytics", "summary": "Summary information for the Google Analytics tag."}, {"url": "/web/tags/adroll", "summary": "Summary information for the AdRoll tag."}]}}, "/web/tags": {"get": {"tags": ["Web Tags"], "summary": "Web Technology Directory", "description": "List software and services that MixRank identifies on websites, such as analytics and advertising tools.\n\nCounts describe observed websites and tag detections, not traffic.\n\nRequired permissions for your API key's user: `web.tags`.", "operationId": "get-web-tags", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"rank": {"type": ["integer", "null"], "description": "MixRank Rank", "examples": [1]}, "score": {"type": ["number", "null"], "description": "Score of the Web Tag", "examples": [0.86]}, "name": {"type": ["string", "null"], "description": "Name of the Web Tag.", "examples": ["Facebook Profile"]}, "id": {"type": ["integer", "null"], "description": "Unique integer ID of this Web Tag", "examples": [1039]}, "slug": {"type": ["string", "null"], "description": "Identifies this Web Tag.", "examples": ["facebook-profile"]}, "domain_count": {"type": ["integer", "null"], "description": "Number of websites found with this tag", "examples": [28850666]}, "times_seen": {"type": ["integer", "null"], "description": "Number of times this Web Tag was seen", "examples": [1804133294254]}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}}}}}, "404": {"description": "No matching object or results.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"no_match": {"summary": "No match", "value": {"errors": {"message": "No results."}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "Timeout"}}}}}}}}, "parameters": [{"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}, "examples": {"default": {"value": 10, "x-disabled": false}}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>domain_count</code>, <code>times_seen</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "domain_count", "times_seen"]}}, {"name": "sort_order", "in": "query", "required": false, "description": "Accepted for compatibility but ignored by this endpoint: rank is ascending, domain_count and times_seen are descending.", "schema": {"type": "string", "default": "desc", "enum": ["asc", "desc"]}}], "x-mixrank-examples": [{"url": "/web/tags?page_size=10", "summary": "Top 10 Web Tags by rank."}, {"url": "/web/tags?sort_field=domain_count&page_size=4", "summary": "Top 4 Web Tags by most number of websites with this tag"}, {"url": "/web/tags?sort_field=times_seen&page_size=4", "summary": "Top 4 Web Tags by most number of times seen"}]}}, "/web/tags/{slug}/sites": {"get": {"tags": ["Web Tags"], "summary": "Sites", "description": "Websites where MixRank has detected a given tag.\n\nIncludes historical detections. Results sort by ascending rank or ID.\n\nRequired permissions for your API key's user: `web.tags`.", "operationId": "get-web-tags-slug-sites", "responses": {"200": {"description": "Successful response.", "content": {"application/json": {"schema": {"anyOf": [{"title": "Results", "type": "object", "properties": {"total": {"type": ["integer", "null"], "examples": [1]}, "offset": {"type": ["integer", "null"], "examples": [0]}, "page_size": {"type": ["integer", "null"], "examples": [4]}, "results": {"type": "array", "items": {"type": "object", "properties": {"domain": {"type": ["string", "null"], "description": "The website domain name.", "examples": ["google.com"]}, "rank": {"type": ["integer", "null"], "description": "MixRank Rank.", "examples": [1]}, "alexa_rank": {"type": ["integer", "null"], "description": "Stored Alexa rank; this historical field is not a current ranking.", "examples": [1]}, "score": {"type": ["number", "null"], "description": "MixRank Authority Score\u2122.", "examples": [0.98]}, "company": {"type": ["object", "null"], "properties": {"id": {"type": ["integer", "null"], "description": "The unique integer identifier for this company", "examples": [81760867]}, "name": {"type": ["string", "null"], "description": "The name of this company", "examples": ["Google"]}, "slug": {"type": ["string", "null"], "description": "A unique textual identifier for this company", "examples": ["google"]}}, "description": "Information about the company associated with this object"}}}}}}, {"title": "Invalid parameter", "type": "object", "required": ["errors"], "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}}}, "examples": [{"errors": {"offset": "Invalid value 'abc'."}}]}]}}}}, "403": {"description": "Invalid key or insufficient endpoint permissions.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"invalid_key": {"summary": "Invalid key", "value": {"errors": {"api_key": "Invalid api_key."}}}, "missing_permission": {"summary": "Missing permission", "value": {"errors": {"permissions": "You don't have the necessary permissions to access this resource right now. Please get in touch with accounts@mixrank.com to have your account modified."}}}}}}}, "429": {"description": "Concurrent request limit exceeded.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"rate_limited": {"summary": "Rate limited", "value": {"errors": {"rate_limit": "Exceeded rate limit (XXX concurrent requests)."}}}}}}}, "500": {"description": "Internal API error.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"internal_error": {"summary": "Internal error", "value": {"errors": {"message": "Internal error. Engineering has been alerted."}}}, "query_failed": {"summary": "Query failed", "value": {"errors": {"message": "query failed"}}}}}}}, "408": {"description": "The database query timed out.", "content": {"application/json": {"schema": {"type": "object", "properties": {"errors": {"type": "object", "additionalProperties": {"type": "string"}, "description": "Error messages keyed by the parameter they concern, or by message, api_key, permissions or rate_limit."}}}, "examples": {"timeout": {"summary": "Timeout", "value": {"errors": {"message": "timeout"}}}}}}}}, "parameters": [{"name": "slug", "in": "path", "required": true, "description": "Web technology identifier from the slug field in /web/tags, such as adroll.", "schema": {"type": "string"}, "example": "adroll"}, {"name": "offset", "in": "query", "required": false, "description": "Offset the set of results to return. Useful for paging through results.", "schema": {"type": "integer", "default": 0, "minimum": 0}}, {"name": "page_size", "in": "query", "required": false, "description": "Number of results to return.", "schema": {"type": "integer", "default": 4, "minimum": 1, "maximum": 100}}, {"name": "sort_field", "in": "query", "required": false, "description": "Sort the results by the field specified. Sortable fields: <code>rank</code>, <code>id</code>.", "schema": {"type": "string", "default": "rank", "enum": ["rank", "id"]}}], "x-mixrank-examples": [{"url": "/web/tags/adroll/sites", "summary": "Websites where MixRank has detected AdRoll."}]}}}}