{
    "openapi": "3.1.0",
    "info": {
        "title": "CineAtlas API",
        "version": "1.6.0",
        "description": "Katalog, kişi, vizyon, seans ve gişe verileri JSON olarak.\n\n**Kimlik doğrulama:** her istekte `X-Api-Key` başlığı (ya da `?api_key=`).\n\n**Sınırlar:** Ücretsiz 60 istek/dk, 1000 istek/gün · Premium 600 istek/dk, 50000 istek/gün. Kalan hak yanıt başlıklarında.\n\n**Görseller:** poster_path / backdrop_path TMDB yoludur; tam adres için https://image.tmdb.org/t/p/w500 önüne eklenir. Bu veriler TMDB ve Wikidata kaynaklıdır; kullanırken kaynak göster.",
        "contact": {
            "name": "CineAtlas",
            "email": "musapekel@icloud.com",
            "url": "https://atlas.musapekel.com/gelistirici"
        }
    },
    "servers": [
        {
            "url": "https://api.atlas.musapekel.com/api/public/v1",
            "description": "Canlı"
        }
    ],
    "tags": [
        {
            "name": "Katalog",
            "description": "Filmler, diziler ve arama"
        },
        {
            "name": "Kişiler",
            "description": "Oyuncular ve ekip"
        },
        {
            "name": "Vizyon",
            "description": "Yakında çıkacaklar"
        },
        {
            "name": "Sinema",
            "description": "Seanslar ve gişe (premium)"
        }
    ],
    "components": {
        "securitySchemes": {
            "ApiKey": {
                "type": "apiKey",
                "in": "header",
                "name": "X-Api-Key"
            }
        },
        "schemas": {
            "MediaCard": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "tmdb_id": {
                        "type": "integer"
                    },
                    "media_type": {
                        "type": "string",
                        "enum": [
                            "movie",
                            "tv"
                        ]
                    },
                    "title": {
                        "type": "string"
                    },
                    "original_title": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "poster_path": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "description": "TMDB yolu: https://image.tmdb.org/t/p/w500{poster_path}"
                    },
                    "backdrop_path": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "release_date": {
                        "type": [
                            "string",
                            "null"
                        ],
                        "format": "date"
                    },
                    "vote_average": {
                        "type": "number"
                    },
                    "genres": {
                        "type": "array",
                        "items": {
                            "type": "string"
                        }
                    },
                    "runtime": {
                        "type": [
                            "integer",
                            "null"
                        ],
                        "description": "Dakika"
                    },
                    "overview": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "url": {
                        "type": "string",
                        "format": "uri",
                        "description": "Sitedeki sayfası"
                    }
                }
            },
            "MediaDetail": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/MediaCard"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "tagline": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "status": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "certification": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "imdb_id": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "providers": {
                                "type": "array",
                                "items": {
                                    "type": "string"
                                }
                            },
                            "trailers": {
                                "type": "array",
                                "items": {
                                    "type": "string",
                                    "format": "uri"
                                }
                            },
                            "cast": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "person_id": {
                                            "type": "integer"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "character": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "profile_path": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        }
                                    }
                                }
                            },
                            "crew": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "person_id": {
                                            "type": "integer"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "job": {
                                            "type": "string"
                                        }
                                    }
                                }
                            }
                        }
                    }
                ]
            },
            "PersonCard": {
                "type": "object",
                "properties": {
                    "id": {
                        "type": "integer"
                    },
                    "name": {
                        "type": "string"
                    },
                    "profile_path": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "known_for_department": {
                        "type": [
                            "string",
                            "null"
                        ]
                    }
                }
            },
            "Person": {
                "allOf": [
                    {
                        "$ref": "#/components/schemas/PersonCard"
                    },
                    {
                        "type": "object",
                        "properties": {
                            "tmdb_id": {
                                "type": [
                                    "integer",
                                    "null"
                                ]
                            },
                            "biography": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "place_of_birth": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "imdb_id": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "birthday": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date"
                            },
                            "deathday": {
                                "type": [
                                    "string",
                                    "null"
                                ],
                                "format": "date"
                            },
                            "links": {
                                "type": "object",
                                "additionalProperties": {
                                    "type": "string"
                                }
                            },
                            "filmography": {
                                "type": "array",
                                "items": {
                                    "type": "object",
                                    "properties": {
                                        "title": {
                                            "type": "string"
                                        },
                                        "media_type": {
                                            "type": "string"
                                        },
                                        "tmdb_id": {
                                            "type": "integer"
                                        },
                                        "id": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Sitede sayfası yoksa null"
                                        },
                                        "release_date": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "character": {
                                            "type": [
                                                "string",
                                                "null"
                                            ]
                                        },
                                        "jobs": {
                                            "type": "array",
                                            "items": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                ]
            },
            "Award": {
                "type": "object",
                "properties": {
                    "award": {
                        "type": "string"
                    },
                    "category": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "year": {
                        "type": "integer"
                    },
                    "result": {
                        "type": "string",
                        "enum": [
                            "won",
                            "nominated"
                        ]
                    },
                    "work": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "source": {
                        "type": "string",
                        "enum": [
                            "manual",
                            "wikidata"
                        ]
                    }
                }
            },
            "Showtime": {
                "type": "object",
                "properties": {
                    "starts_at": {
                        "type": "string",
                        "format": "date-time"
                    },
                    "format": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "language": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "hall": {
                        "type": [
                            "string",
                            "null"
                        ]
                    },
                    "price": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "cinema": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "name": {
                                "type": "string"
                            },
                            "chain": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            },
                            "city": {
                                "type": "string"
                            },
                            "district": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        }
                    },
                    "media": {
                        "type": [
                            "object",
                            "null"
                        ],
                        "properties": {
                            "id": {
                                "type": "integer"
                            },
                            "title": {
                                "type": "string"
                            },
                            "media_type": {
                                "type": "string"
                            }
                        }
                    }
                }
            },
            "BoxOfficeEntry": {
                "type": "object",
                "properties": {
                    "rank": {
                        "type": "integer"
                    },
                    "title": {
                        "type": "string"
                    },
                    "media_id": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "weekend_gross": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "weekend_admissions": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "total_gross": {
                        "type": [
                            "number",
                            "null"
                        ]
                    },
                    "total_admissions": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "weeks": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    },
                    "screens": {
                        "type": [
                            "integer",
                            "null"
                        ]
                    }
                }
            },
            "PageMeta": {
                "type": "object",
                "properties": {
                    "current_page": {
                        "type": "integer"
                    },
                    "last_page": {
                        "type": "integer"
                    },
                    "per_page": {
                        "type": "integer"
                    },
                    "total": {
                        "type": "integer"
                    }
                }
            },
            "Error": {
                "type": "object",
                "required": [
                    "error"
                ],
                "properties": {
                    "error": {
                        "type": "string"
                    },
                    "retry_after": {
                        "type": "integer"
                    },
                    "tier": {
                        "type": "string"
                    }
                }
            },
            "MediaList": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/MediaCard"
                        }
                    },
                    "meta": {
                        "$ref": "#/components/schemas/PageMeta"
                    }
                }
            },
            "MediaDetailResponse": {
                "type": "object",
                "properties": {
                    "data": {
                        "$ref": "#/components/schemas/MediaDetail"
                    }
                }
            },
            "SearchResponse": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "media": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/MediaCard"
                                }
                            },
                            "people": {
                                "type": "array",
                                "items": {
                                    "$ref": "#/components/schemas/PersonCard"
                                }
                            }
                        }
                    }
                }
            },
            "PersonResponse": {
                "type": "object",
                "properties": {
                    "data": {
                        "$ref": "#/components/schemas/Person"
                    }
                }
            },
            "AwardList": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Award"
                        }
                    }
                }
            },
            "ShowtimeList": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/Showtime"
                        }
                    }
                }
            },
            "BoxOfficeList": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "array",
                        "items": {
                            "$ref": "#/components/schemas/BoxOfficeEntry"
                        }
                    },
                    "meta": {
                        "type": "object",
                        "properties": {
                            "week_start": {
                                "type": [
                                    "string",
                                    "null"
                                ]
                            }
                        }
                    }
                }
            }
        },
        "headers": {
            "Limit": {
                "description": "Dakikalık sınır",
                "schema": {
                    "type": "integer"
                }
            },
            "Remaining": {
                "description": "Bu dakika kalan istek",
                "schema": {
                    "type": "integer"
                }
            },
            "DailyRemaining": {
                "description": "Bugün kalan istek",
                "schema": {
                    "type": "integer"
                }
            },
            "Tier": {
                "description": "free | premium",
                "schema": {
                    "type": "string"
                }
            }
        },
        "responses": {
            "Unauthorized": {
                "description": "Anahtar yok, geçersiz ya da devre dışı",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "Geçersiz ya da devre dışı API anahtarı. Anahtarını X-Api-Key başlığında gönder."
                        }
                    }
                }
            },
            "PremiumRequired": {
                "description": "Bu uç nokta premium anahtar ister",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "Bu uç nokta yalnızca premium API anahtarlarına açık.",
                            "tier": "free"
                        }
                    }
                }
            },
            "TooMany": {
                "description": "Dakikalık ya da günlük sınır aşıldı (Retry-After başlığına bak)",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "Dakikalık istek sınırı aşıldı.",
                            "retry_after": 42
                        }
                    }
                }
            },
            "NotFound": {
                "description": "Kayıt bulunamadı",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "Kayıt bulunamadı."
                        }
                    }
                }
            },
            "Invalid": {
                "description": "Parametre hatalı",
                "content": {
                    "application/json": {
                        "schema": {
                            "$ref": "#/components/schemas/Error"
                        },
                        "example": {
                            "error": "q en az 2 karakter olmalı."
                        }
                    }
                }
            }
        }
    },
    "security": [
        {
            "ApiKey": []
        }
    ],
    "paths": {
        "/media": {
            "get": {
                "operationId": "listMedia",
                "tags": [
                    "Katalog"
                ],
                "summary": "Yapımları listele",
                "description": "Yayındaki filmler ve diziler, sayfalı. Sıralama ve filtreler birlikte kullanılabilir.",
                "parameters": [
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "description": "Yapım türü",
                        "example": "movie",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "movie",
                                "tv"
                            ]
                        }
                    },
                    {
                        "name": "genre",
                        "in": "query",
                        "required": false,
                        "description": "Tür adı (Türkçe, ör. Dram)",
                        "example": "Dram",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "year",
                        "in": "query",
                        "required": false,
                        "description": "Vizyon yılı",
                        "example": 1991,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "sort",
                        "in": "query",
                        "required": false,
                        "description": "Sıralama",
                        "example": "rating",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "popular",
                                "rating",
                                "newest",
                                "title"
                            ]
                        }
                    },
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Sayfa (1–500)",
                        "example": 1,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "per_page",
                        "in": "query",
                        "required": false,
                        "description": "Sayfa başına kayıt (1–50, varsayılan 20)",
                        "example": 20,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "x-premium": false,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MediaList"
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 5,
                                            "tmdb_id": 10020,
                                            "media_type": "movie",
                                            "title": "Güzel ve Çirkin",
                                            "original_title": "Beauty and the Beast",
                                            "poster_path": "/hUJ0UvQ5tgE2Z9WpfuduVSdiCiU.jpg",
                                            "backdrop_path": "/l3lDWoJuKwPhP6kJnwCsUazj7O9.jpg",
                                            "release_date": "1991-11-13",
                                            "vote_average": 7.7,
                                            "genres": [
                                                "Animasyon",
                                                "Aile",
                                                "Fantastik",
                                                "Romantik"
                                            ],
                                            "runtime": 84,
                                            "overview": "Kendini esrarengiz bir yaratığa dönüşen prensin şatosunda bulan Belle’in hikâyesi.",
                                            "url": "https://atlas.musapekel.com/movie/5"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "last_page": 12,
                                        "per_page": 20,
                                        "total": 231
                                    }
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "422": {
                        "$ref": "#/components/responses/Invalid"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/media?type=movie&sort=rating&per_page=10\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/media?type=movie&sort=rating&per_page=10', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/media?type=movie&sort=rating&per_page=10');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/media?type=movie&sort=rating&per_page=10',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/media/{type}/{id}": {
            "get": {
                "operationId": "getMedia",
                "tags": [
                    "Katalog"
                ],
                "summary": "Yapım ayrıntısı",
                "description": "Bilgiler, ilk 20 oyuncu, ekip, platformlar ve fragman bağlantıları.",
                "parameters": [
                    {
                        "name": "type",
                        "in": "path",
                        "required": true,
                        "description": "movie ya da tv",
                        "example": "movie",
                        "schema": {
                            "type": "string",
                            "enum": [
                                "movie",
                                "tv"
                            ]
                        }
                    },
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Yapım kimliği (CineAtlas)",
                        "example": 5,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "x-premium": false,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MediaDetailResponse"
                                },
                                "example": {
                                    "data": {
                                        "id": 5,
                                        "tmdb_id": 10020,
                                        "media_type": "movie",
                                        "title": "Güzel ve Çirkin",
                                        "original_title": "Beauty and the Beast",
                                        "poster_path": "/hUJ0UvQ5tgE2Z9WpfuduVSdiCiU.jpg",
                                        "backdrop_path": "/l3lDWoJuKwPhP6kJnwCsUazj7O9.jpg",
                                        "release_date": "1991-11-13",
                                        "vote_average": 7.7,
                                        "genres": [
                                            "Animasyon",
                                            "Aile",
                                            "Fantastik",
                                            "Romantik"
                                        ],
                                        "runtime": 84,
                                        "overview": "Kendini esrarengiz bir yaratığa dönüşen prensin şatosunda bulan Belle’in hikâyesi.",
                                        "url": "https://atlas.musapekel.com/movie/5",
                                        "tagline": "Masalların en güzeli.",
                                        "status": "Released",
                                        "certification": "G",
                                        "imdb_id": "tt0101414",
                                        "providers": [
                                            "Disney Plus"
                                        ],
                                        "trailers": [
                                            "https://www.youtube.com/watch?v=iurbZwxKFUE"
                                        ],
                                        "cast": [
                                            {
                                                "person_id": 6,
                                                "name": "Angela Lansbury",
                                                "character": "Mrs. Potts (voice)",
                                                "profile_path": "/hDaUNAw3u0ATHmq3FyUQnE4cIWd.jpg"
                                            }
                                        ],
                                        "crew": [
                                            {
                                                "person_id": 31,
                                                "name": "Gary Trousdale",
                                                "job": "Yönetmen"
                                            }
                                        ]
                                    }
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/media/movie/5\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/media/movie/5', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/media/movie/5');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/media/movie/5',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/search": {
            "get": {
                "operationId": "search",
                "tags": [
                    "Katalog"
                ],
                "summary": "Arama",
                "description": "Yapım (başlık ve özgün ad) ve kişi araması. Türkçe harflerde büyük/küçük harf fark etmez.",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": true,
                        "description": "Arama metni (en az 2 karakter)",
                        "example": "güzel",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "x-premium": false,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/SearchResponse"
                                },
                                "example": {
                                    "data": {
                                        "media": [
                                            {
                                                "id": 5,
                                                "tmdb_id": 10020,
                                                "media_type": "movie",
                                                "title": "Güzel ve Çirkin",
                                                "original_title": "Beauty and the Beast",
                                                "poster_path": "/hUJ0UvQ5tgE2Z9WpfuduVSdiCiU.jpg",
                                                "backdrop_path": "/l3lDWoJuKwPhP6kJnwCsUazj7O9.jpg",
                                                "release_date": "1991-11-13",
                                                "vote_average": 7.7,
                                                "genres": [
                                                    "Animasyon",
                                                    "Aile",
                                                    "Fantastik",
                                                    "Romantik"
                                                ],
                                                "runtime": 84,
                                                "overview": "Kendini esrarengiz bir yaratığa dönüşen prensin şatosunda bulan Belle’in hikâyesi.",
                                                "url": "https://atlas.musapekel.com/movie/5"
                                            }
                                        ],
                                        "people": [
                                            {
                                                "id": 6,
                                                "name": "Angela Lansbury",
                                                "profile_path": "/hDaUNAw3u0ATHmq3FyUQnE4cIWd.jpg",
                                                "known_for_department": "Acting"
                                            }
                                        ]
                                    }
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "422": {
                        "$ref": "#/components/responses/Invalid"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/search?q=g%C3%BCzel\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/search?q=g%C3%BCzel', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/search?q=g%C3%BCzel');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/search?q=g%C3%BCzel',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/people/{id}": {
            "get": {
                "operationId": "getPerson",
                "tags": [
                    "Kişiler"
                ],
                "summary": "Kişi",
                "description": "Biyografi, bağlantılar ve tam filmografi (sitede sayfası olmayan yapımlar dahil; o kayıtlarda id null).",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Kişi kimliği",
                        "example": 6,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "x-premium": false,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/PersonResponse"
                                },
                                "example": {
                                    "data": {
                                        "id": 6,
                                        "name": "Angela Lansbury",
                                        "profile_path": "/hDaUNAw3u0ATHmq3FyUQnE4cIWd.jpg",
                                        "known_for_department": "Acting",
                                        "tmdb_id": 14730,
                                        "biography": "İngiliz-Amerikalı oyuncu ve şarkıcı.",
                                        "place_of_birth": "Londra, İngiltere",
                                        "imdb_id": "nm0001450",
                                        "birthday": "1925-10-16",
                                        "deathday": "2022-10-11",
                                        "links": {
                                            "imdb": "https://www.imdb.com/name/nm0001450/",
                                            "tmdb": "https://www.themoviedb.org/person/14730"
                                        },
                                        "filmography": [
                                            {
                                                "title": "Güzel ve Çirkin",
                                                "media_type": "movie",
                                                "tmdb_id": 10020,
                                                "id": 5,
                                                "release_date": "1991-11-13",
                                                "character": "Mrs. Potts (voice)",
                                                "jobs": []
                                            },
                                            {
                                                "title": "Cinayet Dosyası",
                                                "media_type": "tv",
                                                "tmdb_id": 1544,
                                                "id": null,
                                                "release_date": "1984-09-30",
                                                "character": "Jessica Fletcher",
                                                "jobs": []
                                            }
                                        ]
                                    }
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/people/6\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/people/6', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/people/6');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/people/6',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/upcoming": {
            "get": {
                "operationId": "listUpcoming",
                "tags": [
                    "Vizyon"
                ],
                "summary": "Yakında vizyonda",
                "description": "Çıkış tarihi gelecekte olan yapımlar, tarihe göre sıralı.",
                "parameters": [
                    {
                        "name": "page",
                        "in": "query",
                        "required": false,
                        "description": "Sayfa",
                        "example": 1,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "x-premium": false,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/MediaList"
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 41,
                                            "tmdb_id": 10020,
                                            "media_type": "movie",
                                            "title": "Yeni Film",
                                            "original_title": "Beauty and the Beast",
                                            "poster_path": "/hUJ0UvQ5tgE2Z9WpfuduVSdiCiU.jpg",
                                            "backdrop_path": "/l3lDWoJuKwPhP6kJnwCsUazj7O9.jpg",
                                            "release_date": "2026-12-10",
                                            "vote_average": 7.7,
                                            "genres": [
                                                "Animasyon",
                                                "Aile",
                                                "Fantastik",
                                                "Romantik"
                                            ],
                                            "runtime": 84,
                                            "overview": "Kendini esrarengiz bir yaratığa dönüşen prensin şatosunda bulan Belle’in hikâyesi.",
                                            "url": "https://atlas.musapekel.com/movie/5"
                                        }
                                    ],
                                    "meta": {
                                        "current_page": 1,
                                        "last_page": 12,
                                        "per_page": 20,
                                        "total": 231
                                    }
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "422": {
                        "$ref": "#/components/responses/Invalid"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/upcoming\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/upcoming', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/upcoming');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/upcoming',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/people/{id}/awards": {
            "get": {
                "operationId": "getPersonAwards",
                "tags": [
                    "Kişiler"
                ],
                "summary": "Kişinin ödülleri",
                "description": "Ödül ve adaylıklar. result: won | nominated. source: manual | wikidata.",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "description": "Kişi kimliği",
                        "example": 6,
                        "schema": {
                            "type": "integer"
                        }
                    }
                ],
                "x-premium": true,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/AwardList"
                                },
                                "example": {
                                    "data": [
                                        {
                                            "award": "Akademi Ödülleri",
                                            "category": "En İyi Yardımcı Kadın Oyuncu",
                                            "year": 1945,
                                            "result": "nominated",
                                            "work": "Gaslight",
                                            "source": "wikidata"
                                        }
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "403": {
                        "$ref": "#/components/responses/PremiumRequired"
                    },
                    "404": {
                        "$ref": "#/components/responses/NotFound"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/people/6/awards\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/people/6/awards', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/people/6/awards');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/people/6/awards',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/showtimes": {
            "get": {
                "operationId": "listShowtimes",
                "tags": [
                    "Sinema"
                ],
                "summary": "Seanslar",
                "description": "Bir günün seansları (varsayılan bugün, İstanbul saati). En fazla 500 kayıt.",
                "parameters": [
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "description": "Şehir",
                        "example": "İstanbul",
                        "schema": {
                            "type": "string"
                        }
                    },
                    {
                        "name": "media_id",
                        "in": "query",
                        "required": false,
                        "description": "Yapım kimliği",
                        "example": 5,
                        "schema": {
                            "type": "integer"
                        }
                    },
                    {
                        "name": "date",
                        "in": "query",
                        "required": false,
                        "description": "Tarih (YYYY-AA-GG)",
                        "example": "2026-11-10",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "x-premium": true,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/ShowtimeList"
                                },
                                "example": {
                                    "data": [
                                        {
                                            "starts_at": "2026-11-10T20:30:00+03:00",
                                            "format": "2D",
                                            "language": "Türkçe Dublaj",
                                            "hall": "Salon 3",
                                            "price": 180,
                                            "cinema": {
                                                "id": 2,
                                                "name": "Örnek Sinemaları Kadıköy",
                                                "chain": "Örnek",
                                                "city": "İstanbul",
                                                "district": "Kadıköy"
                                            },
                                            "media": {
                                                "id": 5,
                                                "title": "Güzel ve Çirkin",
                                                "media_type": "movie"
                                            }
                                        }
                                    ]
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "403": {
                        "$ref": "#/components/responses/PremiumRequired"
                    },
                    "422": {
                        "$ref": "#/components/responses/Invalid"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/showtimes?city=%C4%B0stanbul\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/showtimes?city=%C4%B0stanbul', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/showtimes?city=%C4%B0stanbul');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/showtimes?city=%C4%B0stanbul',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        },
        "/box-office": {
            "get": {
                "operationId": "getBoxOffice",
                "tags": [
                    "Sinema"
                ],
                "summary": "Gişe",
                "description": "Haftalık Türkiye gişe listesi. week boşsa en son hafta.",
                "parameters": [
                    {
                        "name": "week",
                        "in": "query",
                        "required": false,
                        "description": "Hafta başlangıcı (YYYY-AA-GG)",
                        "schema": {
                            "type": "string"
                        }
                    }
                ],
                "x-premium": true,
                "responses": {
                    "200": {
                        "description": "Başarılı",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/BoxOfficeList"
                                },
                                "example": {
                                    "data": [
                                        {
                                            "rank": 1,
                                            "title": "Güzel ve Çirkin",
                                            "media_id": 5,
                                            "weekend_gross": 12500000,
                                            "weekend_admissions": 61000,
                                            "total_gross": 48000000,
                                            "total_admissions": 240000,
                                            "weeks": 3,
                                            "screens": 410
                                        }
                                    ],
                                    "meta": {
                                        "week_start": "2026-11-06"
                                    }
                                }
                            }
                        },
                        "headers": {
                            "X-RateLimit-Limit": {
                                "$ref": "#/components/headers/Limit"
                            },
                            "X-RateLimit-Remaining": {
                                "$ref": "#/components/headers/Remaining"
                            },
                            "X-Daily-Remaining": {
                                "$ref": "#/components/headers/DailyRemaining"
                            },
                            "X-Api-Tier": {
                                "$ref": "#/components/headers/Tier"
                            }
                        }
                    },
                    "401": {
                        "$ref": "#/components/responses/Unauthorized"
                    },
                    "429": {
                        "$ref": "#/components/responses/TooMany"
                    },
                    "403": {
                        "$ref": "#/components/responses/PremiumRequired"
                    },
                    "422": {
                        "$ref": "#/components/responses/Invalid"
                    }
                },
                "x-codeSamples": [
                    {
                        "lang": "curl",
                        "label": "curl",
                        "source": "curl -s \\\n  -H \"X-Api-Key: ANAHTARIN\" \\\n  \"https://api.atlas.musapekel.com/api/public/v1/box-office\""
                    },
                    {
                        "lang": "javascript",
                        "label": "JavaScript",
                        "source": "const res = await fetch('https://api.atlas.musapekel.com/api/public/v1/box-office', {\n  headers: { 'X-Api-Key': process.env.CINEATLAS_API_KEY }\n});\nif (!res.ok) throw new Error((await res.json()).error);\nconst { data } = await res.json();\nconsole.log(data);"
                    },
                    {
                        "lang": "php",
                        "label": "PHP",
                        "source": "$ch = curl_init('https://api.atlas.musapekel.com/api/public/v1/box-office');\ncurl_setopt_array($ch, [\n    CURLOPT_RETURNTRANSFER => true,\n    CURLOPT_HTTPHEADER => ['X-Api-Key: ' . getenv('CINEATLAS_API_KEY')],\n]);\n$body = json_decode(curl_exec($ch), true);\nprint_r($body['data']);"
                    },
                    {
                        "lang": "python",
                        "label": "Python",
                        "source": "import os, requests\n\nr = requests.get(\n    'https://api.atlas.musapekel.com/api/public/v1/box-office',\n    headers={'X-Api-Key': os.environ['CINEATLAS_API_KEY']},\n    timeout=10,\n)\nr.raise_for_status()\nprint(r.json()['data'])"
                    }
                ]
            }
        }
    }
}