{
    "openapi": "3.1.0",
    "info": {
        "title": "APK API",
        "version": "1.0.0",
        "description": "Google Play data API: 4 million apps (live and removed), developers, new releases, removals and title keywords. JSON, UTF-8, CORS enabled.\n\nEvery call costs 0–3 credits regardless of the number of rows (up to 100); /apps costs 1 credit per app. Plan credits are used first, then the prepaid balance; if a request fails on our side, the credits are returned. Remaining credits are in the `_credits` field of every response.\n\nDocumentation: https://apkapi.com/api-docs.php",
        "contact": {
            "url": "https://apkapi.com/api-docs.php"
        },
        "termsOfService": "https://apkapi.com/legal/terms.php"
    },
    "servers": [
        {
            "url": "https://apkapi.com/api/v1"
        }
    ],
    "security": [
        {
            "ApiKeyHeader": []
        },
        {
            "BearerAuth": []
        }
    ],
    "tags": [
        {
            "name": "التطبيقات"
        },
        {
            "name": "المطوّرون"
        },
        {
            "name": "تغييرات المتجر"
        },
        {
            "name": "السوق"
        }
    ],
    "paths": {
        "/account": {
            "get": {
                "operationId": "account",
                "tags": [
                    "Account"
                ],
                "summary": "Your plan, plan credits and balance, the credit reset date and the per-minute limit.",
                "description": "Free: no credits are charged.",
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/app": {
            "get": {
                "operationId": "app",
                "tags": [
                    "التطبيقات"
                ],
                "summary": "سجل التطبيق الكامل: العنوان والوصف والجديد والتثبيتات (الفئة والعدد الدقيق) والتقييم وعدد التقييمات والمراجعات وتوزيع النجوم والسعر وعمليات الشراء داخل التطبيق والإعلانات والفئة وتصنيف المحتوى والإصدار والحد الأدنى من Android وتاريخا الإصدار والتحديث والأيقونة ولقطات الشاشة والفيديو والمطوّر وموقعه. وللتطبيقات المحذوفة: آخر البيانات المحفوظة وتاريخ الحذف.",
                "description": "سجل التطبيق الكامل: العنوان والوصف والجديد والتثبيتات (الفئة والعدد الدقيق) والتقييم وعدد التقييمات والمراجعات وتوزيع النجوم والسعر وعمليات الشراء داخل التطبيق والإعلانات والفئة وتصنيف المحتوى والإصدار والحد الأدنى من Android وتاريخا الإصدار والتحديث والأيقونة ولقطات الشاشة والفيديو والمطوّر وموقعه. وللتطبيقات المحذوفة: آخر البيانات المحفوظة وتاريخ الحذف.\n\nCost: 1 credit per call.",
                "x-credits": 1,
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "اسم حزمة التطبيق",
                        "schema": {
                            "type": "string"
                        },
                        "example": "com.whatsapp"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/apps": {
            "get": {
                "operationId": "apps",
                "tags": [
                    "التطبيقات"
                ],
                "summary": "حتى 100 تطبيق في استدعاء واحد: GET ?ids=a,b,c أو POST مع القائمة في المتن (عنصر في كل سطر، أو JSON {\"ids\": […]}). رصيد واحد لكل تطبيق؛ وتعود المعرّفات غير الموجودة لدينا في not_found.",
                "description": "حتى 100 تطبيق في استدعاء واحد: GET ?ids=a,b,c أو POST مع القائمة في المتن (عنصر في كل سطر، أو JSON {\"ids\": […]}). رصيد واحد لكل تطبيق؛ وتعود المعرّفات غير الموجودة لدينا في not_found.\n\nCost: 1 credit per app.",
                "x-credits": 1,
                "parameters": [
                    {
                        "name": "ids",
                        "in": "query",
                        "required": true,
                        "description": "أسماء الحزم مفصولة بفواصل، حتى 100",
                        "schema": {
                            "type": "string"
                        },
                        "example": "com.whatsapp,org.telegram.messenger"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            },
            "post": {
                "operationId": "apps_post",
                "tags": [
                    "التطبيقات"
                ],
                "summary": "Same as GET, with package names in the request body (one per line, or JSON {\"ids\": [...]}).",
                "description": "حتى 100 تطبيق في استدعاء واحد: GET ?ids=a,b,c أو POST مع القائمة في المتن (عنصر في كل سطر، أو JSON {\"ids\": […]}). رصيد واحد لكل تطبيق؛ وتعود المعرّفات غير الموجودة لدينا في not_found.\n\nCost: 1 credit per app.",
                "x-credits": 1,
                "parameters": [],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                },
                "requestBody": {
                    "required": true,
                    "content": {
                        "text/plain": {
                            "schema": {
                                "type": "string"
                            },
                            "example": "com.whatsapp\norg.telegram.messenger"
                        }
                    }
                }
            }
        },
        "/search": {
            "get": {
                "operationId": "search",
                "tags": [
                    "التطبيقات"
                ],
                "summary": "بحث وتصفية في قاعدة البيانات كلها. يلزم عامل تصفية واحد على الأقل. دون q تُرتَّب النتائج حسب التثبيتات.",
                "description": "بحث وتصفية في قاعدة البيانات كلها. يلزم عامل تصفية واحد على الأقل. دون q تُرتَّب النتائج حسب التثبيتات.\n\nCost: 2 credits per call.",
                "x-credits": 2,
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "كلمات للبحث في العنوان والوصف واسم المطوّر",
                        "schema": {
                            "type": "string"
                        },
                        "example": "photo editor"
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "description": "معرّف الفئة، مثل GAME_PUZZLE (راجع /v1/categories)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "developer_id",
                        "in": "query",
                        "required": false,
                        "description": "معرّف مطوّر Google Play",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "min_installs",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى للتثبيتات (عتبات Google Play: 1000، 10000…)",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "max_installs",
                        "in": "query",
                        "required": false,
                        "description": "أقصى عدد تثبيتات",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "min_score",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى للتقييم، 0–5",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "min_ratings",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى لعدد التقييمات",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "free",
                        "in": "query",
                        "required": false,
                        "description": "true — المجانية فقط، false — المدفوعة فقط",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "true",
                                "false"
                            ]
                        }
                    },
                    {
                        "name": "ads",
                        "in": "query",
                        "required": false,
                        "description": "true — مع إعلانات، false — دون إعلانات",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "true",
                                "false"
                            ]
                        }
                    },
                    {
                        "name": "iap",
                        "in": "query",
                        "required": false,
                        "description": "true — مع عمليات شراء داخل التطبيق",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "true",
                                "false"
                            ]
                        }
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "description": "لغة العنوان، رمز ISO: en وde وpt…",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "released_from",
                        "in": "query",
                        "required": false,
                        "description": "صدر من هذا التاريخ، YYYY-MM-DD",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "released_to",
                        "in": "query",
                        "required": false,
                        "description": "صدر حتى هذا التاريخ، شاملًا",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "updated_from",
                        "in": "query",
                        "required": false,
                        "description": "حُدّث من هذا التاريخ",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "updated_to",
                        "in": "query",
                        "required": false,
                        "description": "حُدّث حتى هذا التاريخ، شاملًا",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "live (في المتجر، الافتراضي) أو removed أو all",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "live",
                                "removed",
                                "all"
                            ]
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "relevance | installs | real_installs | score | ratings | reviews | released | updated | price",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "desc | asc",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "desc",
                                "asc"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/suggest": {
            "get": {
                "operationId": "suggest",
                "tags": [
                    "التطبيقات"
                ],
                "summary": "اقتراحات من بداية العنوان: أشهر 10 نتائج. مجانًا.",
                "description": "اقتراحات من بداية العنوان: أشهر 10 نتائج. مجانًا.\n\nCost: 0 credits per call.",
                "x-credits": 0,
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "description": "بداية العنوان، حرفان أو أكثر",
                        "schema": {
                            "type": "string"
                        },
                        "example": "whats"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/developer": {
            "get": {
                "operationId": "developer",
                "tags": [
                    "المطوّرون"
                ],
                "summary": "مطوّر وجميع تطبيقاته: الأعداد (في المتجر والمحذوفة) وإجمالي التثبيتات ومتوسط التقييم وأول إصدار والفئات والموقع. في خطة Business: البريد الإلكتروني والهاتف والعنوان والاسم القانوني.",
                "description": "مطوّر وجميع تطبيقاته: الأعداد (في المتجر والمحذوفة) وإجمالي التثبيتات ومتوسط التقييم وأول إصدار والفئات والموقع. في خطة Business: البريد الإلكتروني والهاتف والعنوان والاسم القانوني.\n\nCost: 2 credits per call.",
                "x-credits": 2,
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "description": "معرّف المطوّر (من التطبيق: developer.id)",
                        "schema": {
                            "type": "string"
                        },
                        "example": "5191370068110375942"
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "description": "أو الاسم الدقيق للمطوّر",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "all (الافتراضي) أو live أو removed",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "live",
                                "removed",
                                "all"
                            ]
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "relevance | installs | real_installs | score | ratings | reviews | released | updated | price",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/new": {
            "get": {
                "operationId": "new",
                "tags": [
                    "تغييرات المتجر"
                ],
                "summary": "تطبيقات جديدة حسب تاريخ أول إصدار، الأحدث في الأعلى.",
                "description": "تطبيقات جديدة حسب تاريخ أول إصدار، الأحدث في الأعلى.\n\nCost: 2 credits per call.",
                "x-credits": 2,
                "parameters": [
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "description": "من هذا التاريخ، YYYY-MM-DD (الافتراضي: قبل 7 أيام)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "description": "حتى هذا التاريخ، شاملًا",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "description": "معرّف الفئة، مثل GAME_PUZZLE (راجع /v1/categories)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "min_installs",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى للتثبيتات (عتبات Google Play: 1000، 10000…)",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "description": "لغة العنوان، رمز ISO: en وde وpt…",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "relevance | installs | real_installs | score | ratings | reviews | released | updated | price",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/removed": {
            "get": {
                "operationId": "removed",
                "tags": [
                    "تغييرات المتجر"
                ],
                "summary": "تطبيقات اختفت من Google Play (غير موجودة في جميع البلدان الـ19 التي نفحصها)، حسب تاريخ الحذف. يحتفظ سجل التطبيق بآخر بياناته.",
                "description": "تطبيقات اختفت من Google Play (غير موجودة في جميع البلدان الـ19 التي نفحصها)، حسب تاريخ الحذف. يحتفظ سجل التطبيق بآخر بياناته.\n\nCost: 2 credits per call.",
                "x-credits": 2,
                "parameters": [
                    {
                        "name": "since",
                        "in": "query",
                        "required": false,
                        "description": "من هذا التاريخ، YYYY-MM-DD (الافتراضي: قبل 7 أيام)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "until",
                        "in": "query",
                        "required": false,
                        "description": "حتى هذا التاريخ، شاملًا",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "description": "معرّف الفئة، مثل GAME_PUZZLE (راجع /v1/categories)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "min_installs",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى للتثبيتات (عتبات Google Play: 1000، 10000…)",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "removed_at | installs | score",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/keywords": {
            "get": {
                "operationId": "keywords",
                "tags": [
                    "السوق"
                ],
                "summary": "كلمات وعبارات من عناوين التطبيقات لكل لغة: كم تطبيقًا ومطوّرًا يستخدمها، وكم منها قوي (100 ألف تثبيت أو أكثر)، وإجمالي التثبيتات، وحصة المتصدر، ودرجة الفرصة.",
                "description": "كلمات وعبارات من عناوين التطبيقات لكل لغة: كم تطبيقًا ومطوّرًا يستخدمها، وكم منها قوي (100 ألف تثبيت أو أكثر)، وإجمالي التثبيتات، وحصة المتصدر، ودرجة الفرصة.\n\nCost: 2 credits per call.",
                "x-credits": 2,
                "parameters": [
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "description": "اللغة، الافتراضية en",
                        "schema": {
                            "type": "string"
                        },
                        "example": "en"
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "description": "كلمة أو عبارة",
                        "schema": {
                            "type": "string"
                        },
                        "example": "vpn"
                    },
                    {
                        "name": "phrase",
                        "in": "query",
                        "required": false,
                        "description": "true — العبارات من كلمتين فقط، false — الكلمات المفردة فقط",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "true",
                                "false"
                            ]
                        }
                    },
                    {
                        "name": "min_apps",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى للتطبيقات",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "max_apps",
                        "in": "query",
                        "required": false,
                        "description": "أقصى عدد تطبيقات",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "opportunity | apps | installs | strong | devs | max_installs",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "desc | asc",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "desc",
                                "asc"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/categories": {
            "get": {
                "operationId": "categories",
                "tags": [
                    "السوق"
                ],
                "summary": "جميع الفئات مع عدد التطبيقات وإجمالي التثبيتات. مجانًا.",
                "description": "جميع الفئات مع عدد التطبيقات وإجمالي التثبيتات. مجانًا.\n\nCost: 0 credits per call.",
                "x-credits": 0,
                "parameters": [
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "live (في المتجر، الافتراضي) أو removed أو all",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "live",
                                "removed",
                                "all"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/free_domains": {
            "get": {
                "operationId": "free_domains",
                "tags": [
                    "السوق"
                ],
                "summary": "تطبيقات نطاق موقع مطوّرها متاح للتسجيل، مع شعبية التطبيق. خطة Pro وما فوقها.",
                "description": "تطبيقات نطاق موقع مطوّرها متاح للتسجيل، مع شعبية التطبيق. خطة Pro وما فوقها.\n\nCost: 3 credits per call. Plan: Pro or higher.",
                "x-credits": 3,
                "parameters": [
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "description": "معرّف الفئة، مثل GAME_PUZZLE (راجع /v1/categories)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "min_installs",
                        "in": "query",
                        "required": false,
                        "description": "الحد الأدنى للتثبيتات (عتبات Google Play: 1000، 10000…)",
                        "schema": {
                            "type": "integer",
                            "minimum": 0
                        }
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "description": "live (في المتجر، الافتراضي) أو removed أو all",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "live",
                                "removed",
                                "all"
                            ]
                        }
                    },
                    {
                        "name": "tld",
                        "in": "query",
                        "required": false,
                        "description": "منطقة النطاق، مثل com",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "relevance | installs | real_installs | score | ratings | reviews | released | updated | price",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/charts": {
            "get": {
                "operationId": "charts",
                "tags": [
                    "السوق"
                ],
                "summary": "تصنيف Google Play لبلد وفئة: حتى 200 مركز، وتغير الترتيب منذ اللقطة السابقة (change: عدد المراكز التي صعدها، و\"new\" للداخلين الجدد)، والأيقونة والتثبيتات.",
                "description": "تصنيف Google Play لبلد وفئة: حتى 200 مركز، وتغير الترتيب منذ اللقطة السابقة (change: عدد المراكز التي صعدها، و\"new\" للداخلين الجدد)، والأيقونة والتثبيتات.\n\nCost: 2 credits per call.",
                "x-credits": 2,
                "parameters": [
                    {
                        "name": "country",
                        "in": "query",
                        "required": true,
                        "description": "البلد، رمز ISO: US وDE وBR…",
                        "schema": {
                            "type": "string"
                        },
                        "example": "US"
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "required": true,
                        "description": "الفئة، مثل GAME_PUZZLE",
                        "schema": {
                            "type": "string"
                        },
                        "example": "GAME_PUZZLE"
                    },
                    {
                        "name": "collection",
                        "in": "query",
                        "required": false,
                        "description": "free | paid | grossing",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "free",
                                "paid",
                                "grossing"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/rankings": {
            "get": {
                "operationId": "rankings",
                "tags": [
                    "السوق"
                ],
                "summary": "جميع التصنيفات التي يوجد فيها التطبيق في أحدث لقطة: البلد والفئة والمجموعة والمركز؛ وعدد التصنيفات والبلدان وأفضل مركز.",
                "description": "جميع التصنيفات التي يوجد فيها التطبيق في أحدث لقطة: البلد والفئة والمجموعة والمركز؛ وعدد التصنيفات والبلدان وأفضل مركز.\n\nCost: 1 credit per call.",
                "x-credits": 1,
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "اسم حزمة التطبيق",
                        "schema": {
                            "type": "string"
                        },
                        "example": "com.whatsapp"
                    },
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "بلد واحد فقط",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "collection",
                        "in": "query",
                        "required": false,
                        "description": "free | paid | grossing",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "free",
                                "paid",
                                "grossing"
                            ]
                        }
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/availability": {
            "get": {
                "operationId": "availability",
                "tags": [
                    "السوق"
                ],
                "summary": "البلدان التي يتوفر فيها التطبيق على Google Play (من hreflang في خريطة موقع المتجر). عند 190 بلدًا أو أكثر يُعاد worldwide = true دون قائمة.",
                "description": "البلدان التي يتوفر فيها التطبيق على Google Play (من hreflang في خريطة موقع المتجر). عند 190 بلدًا أو أكثر يُعاد worldwide = true دون قائمة.\n\nCost: 1 credit per call.",
                "x-credits": 1,
                "parameters": [
                    {
                        "name": "id",
                        "in": "query",
                        "required": true,
                        "description": "اسم حزمة التطبيق",
                        "schema": {
                            "type": "string"
                        },
                        "example": "com.whatsapp"
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/markets": {
            "get": {
                "operationId": "markets",
                "tags": [
                    "السوق"
                ],
                "summary": "المنافسة في السوق بناءً على التصنيفات المجانية: عتبة دخول أفضل 100 وأفضل 200 (تثبيتات التطبيق في ذلك المركز)، وحصة التطبيقات الجديدة (آخر 12 شهرًا) والمحلية (≤3 بلدان) في القمة، وحجم السوق المحلي. دون معاملات: جميع البلدان؛ country: فئات بلد واحد؛ category: فئة واحدة في جميع البلدان.",
                "description": "المنافسة في السوق بناءً على التصنيفات المجانية: عتبة دخول أفضل 100 وأفضل 200 (تثبيتات التطبيق في ذلك المركز)، وحصة التطبيقات الجديدة (آخر 12 شهرًا) والمحلية (≤3 بلدان) في القمة، وحجم السوق المحلي. دون معاملات: جميع البلدان؛ country: فئات بلد واحد؛ category: فئة واحدة في جميع البلدان.\n\nCost: 1 credit per call.",
                "x-credits": 1,
                "parameters": [
                    {
                        "name": "country",
                        "in": "query",
                        "required": false,
                        "description": "البلد، رمز ISO",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "category",
                        "in": "query",
                        "required": false,
                        "description": "معرّف الفئة، مثل GAME_PUZZLE (راجع /v1/categories)",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "entry100 | entry200 | new_share | local_share | local_apps | local_installs | local_new",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "order",
                        "in": "query",
                        "required": false,
                        "description": "desc | asc",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "desc",
                                "asc"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "الصفحة، من 1",
                        "schema": {
                            "type": "integer",
                            "minimum": 1
                        }
                    },
                    {
                        "name": "per",
                        "in": "query",
                        "required": false,
                        "description": "الصفوف في الصفحة، 1–100 (الافتراضي 20)",
                        "schema": {
                            "type": "integer",
                            "minimum": 1,
                            "maximum": 100
                        },
                        "example": 20
                    }
                ],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/stats": {
            "get": {
                "operationId": "stats",
                "tags": [
                    "السوق"
                ],
                "summary": "حجم قاعدة البيانات: التطبيقات في المتجر والمحذوفة، والمطوّرون، والجديدة والمحذوفة في آخر 7 أيام، ووقت آخر تحديث. مجانًا.",
                "description": "حجم قاعدة البيانات: التطبيقات في المتجر والمحذوفة، والمطوّرون، والجديدة والمحذوفة في آخر 7 أيام، ووقت آخر تحديث. مجانًا.\n\nCost: 0 credits per call.",
                "x-credits": 0,
                "parameters": [],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    },
                    "400": {
                        "$ref": "#/components/responses/Error"
                    },
                    "401": {
                        "$ref": "#/components/responses/Error"
                    },
                    "402": {
                        "$ref": "#/components/responses/Error"
                    },
                    "403": {
                        "$ref": "#/components/responses/Error"
                    },
                    "429": {
                        "$ref": "#/components/responses/Error"
                    },
                    "502": {
                        "$ref": "#/components/responses/Error"
                    },
                    "503": {
                        "$ref": "#/components/responses/Error"
                    }
                }
            }
        },
        "/health": {
            "get": {
                "operationId": "health",
                "tags": [
                    "Account"
                ],
                "summary": "Service status. No key required.",
                "security": [],
                "responses": {
                    "200": {
                        "$ref": "#/components/responses/Ok"
                    }
                }
            }
        }
    },
    "components": {
        "securitySchemes": {
            "ApiKeyHeader": {
                "type": "apiKey",
                "in": "header",
                "name": "X-API-Key"
            },
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer"
            }
        },
        "schemas": {
            "Credits": {
                "type": "object",
                "properties": {
                    "cost": {
                        "type": "integer",
                        "description": "credits this request cost"
                    },
                    "remaining": {
                        "type": "integer",
                        "description": "credits left (plan + balance)"
                    }
                }
            },
            "Ok": {
                "type": "object",
                "required": [
                    "ok"
                ],
                "additionalProperties": true,
                "properties": {
                    "ok": {
                        "type": "boolean",
                        "const": true
                    },
                    "results": {
                        "type": "array",
                        "items": {
                            "type": "object",
                            "additionalProperties": true
                        }
                    },
                    "total": {
                        "type": "integer"
                    },
                    "page": {
                        "type": "integer"
                    },
                    "per": {
                        "type": "integer"
                    },
                    "pages": {
                        "type": "integer"
                    },
                    "_credits": {
                        "$ref": "#/components/schemas/Credits"
                    }
                }
            },
            "Error": {
                "type": "object",
                "required": [
                    "ok",
                    "error",
                    "code"
                ],
                "properties": {
                    "ok": {
                        "type": "boolean",
                        "const": false
                    },
                    "error": {
                        "type": "string"
                    },
                    "code": {
                        "type": "string",
                        "examples": [
                            "missing_api_key",
                            "invalid_api_key",
                            "account_blocked",
                            "insufficient_credits",
                            "rate_limited",
                            "invalid_param",
                            "invalid_request",
                            "not_found",
                            "upstream_error",
                            "service_unavailable"
                        ]
                    }
                }
            }
        },
        "responses": {
            "Ok": {
                "description": "Success",
                "headers": {
                    "X-Cache": {
                        "description": "HIT — served from cache, MISS — fresh query to the database",
                        "schema": {
                            "type": "string"
                        }
                    }
                },
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Ok"
                        }
                    }
                }
            },
            "Error": {
                "description": "Error",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        }
                    }
                }
            }
        }
    }
}