{"openapi":"3.0.3","info":{"title":"MobinApi","description":"Gateway unificat pentru AI și servicii publice (LLM, Wikidata, Geo, Weather, Currency, Crypto, etc.). Toate endpoint-urile necesită Bearer token (cheie virtuală creată în /dashboard/keys).","version":"1.0.0","contact":{"url":"https://mobinapi.com"}},"servers":[{"url":"https://mobinapi.com"}],"tags":[{"name":"LLM Chat Completions","description":"Modele de limbaj prin proxy MobinApi (Claude, GPT, Grok și altele). Format compatibil OpenAI."},{"name":"Wikidata","description":"Knowledge graph public — caută entități, rulează SPARQL, obține detalii pentru un Q-ID. Cache automat."},{"name":"Geocoding (OpenStreetMap)","description":"Conversie adresă ↔ coordonate prin Nominatim. Gratis și nelimitat, cache 24h."},{"name":"Weather (Open-Meteo)","description":"Date meteo curente + forecast 16 zile. Gratis, fără API key extern, cache 10 min."},{"name":"Countries (REST Countries)","description":"Informații complete despre țări: populație, monedă, drapel, limbi, fus orar, etc. Cache 7 zile."},{"name":"Public Holidays","description":"Sărbători legale per țară și an, prin Nager.Date. Util pentru calendar / scheduling. Cache 30 zile."},{"name":"Currency Exchange (ECB)","description":"Rate de schimb oficiale BCE. Conversie + istoric pe interval. Cache 1h / 24h."},{"name":"IP Geolocation","description":"Detalii despre o adresă IP: țară, oraș, ISP, fus orar, coordonate. Util pentru analytics + fraud check."},{"name":"Quotes","description":"Citate celebre random. Util pentru loading screens, daily inspiration, content fillers."},{"name":"Random Facts","description":"Fapte aleatorii (Useless Facts API). Util pentru content fillers, trivia bots, daily emails."},{"name":"Dictionary","description":"Definiții, pronunție, sinonime și exemple pentru cuvinte (DictionaryAPI.dev). Cache 30 zile."},{"name":"Crypto Prices","description":"Preț crypto live + market cap + variație 24h (CoinGecko free). Cache 60s."},{"name":"Hacker News","description":"Căutare în Hacker News (Algolia). Util pentru tech monitoring + tendințe. Cache 5 min."},{"name":"Cat Facts","description":"Fapte random despre pisici (catfact.ninja). Util pentru content fillers."},{"name":"Dog Images","description":"Imagini random cu câini (dog.ceo). Suport pentru rasă specifică."},{"name":"Jokes","description":"Glume random (JokeAPI). Safe-mode activ implicit, configurable."},{"name":"Advice","description":"Sfaturi random (adviceslip.com). Util pentru loading screens, daily quotes."},{"name":"Random User","description":"Generator utilizatori falși realiști (randomuser.me). Util pentru testing, seeding, mockups."},{"name":"Pokémon","description":"Date complete despre orice Pokémon (PokeAPI). Cache 24h."},{"name":"Wikipedia Summary","description":"Rezumat + thumbnail + extract pentru un articol Wikipedia (REST API oficial). Cache 1h."},{"name":"GitHub Public","description":"Date publice GitHub: detalii repo (stele, fork-uri, limbaj, licență), profil utilizator. Cache 10-30 min."},{"name":"NPM Registry","description":"Date pachet npm: versiuni, dependencies, downloads, autori, repository. Cache 1h."},{"name":"NASA APOD","description":"Astronomy Picture of the Day — imagine + explicație științifică, zilnic. Cache 6h."},{"name":"Stack Overflow Search","description":"Căutare în Stack Overflow (Stack Exchange API). Util pentru documentation + Q&A. Cache 5 min."},{"name":"arXiv Papers","description":"Căutare papers academice arXiv (CS, math, physics, etc.). Util pentru research. Cache 1h."},{"name":"Open Library","description":"Lookup carte după ISBN — titlu, autori, publisher, copertă, descriere. Cache 30 zile."},{"name":"Word Relations","description":"Datamuse — sinonime, antonime, rime, cuvinte similare. Util pentru NLP, content tools, jocuri. Cache 7 zile."},{"name":"World Bank Indicators","description":"Date economice oficiale Banca Mondială: GDP, populație, inflație. 1500+ indicatori, 200+ țări, istoric 60 ani. Cache 24h."},{"name":"ISS Tracker","description":"Poziție live a Stației Spațiale Internaționale (Open Notify). Lat/lon real-time + numărul astronauților curent în spațiu."},{"name":"World Time","description":"Timp curent + DST info pentru orice fus orar IANA. WorldTimeAPI. Util pentru aplicații multi-region."},{"name":"Air Quality","description":"Calitate aer (AQI european + US, PM2.5, PM10, NO2, SO2, ozone). Open-Meteo Air Quality API, free. Cache 30 min."},{"name":"My IP","description":"Detectează IP-ul caller-ului din request headers (X-Forwarded-For, X-Real-IP). Util pentru 'what's my IP' tools, debugging proxy chains."},{"name":"Trivia Questions","description":"Open Trivia DB — întrebări multiple-choice random. 24 categorii, 3 difficulty levels. Util pentru quiz apps, educational tools."},{"name":"Cocktail Recipes","description":"TheCocktailDB — rețete de cocktail-uri random cu ingrediente, instrucțiuni, imagine. Util pentru aplicații de bar / lifestyle."},{"name":"Food Recipes","description":"TheMealDB — rețete de mâncare random cu ingrediente, instrucțiuni step-by-step, video YouTube. Util pentru aplicații culinare."},{"name":"QR Code Generator","description":"Generator de coduri QR. Ia text/URL, returnează imagine PNG/SVG sau data URL base64. Util pentru bilete, link-uri, configurări WiFi."},{"name":"DNS Lookup","description":"DNS over HTTPS via Cloudflare 1.1.1.1. Verifică A, AAAA, MX, TXT, NS, CNAME etc. Cache 5 min, fără API key upstream."},{"name":"HTTP Status Codes","description":"Catalog de coduri HTTP cu nume, descriere și RFC. 60+ coduri (1xx-5xx). Static, fără upstream."},{"name":"IBAN Validator","description":"Validare IBAN cu lookup BIC/SWIFT. Suportă toate țările SEPA + alte 60. Cache 24h. Folosește OpenIBAN (free)."},{"name":"Lorem Ipsum Generator","description":"Text placeholder lorem ipsum. Format paragraphs/sentences/words, count 1-100, seed pentru output deterministic. Static, fără upstream."}],"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","description":"Cheie virtuală MobinApi (sk-...)."}}},"security":[{"BearerAuth":[]}],"paths":{"/api/llm/chat/completions":{"post":{"summary":"LLM Chat Completions","description":"Trimite un prompt și primești răspunsul modelului. Suportă streaming cu stream: true.","tags":["LLM Chat Completions"],"operationId":"llm_post_api_llm_chat_completions","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["model","messages"],"properties":{"model":{"type":"string","example":"claude-sonnet-4-5"},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string","enum":["system","user","assistant"]},"content":{"type":"string"}}}},"stream":{"type":"boolean"},"temperature":{"type":"number"},"max_tokens":{"type":"integer"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/wikidata/search":{"get":{"summary":"Wikidata","description":"Caută entități după text. Parametri: q (obligatoriu), limit (default 10), lang (default en). Cache 5 min.","tags":["Wikidata"],"operationId":"wikidata_get_api_wikidata_search","security":[{"BearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Termen de căutare"},{"name":"limit","in":"query","schema":{"type":"integer"},"description":"Default 10"},{"name":"lang","in":"query","schema":{"type":"string"},"description":"Default en"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/wikidata/sparql":{"post":{"summary":"Wikidata","description":"Rulează un query SPARQL. Body: { query: string }. Limită 10000 caractere. Cache 15 min.","tags":["Wikidata"],"operationId":"wikidata_post_api_wikidata_sparql","security":[{"BearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["query"],"properties":{"query":{"type":"string","description":"Query SPARQL (max 10000 caractere)"}}}}}},"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/wikidata/entity/{qid}":{"get":{"summary":"Wikidata","description":"Detalii complete pentru o entitate Wikidata. QID trebuie să match ^Q\\d+$. Cache 1h.","tags":["Wikidata"],"operationId":"wikidata_get_api_wikidata_entity_qid","security":[{"BearerAuth":[]}],"parameters":[{"name":"qid","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/geo/search":{"get":{"summary":"Geocoding (OpenStreetMap)","description":"Caută adresa și obține coordonate. Parametri: q (obligatoriu), limit (default 10), lang (default ro).","tags":["Geocoding (OpenStreetMap)"],"operationId":"geo_get_api_geo_search","security":[{"BearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"},"description":"Adresă text"},{"name":"limit","in":"query","schema":{"type":"integer"}},{"name":"lang","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/geo/reverse":{"get":{"summary":"Geocoding (OpenStreetMap)","description":"Conversie coordonate → adresă. Parametri: lat, lon (obligatorii), lang (default ro).","tags":["Geocoding (OpenStreetMap)"],"operationId":"geo_get_api_geo_reverse","security":[{"BearerAuth":[]}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number"}},{"name":"lang","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/weather":{"get":{"summary":"Weather (Open-Meteo)","description":"Vremea curentă + forecast pentru o locație. Parametri: lat, lon (obligatorii), days (1-16, default 7).","tags":["Weather (Open-Meteo)"],"operationId":"weather_get_api_weather","security":[{"BearerAuth":[]}],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"}},{"name":"lon","in":"query","required":true,"schema":{"type":"number"}},{"name":"days","in":"query","schema":{"type":"integer"},"description":"1-16, default 7"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/countries/{code}":{"get":{"summary":"Countries (REST Countries)","description":"Detalii pentru o țară. Parametru: cod ISO alpha-2 sau alpha-3 (ex: RO, ROU).","tags":["Countries (REST Countries)"],"operationId":"countries_get_api_countries_code","security":[{"BearerAuth":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/holidays/{country}/{year}":{"get":{"summary":"Public Holidays","description":"Sărbători legale pentru o țară (cod ISO 2 litere) într-un an dat.","tags":["Public Holidays"],"operationId":"holidays_get_api_holidays_country_year","security":[{"BearerAuth":[]}],"parameters":[{"name":"country","in":"path","required":true,"schema":{"type":"string"}},{"name":"year","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/currency":{"get":{"summary":"Currency Exchange (ECB)","description":"Rate curente. Parametri: from (obligatoriu, ISO 3 litere), to (opțional), amount (default 1).","tags":["Currency Exchange (ECB)"],"operationId":"currency_get_api_currency","security":[{"BearerAuth":[]}],"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string"},"description":"ISO 3 litere"},{"name":"to","in":"query","schema":{"type":"string"}},{"name":"amount","in":"query","schema":{"type":"number"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/currency/history":{"get":{"summary":"Currency Exchange (ECB)","description":"Istoric rate. Parametri: from (obligatoriu), to (opțional), start (YYYY-MM-DD obligatoriu), end (default azi). Max 365 zile.","tags":["Currency Exchange (ECB)"],"operationId":"currency_get_api_currency_history","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/ip/{address}":{"get":{"summary":"IP Geolocation","description":"Locație + informații ISP pentru un IP (IPv4 sau IPv6). Cache 24h.","tags":["IP Geolocation"],"operationId":"ip_get_api_ip_address","security":[{"BearerAuth":[]}],"parameters":[{"name":"address","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/quote":{"get":{"summary":"Quotes","description":"Returnează un citat random (autor + text).","tags":["Quotes"],"operationId":"quote_get_api_quote","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/fact":{"get":{"summary":"Random Facts","description":"Returnează un fapt random. Parametru opțional: lang (en|de, default en).","tags":["Random Facts"],"operationId":"fact_get_api_fact","security":[{"BearerAuth":[]}],"parameters":[{"name":"lang","in":"query","schema":{"type":"string"},"description":"en|de"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/dictionary/{word}":{"get":{"summary":"Dictionary","description":"Definiții pentru un cuvânt. Parametru opțional: lang (default en).","tags":["Dictionary"],"operationId":"dictionary_get_api_dictionary_word","security":[{"BearerAuth":[]}],"parameters":[{"name":"word","in":"path","required":true,"schema":{"type":"string"}},{"name":"lang","in":"query","schema":{"type":"string"},"description":"Default en"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/crypto/{coin}":{"get":{"summary":"Crypto Prices","description":"Preț pentru o crypto (id CoinGecko, ex: bitcoin, ethereum). Parametru opțional: vs (default usd,eur).","tags":["Crypto Prices"],"operationId":"crypto_get_api_crypto_coin","security":[{"BearerAuth":[]}],"parameters":[{"name":"coin","in":"path","required":true,"schema":{"type":"string"}},{"name":"vs","in":"query","schema":{"type":"string"},"description":"Default usd,eur"}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/hackernews/search":{"get":{"summary":"Hacker News","description":"Căutare în HN. Parametri: q (obligatoriu), tags (default story), hits (1-50), page (0-50).","tags":["Hacker News"],"operationId":"hackernews_get_api_hackernews_search","security":[{"BearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":true,"schema":{"type":"string"}},{"name":"tags","in":"query","schema":{"type":"string"}},{"name":"hits","in":"query","schema":{"type":"integer"}},{"name":"page","in":"query","schema":{"type":"integer"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/catfact":{"get":{"summary":"Cat Facts","description":"Returnează un fapt random despre pisici.","tags":["Cat Facts"],"operationId":"catfact_get_api_catfact","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/dogimage":{"get":{"summary":"Dog Images","description":"Imagine random. Parametru opțional: breed (ex: husky, beagle, labrador).","tags":["Dog Images"],"operationId":"dogimage_get_api_dogimage","security":[{"BearerAuth":[]}],"parameters":[{"name":"breed","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/joke":{"get":{"summary":"Jokes","description":"Glumă random. Parametri: category (Any|Programming|Misc|Pun|...), lang (en|de|...), safe (default true).","tags":["Jokes"],"operationId":"joke_get_api_joke","security":[{"BearerAuth":[]}],"parameters":[{"name":"category","in":"query","schema":{"type":"string"}},{"name":"lang","in":"query","schema":{"type":"string"}},{"name":"safe","in":"query","schema":{"type":"boolean"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/advice":{"get":{"summary":"Advice","description":"Returnează un sfat random.","tags":["Advice"],"operationId":"advice_get_api_advice","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/randomuser":{"get":{"summary":"Random User","description":"Generează utilizatori. Parametri: results (1-50, default 1), gender (male|female), nat (cod ISO 2 litere, comma-sep).","tags":["Random User"],"operationId":"randomuser_get_api_randomuser","security":[{"BearerAuth":[]}],"parameters":[{"name":"results","in":"query","schema":{"type":"integer"}},{"name":"gender","in":"query","schema":{"type":"string"}},{"name":"nat","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/pokemon/{name}":{"get":{"summary":"Pokémon","description":"Detalii pentru un Pokémon (lowercase, ex: pikachu, charizard).","tags":["Pokémon"],"operationId":"pokemon_get_api_pokemon_name","security":[{"BearerAuth":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/wikipedia/{title}":{"get":{"summary":"Wikipedia Summary","description":"Rezumat articol Wikipedia. Parametru opțional: lang (default en, ex: ro, fr, de).","tags":["Wikipedia Summary"],"operationId":"wikipedia_get_api_wikipedia_title","security":[{"BearerAuth":[]}],"parameters":[{"name":"title","in":"path","required":true,"schema":{"type":"string"}},{"name":"lang","in":"query","schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/github/repo/{owner}/{name}":{"get":{"summary":"GitHub Public","description":"Detalii repo GitHub. Cache 10 min.","tags":["GitHub Public"],"operationId":"github_get_api_github_repo_owner_name","security":[{"BearerAuth":[]}],"parameters":[{"name":"owner","in":"path","required":true,"schema":{"type":"string"}},{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/github/user/{username}":{"get":{"summary":"GitHub Public","description":"Profil utilizator GitHub (urmăritori, repos publice, bio). Cache 30 min.","tags":["GitHub Public"],"operationId":"github_get_api_github_user_username","security":[{"BearerAuth":[]}],"parameters":[{"name":"username","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/npm/package/{name}":{"get":{"summary":"NPM Registry","description":"Detalii pachet npm. Suportă scoped packages (encode @scope/name).","tags":["NPM Registry"],"operationId":"npm_get_api_npm_package_name","security":[{"BearerAuth":[]}],"parameters":[{"name":"name","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/nasa/apod":{"get":{"summary":"NASA APOD","description":"APOD pentru azi. Parametru opțional: date=YYYY-MM-DD pentru o zi anterioară.","tags":["NASA APOD"],"operationId":"nasa_get_api_nasa_apod","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/stackoverflow/search":{"get":{"summary":"Stack Overflow Search","description":"Căutare în Stack Overflow. Parametri: q (obligatoriu), tag (opțional), pagesize (1-50, default 20).","tags":["Stack Overflow Search"],"operationId":"stackoverflow_get_api_stackoverflow_search","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/arxiv/search":{"get":{"summary":"arXiv Papers","description":"Căutare papers. Parametri: q (obligatoriu), max (1-50, default 10). Returnează entries cu titlu, autori, summary, link.","tags":["arXiv Papers"],"operationId":"arxiv_get_api_arxiv_search","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/openlibrary/isbn/{isbn}":{"get":{"summary":"Open Library","description":"Detalii carte după ISBN (10 sau 13 caractere, cu sau fără cratimă).","tags":["Open Library"],"operationId":"openlibrary_get_api_openlibrary_isbn_isbn","security":[{"BearerAuth":[]}],"parameters":[{"name":"isbn","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/words/{word}":{"get":{"summary":"Word Relations","description":"Relații pentru un cuvânt. Parametri: rel (related|synonym|antonym|rhyme|trigger|sounds-like|spelled-like), max (1-100, default 20).","tags":["Word Relations"],"operationId":"words_get_api_words_word","security":[{"BearerAuth":[]}],"parameters":[{"name":"word","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/worldbank/{country}/{indicator}":{"get":{"summary":"World Bank Indicators","description":"Indicator pentru o țară. Country: ISO 2/3 litere sau 'all'. Indicator: cod World Bank (ex: NY.GDP.MKTP.CD = GDP, SP.POP.TOTL = populație). Parametru opțional: date=2020:2023.","tags":["World Bank Indicators"],"operationId":"worldbank_get_api_worldbank_country_indicator","security":[{"BearerAuth":[]}],"parameters":[{"name":"country","in":"path","required":true,"schema":{"type":"string"}},{"name":"indicator","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/iss":{"get":{"summary":"ISS Tracker","description":"Poziție ISS curentă (lat/lon). Parametru opțional: mode=people pentru lista astronauților în spațiu.","tags":["ISS Tracker"],"operationId":"iss_get_api_iss","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/time/{zone}":{"get":{"summary":"World Time","description":"Timp curent pentru un timezone IANA. Format: Region/City (ex: Europe/Bucharest, America/New_York, Asia/Tokyo).","tags":["World Time"],"operationId":"time_get_api_time_zone","security":[{"BearerAuth":[]}],"parameters":[{"name":"zone","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/air-quality":{"get":{"summary":"Air Quality","description":"AQI curent + forecast 3 zile pentru lat/lon. Parametri: lat, lon (obligatorii).","tags":["Air Quality"],"operationId":"air-quality_get_api_air_quality","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/myip":{"get":{"summary":"My IP","description":"IP-ul tău public + headers ce caller a trimis. No-cache (per-request).","tags":["My IP"],"operationId":"myip_get_api_myip","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/trivia":{"get":{"summary":"Trivia Questions","description":"Întrebări trivia. Parametri: amount (1-50, default 10), difficulty (easy|medium|hard), type (multiple|boolean), category (cod numeric, vezi opentdb).","tags":["Trivia Questions"],"operationId":"trivia_get_api_trivia","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/cocktail/random":{"get":{"summary":"Cocktail Recipes","description":"Cocktail random cu ingrediente + instrucțiuni multilingv (EN/ES/DE/FR/IT).","tags":["Cocktail Recipes"],"operationId":"cocktail_get_api_cocktail_random","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/recipe/random":{"get":{"summary":"Food Recipes","description":"Rețetă random cu instrucțiuni + ingrediente + link video.","tags":["Food Recipes"],"operationId":"recipe_get_api_recipe_random","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/qr":{"get":{"summary":"QR Code Generator","description":"Generează QR. Parametri: text (obligatoriu), size (64-1024, default 256), format (png/svg/json), ecc (L/M/Q/H, default M). Format json returnează data URL base64.","tags":["QR Code Generator"],"operationId":"qr_get_api_qr","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/dns/{domain}":{"get":{"summary":"DNS Lookup","description":"Lookup DNS pentru domeniu. Parametru type (A/AAAA/MX/TXT/NS/SOA/PTR/SRV/CAA, default A).","tags":["DNS Lookup"],"operationId":"dns_get_api_dns_domain","security":[{"BearerAuth":[]}],"parameters":[{"name":"domain","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/http-status":{"get":{"summary":"HTTP Status Codes","description":"Listează toate codurile. Parametru opțional category (informational/success/redirect/client_error/server_error).","tags":["HTTP Status Codes"],"operationId":"http-status_get_api_http_status","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/http-status/{code}":{"get":{"summary":"HTTP Status Codes","description":"Detalii pentru un cod specific (3 cifre).","tags":["HTTP Status Codes"],"operationId":"http-status_get_api_http_status_code","security":[{"BearerAuth":[]}],"parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/iban/{iban}":{"get":{"summary":"IBAN Validator","description":"Validează IBAN și returnează banca, BIC, country, account number. Acceptă cu/fără spații.","tags":["IBAN Validator"],"operationId":"iban_get_api_iban_iban","security":[{"BearerAuth":[]}],"parameters":[{"name":"iban","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}},"/api/lorem":{"get":{"summary":"Lorem Ipsum Generator","description":"Generează text. Parametri: format (paragraphs/sentences/words, default paragraphs), count (1-100, default 3), seed (opțional, pentru repeatable output).","tags":["Lorem Ipsum Generator"],"operationId":"lorem_get_api_lorem","security":[{"BearerAuth":[]}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"type":"object"}}}},"400":{"description":"Validation error"},"401":{"description":"Cheie invalidă sau fără acces"},"502":{"description":"Upstream eroare"}}}}}}