{"count":237,"endpoints":[{"method":"GET","path":"/v1/text/reverse","category":"Texto","summary":"Inverte o texto","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"}],"popcat":"/v2/reverse","missing":[]},{"method":"GET","path":"/v1/text/mock","category":"Texto","summary":"tExTo ZoMbAnDo (SpongeBob case)","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"isso é muito sério"}],"popcat":"/v2/mock","missing":[]},{"method":"GET","path":"/v1/text/doublestruck","category":"Texto","summary":"𝕋𝕖𝕩𝕥𝕠 𝕕𝕠𝕦𝕓𝕝𝕖-𝕤𝕥𝕣𝕦𝕔𝕜","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"}],"popcat":"/v2/doublestruck","missing":[]},{"method":"GET","path":"/v1/text/fancy","category":"Texto","summary":"Fontes Unicode (bold, script, fraktur, circled, fullwidth...)","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"},{"name":"style","type":"enum","options":["all","doublestruck","bold","italic","script","fraktur","monospace","circled","smallcaps","fullwidth"],"default":"all","description":"Estilo"}],"missing":[]},{"method":"GET","path":"/v1/text/upsidedown","category":"Texto","summary":"ʇxǝʇ ɐpɐʇɹǝʌuı","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"}],"missing":[]},{"method":"GET","path":"/v1/text/zalgo","category":"Texto","summary":"T̸̢e̷x̵t̶o̴ ̷z̵a̶l̸g̷o̵","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"},{"name":"intensity","type":"integer","min":1,"max":20,"default":5,"description":"Diacríticos por letra"}],"missing":[]},{"method":"GET","path":"/v1/text/leet","category":"Texto","summary":"1337 5p34k","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"}],"missing":[]},{"method":"GET","path":"/v1/text/vaporwave","category":"Texto","summary":"Ｖａｐｏｒｗａｖｅ (largura total com espaços)","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"}],"missing":[]},{"method":"GET","path":"/v1/text/clap","category":"Texto","summary":"Insere palmas (ou outro emoji) entre as palavras","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá mundo"},{"name":"emoji","type":"string","default":"👏","maxLength":16,"description":"Separador"}],"missing":[]},{"method":"GET","path":"/v1/text/case","category":"Texto","summary":"Converte caixa: camel, snake, kebab, pascal, title, upper, lower, constant","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"meu texto de exemplo"},{"name":"to","type":"enum","options":["all","camel","pascal","snake","kebab","constant","title","upper","lower","sentence","dot"],"default":"all","description":"Formato"}],"missing":[]},{"method":"GET","path":"/v1/text/slugify","category":"Texto","summary":"Gera slug para URL","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Ação & Reação — Capítulo 1!"}],"missing":[]},{"method":"GET","path":"/v1/text/stats","category":"Texto","summary":"Contagem de caracteres, palavras, frases, tempo de leitura","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Era uma vez um gato. Ele gostava de API."}],"missing":[]},{"method":"GET","path":"/v1/text/palindrome","category":"Texto","summary":"Verifica se é palíndromo","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Socorram-me, subi no ônibus em Marrocos"}],"missing":[]},{"method":"GET","path":"/v1/text/lorem","category":"Texto","summary":"Lorem ipsum","returns":"json","params":[{"name":"paragraphs","type":"integer","min":1,"max":20,"default":1,"description":"Parágrafos"},{"name":"sentences","type":"integer","min":1,"max":20,"default":5,"description":"Frases por parágrafo"}],"missing":[]},{"method":"POST","path":"/v1/text/diff","category":"Texto","summary":"Diff linha a linha entre dois textos","returns":"json","params":[{"name":"a","type":"text","required":true,"description":"Texto original","example":"um\ndois\ntrês"},{"name":"b","type":"text","required":true,"description":"Texto novo","example":"um\n2\ntrês\nquatro"}],"missing":[]},{"method":"GET","path":"/v1/text/morse","category":"Texto","summary":"Texto → código Morse","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"SOS"}],"popcat":"/v2/texttomorse","missing":[]},{"method":"GET","path":"/v1/text/unmorse","category":"Texto","summary":"Código Morse → texto","returns":"json","params":[{"name":"morse","type":"text","required":true,"description":"Use espaço entre letras e / entre palavras","example":"... --- ..."}],"missing":[]},{"method":"GET","path":"/v1/text/binary/encode","category":"Texto","summary":"Texto → binário (UTF-8)","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Oi"}],"popcat":"/v2/encode","missing":[]},{"method":"GET","path":"/v1/text/binary/decode","category":"Texto","summary":"Binário → texto","returns":"json","params":[{"name":"binary","type":"text","required":true,"description":"Bits (espaços opcionais)","example":"01001111 01101001"}],"popcat":"/v2/decode","missing":[]},{"method":"GET","path":"/v1/text/encode","category":"Texto","summary":"Codifica: base64, base64url, hex, url, html, rot13, unicode-escape","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"Olá & <mundo>"},{"name":"type","type":"enum","options":["base64","base64url","hex","url","html","rot13","unicode","base32"],"default":"base64","description":"Codificação"}],"missing":[]},{"method":"GET","path":"/v1/text/decode","category":"Texto","summary":"Decodifica: base64, base64url, hex, url, html, rot13, base32","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"T2zDoSAmIDxtdW5kbz4="},{"name":"type","type":"enum","options":["base64","base64url","hex","url","html","rot13","base32"],"default":"base64","description":"Codificação"}],"missing":[]},{"method":"GET","path":"/v1/text/hash","category":"Texto","summary":"Hash SHA-1/256/384/512 e MD5","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"senha123"},{"name":"algorithm","type":"enum","options":["all","md5","sha1","sha256","sha384","sha512"],"default":"all","description":"Algoritmo"}],"missing":[]},{"method":"GET","path":"/v1/text/jwt","category":"Texto","summary":"Decodifica um JWT (sem verificar assinatura)","returns":"json","params":[{"name":"token","type":"text","required":true,"description":"JWT","example":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMiLCJuYW1lIjoiQW5hIiwiaWF0IjoxNzAwMDAwMDAwfQ.x"}],"missing":[]},{"method":"POST","path":"/v1/text/json","category":"Texto","summary":"Valida, formata ou minifica JSON","returns":"json","params":[{"name":"json","type":"text","required":true,"description":"JSON","example":"{\"a\":1,\"b\":[1,2]}"},{"name":"mode","type":"enum","options":["pretty","minify"],"default":"pretty","description":"Saída"}],"missing":[]},{"method":"GET","path":"/v1/text/regex","category":"Texto","summary":"Testa expressão regular","returns":"json","params":[{"name":"pattern","type":"string","required":true,"description":"Regex (sem barras)","example":"(\\d+)-(\\w+)"},{"name":"flags","type":"string","default":"g","maxLength":8,"description":"Flags (g, i, m, s, u)"},{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"12-abc e 34-xyz"}],"missing":[]},{"method":"GET","path":"/v1/text/roman","category":"Texto","summary":"Converte número ↔ algarismos romanos","returns":"json","params":[{"name":"value","type":"string","required":true,"description":"Número (1-3999) ou romano","example":"2026"}],"missing":[]},{"method":"GET","path":"/v1/text/number-to-words","category":"Texto","summary":"Número por extenso (pt-BR), inclusive em reais","returns":"json","params":[{"name":"number","type":"number","required":true,"min":-1000000000000000,"max":1000000000000000,"description":"Número","example":1234.56},{"name":"currency","type":"boolean","default":false,"description":"Formatar como R$"}],"missing":[]},{"method":"GET","path":"/v1/text/base-convert","category":"Texto","summary":"Converte número entre bases (2–36)","returns":"json","params":[{"name":"value","type":"string","required":true,"description":"Número","example":"ff"},{"name":"from","type":"integer","min":2,"max":36,"default":16,"description":"Base de origem"}],"missing":[]},{"method":"GET","path":"/v1/text/lolcat","category":"Texto","summary":"Tradutor LOLcat (inglês → lolspeak)","returns":"json","params":[{"name":"text","type":"text","required":true,"description":"Texto de entrada","example":"hello, can i have a cheeseburger please"}],"popcat":"/v2/lulcat","missing":[]},{"method":"POST","path":"/v1/text/markdown","category":"Texto","summary":"Markdown → HTML (GFM: tabelas, listas, código)","returns":"json","params":[{"name":"markdown","type":"text","required":true,"maxLength":200000,"description":"Markdown","example":"# Olá\n\n- **negrito**\n- `código`\n\n| a | b |\n|---|---|\n| 1 | 2 |"},{"name":"sanitize","type":"boolean","default":true,"description":"Remover HTML bruto/scripts"}],"missing":[]},{"method":"GET","path":"/v1/text/password-strength","category":"Texto","summary":"Força de senha (entropia, tempo estimado para quebrar, dicas)","returns":"json","params":[{"name":"password","type":"string","required":true,"maxLength":256,"description":"Senha","example":"Tr0ub4dor&3"}],"missing":[]},{"method":"GET","path":"/v1/fun/8ball","category":"Diversão","summary":"Bola 8 mágica","returns":"json","params":[{"name":"question","type":"string","description":"Sua pergunta (opcional)","example":"Vou ficar rico?"},{"name":"lang","type":"enum","options":["pt","en"],"default":"pt","description":"Idioma"}],"popcat":"/v2/8ball","missing":[]},{"method":"GET","path":"/v1/fun/joke","category":"Diversão","summary":"Piada aleatória","returns":"json","params":[{"name":"lang","type":"enum","options":["pt","en"],"default":"pt","description":"Idioma"}],"popcat":"/v2/joke","missing":[]},{"method":"GET","path":"/v1/fun/fact","category":"Diversão","summary":"Curiosidade aleatória","returns":"json","params":[{"name":"lang","type":"enum","options":["pt","en"],"default":"pt","description":"Idioma"}],"popcat":"/v2/fact","missing":[]},{"method":"GET","path":"/v1/fun/showerthought","category":"Diversão","summary":"Pensamento de banho","returns":"json","params":[{"name":"lang","type":"enum","options":["pt","en"],"default":"pt","description":"Idioma"}],"popcat":"/v2/showerthoughts","missing":[]},{"method":"GET","path":"/v1/fun/wyr","category":"Diversão","summary":"Você prefere...?","returns":"json","params":[{"name":"lang","type":"enum","options":["pt","en"],"default":"pt","description":"Idioma"}],"popcat":"/v2/wyr","missing":[]},{"method":"GET","path":"/v1/fun/quote","category":"Diversão","summary":"Citação aleatória","returns":"json","params":[],"missing":[]},{"method":"GET","path":"/v1/fun/advice","category":"Diversão","summary":"Conselho aleatório","returns":"json","params":[],"missing":[]},{"method":"GET","path":"/v1/fun/truth-or-dare","category":"Diversão","summary":"Verdade ou desafio","returns":"json","params":[{"name":"type","type":"enum","options":["random","truth","dare"],"default":"random","description":"Tipo"}],"missing":[]},{"method":"GET","path":"/v1/fun/love","category":"Diversão","summary":"Calculadora do amor (determinística)","returns":"json","params":[{"name":"name1","type":"string","required":true,"maxLength":100,"description":"Pessoa 1","example":"Romeu"},{"name":"name2","type":"string","required":true,"maxLength":100,"description":"Pessoa 2","example":"Julieta"}],"missing":[]},{"method":"GET","path":"/v1/random/coin","category":"Aleatório","summary":"Cara ou coroa","returns":"json","params":[{"name":"times","type":"integer","min":1,"max":1000,"default":1,"description":"Lançamentos"}],"missing":[]},{"method":"GET","path":"/v1/random/dice","category":"Aleatório","summary":"Rola dados (notação 2d6+3)","returns":"json","params":[{"name":"roll","type":"string","default":"1d6","maxLength":30,"description":"Notação NdM±K","example":"3d20+2"}],"missing":[]},{"method":"GET","path":"/v1/random/number","category":"Aleatório","summary":"Número aleatório num intervalo","returns":"json","params":[{"name":"min","type":"number","default":1,"description":"Mínimo"},{"name":"max","type":"number","default":100,"description":"Máximo"},{"name":"count","type":"integer","min":1,"max":1000,"default":1,"description":"Quantidade"},{"name":"decimal","type":"boolean","default":false,"description":"Permitir decimais"}],"missing":[]},{"method":"GET","path":"/v1/random/choose","category":"Aleatório","summary":"Escolhe item(s) de uma lista / embaralha","returns":"json","params":[{"name":"options","type":"text","required":true,"description":"Itens separados por vírgula ou |","example":"pizza, sushi, hambúrguer"},{"name":"count","type":"integer","min":1,"max":100,"default":1,"description":"Quantos escolher"}],"missing":[]},{"method":"GET","path":"/v1/random/uuid","category":"Aleatório","summary":"UUID v4 / v7","returns":"json","params":[{"name":"count","type":"integer","min":1,"max":100,"default":1,"description":"Quantidade"},{"name":"version","type":"enum","options":["4","7"],"default":"4","description":"Versão"}],"missing":[]},{"method":"GET","path":"/v1/random/password","category":"Aleatório","summary":"Gerador de senhas seguras","returns":"json","params":[{"name":"length","type":"integer","min":4,"max":256,"default":16,"description":"Tamanho"},{"name":"count","type":"integer","min":1,"max":50,"default":1,"description":"Quantidade"},{"name":"symbols","type":"boolean","default":true,"description":"Incluir símbolos"},{"name":"numbers","type":"boolean","default":true,"description":"Incluir números"},{"name":"uppercase","type":"boolean","default":true,"description":"Incluir maiúsculas"}],"missing":[]},{"method":"GET","path":"/v1/random/person","category":"Aleatório","summary":"Pessoa fictícia (dados de teste, CPF válido gerado)","returns":"json","params":[{"name":"count","type":"integer","min":1,"max":50,"default":1,"description":"Quantidade"}],"missing":[]},{"method":"GET","path":"/v1/color/info","category":"Cores","summary":"Informações de uma cor (rgb, hsl, cmyk, nome, contraste)","returns":"json","params":[{"name":"color","type":"string","required":true,"description":"Hex, rgb(…) ou nome CSS","example":"#ff7a00"}],"popcat":"/v2/color","missing":[]},{"method":"GET","path":"/v1/color/random","category":"Cores","summary":"Cor aleatória","returns":"json","params":[],"popcat":"/v2/randomcolor","missing":[]},{"method":"GET","path":"/v1/color/palette","category":"Cores","summary":"Paletas: complementar, análoga, tríade, tétrade, tons","returns":"json","params":[{"name":"color","type":"string","required":true,"description":"Hex, rgb(…) ou nome CSS","example":"#ff7a00"}],"missing":[]},{"method":"GET","path":"/v1/color/contrast","category":"Cores","summary":"Contraste WCAG entre duas cores","returns":"json","params":[{"name":"fg","type":"string","required":true,"description":"Cor do texto","example":"#ffffff"},{"name":"bg","type":"string","required":true,"description":"Cor do fundo","example":"#ff7a00"}],"missing":[]},{"method":"GET","path":"/v1/color/mix","category":"Cores","summary":"Mistura duas cores","returns":"json","params":[{"name":"a","type":"string","required":true,"description":"Cor A","example":"#ff0000"},{"name":"b","type":"string","required":true,"description":"Cor B","example":"#0000ff"},{"name":"weight","type":"number","min":0,"max":1,"default":0.5,"description":"Peso de B (0–1)"},{"name":"steps","type":"integer","min":2,"max":50,"default":5,"description":"Passos do gradiente"}],"missing":[]},{"method":"GET","path":"/v1/color/image","category":"Cores","summary":"Imagem sólida/gradiente de uma cor","returns":"image","params":[{"name":"color","type":"string","required":true,"description":"Cor","example":"#ff7a00"},{"name":"color2","type":"string","description":"Segunda cor (gradiente)"},{"name":"width","type":"integer","min":1,"max":2000,"default":300,"description":"Largura"},{"name":"height","type":"integer","min":1,"max":2000,"default":300,"description":"Altura"},{"name":"label","type":"boolean","default":false,"description":"Escrever o hex"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/lookup/github","category":"Consultas","summary":"Perfil de usuário do GitHub","returns":"json","params":[{"name":"username","type":"string","required":true,"maxLength":39,"description":"Usuário","example":"torvalds"}],"popcat":"/v2/github/:username","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/github-repo","category":"Consultas","summary":"Repositório do GitHub","returns":"json","params":[{"name":"repo","type":"string","required":true,"description":"owner/nome","example":"honojs/hono"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/npm","category":"Consultas","summary":"Pacote do npm","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Nome do pacote","example":"hono"}],"popcat":"/v2/npm","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/pypi","category":"Consultas","summary":"Pacote do PyPI","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Nome do pacote","example":"scrapling"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/weather","category":"Consultas","summary":"Clima atual + previsão de 7 dias (Open-Meteo)","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Cidade","example":"São Paulo"},{"name":"lang","type":"enum","options":["pt","en","es"],"default":"pt","description":"Idioma dos nomes"}],"popcat":"/v2/weather","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/country","category":"Consultas","summary":"Informações de um país","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Nome ou código do país","example":"Brasil"}],"popcat":"/v2/country","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/itunes","category":"Consultas","summary":"Busca música no iTunes","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Busca","example":"Garota de Ipanema"},{"name":"entity","type":"enum","options":["song","album","musicArtist","movie","podcast","ebook","software"],"default":"song","description":"Tipo"},{"name":"country","type":"string","default":"BR","maxLength":2,"description":"Loja (país)"}],"popcat":"/v2/itunes","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/lyrics","category":"Consultas","summary":"Letra de música (LRCLIB, inclui letra sincronizada)","returns":"json","params":[{"name":"song","type":"string","required":true,"description":"Música (e artista)","example":"Aquarela Toquinho"}],"popcat":"/v2/lyrics","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/steam","category":"Consultas","summary":"Jogo da Steam","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Nome do jogo","example":"Hollow Knight"},{"name":"cc","type":"string","default":"br","maxLength":2,"description":"País (preço)"}],"popcat":"/v2/steam","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/movie","category":"Consultas","summary":"Filme/série (OMDb se configurado, senão iTunes/TVmaze)","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Título","example":"Cidade de Deus"}],"popcat":"/v2/imdb","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/tvshow","category":"Consultas","summary":"Série de TV (TVmaze) com episódios","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Série","example":"Breaking Bad"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/anime","category":"Consultas","summary":"Anime (Jikan/MyAnimeList)","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Título","example":"Naruto"},{"name":"type","type":"enum","options":["anime","manga"],"default":"anime","description":"Tipo"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/subreddit","category":"Consultas","summary":"Informações de um subreddit","returns":"json","params":[{"name":"subreddit","type":"string","required":true,"maxLength":50,"description":"Nome","example":"brasil"}],"popcat":"/v2/subreddit/:subreddit","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/random/meme","category":"Aleatório","summary":"Meme aleatório do Reddit","returns":"json","params":[{"name":"subreddit","type":"string","maxLength":50,"description":"Subreddit (padrão: memes)","example":"eu_nvr"}],"popcat":"/v2/meme","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/random/car","category":"Aleatório","summary":"Foto aleatória de carro","returns":"json","params":[],"popcat":"/v2/car","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/random/animal","category":"Aleatório","summary":"Foto aleatória de animal (cachorro, gato, raposa, pato...)","returns":"json","params":[{"name":"type","type":"enum","options":["random","dog","cat","fox","duck","shiba"],"default":"random","description":"Animal"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/periodic-table","category":"Consultas","summary":"Elemento da tabela periódica","returns":"json","params":[{"name":"element","type":"string","description":"Símbolo, nome ou número atômico (vazio = aleatório)","example":"Fe"}],"popcat":"/v2/periodic-table","requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/dictionary","category":"Consultas","summary":"Dicionário (en: dictionaryapi.dev; pt e outros: Wiktionary)","returns":"json","params":[{"name":"word","type":"string","required":true,"maxLength":80,"description":"Palavra","example":"saudade"},{"name":"lang","type":"string","default":"pt","maxLength":5,"description":"Idioma (pt, en, es...)"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/urban","category":"Consultas","summary":"Urban Dictionary","returns":"json","params":[{"name":"term","type":"string","required":true,"maxLength":100,"description":"Termo","example":"yeet"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/wikipedia","category":"Consultas","summary":"Resumo da Wikipédia","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Artigo","example":"Santos Dumont"},{"name":"lang","type":"string","default":"pt","maxLength":5,"description":"Idioma da Wikipédia"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/currency","category":"Consultas","summary":"Conversão de moedas (BCE via Frankfurter)","returns":"json","params":[{"name":"from","type":"string","default":"USD","maxLength":3,"description":"Moeda de origem"},{"name":"to","type":"string","default":"BRL","maxLength":40,"description":"Destino(s), separadas por vírgula"},{"name":"amount","type":"number","default":1,"min":0,"description":"Valor"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/crypto","category":"Consultas","summary":"Cotação de criptomoedas (CoinGecko)","returns":"json","params":[{"name":"coins","type":"string","default":"bitcoin,ethereum","description":"IDs CoinGecko separados por vírgula"},{"name":"vs","type":"string","default":"brl,usd","description":"Moedas fiat"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/pokemon","category":"Consultas","summary":"Pokédex","returns":"json","params":[{"name":"name","type":"string","required":true,"maxLength":40,"description":"Nome ou número","example":"pikachu"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/book","category":"Consultas","summary":"Livros (Open Library)","returns":"json","params":[{"name":"q","type":"string","required":true,"description":"Título, autor ou ISBN","example":"Dom Casmurro"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/recipe","category":"Consultas","summary":"Receitas (TheMealDB)","returns":"json","params":[{"name":"q","type":"string","description":"Prato (vazio = aleatório)","example":"lasagna"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/cocktail","category":"Consultas","summary":"Drinks (TheCocktailDB)","returns":"json","params":[{"name":"q","type":"string","description":"Drink (vazio = aleatório)","example":"caipirinha"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/xkcd","category":"Consultas","summary":"Tirinha xkcd (número ou aleatória)","returns":"json","params":[{"name":"num","type":"integer","min":1,"description":"Número (vazio = aleatória)"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/trivia","category":"Consultas","summary":"Pergunta de quiz (Open Trivia DB)","returns":"json","params":[{"name":"difficulty","type":"enum","options":["any","easy","medium","hard"],"default":"any","description":"Dificuldade"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/holidays","category":"Consultas","summary":"Feriados nacionais de qualquer país (Nager.Date)","returns":"json","params":[{"name":"country","type":"string","default":"BR","maxLength":2,"description":"Código do país"},{"name":"year","type":"integer","min":1900,"max":2100,"description":"Ano (padrão: atual)"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/lookup/earthquakes","category":"Consultas","summary":"Terremotos recentes (USGS)","returns":"json","params":[{"name":"period","type":"enum","options":["hour","day","week"],"default":"day","description":"Período"},{"name":"min","type":"enum","options":["significant","4.5","2.5","1.0","all"],"default":"4.5","description":"Magnitude mínima"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/net/ip","category":"Rede","summary":"Geolocalização de IP (vazio = seu IP)","returns":"json","params":[{"name":"ip","type":"string","maxLength":45,"description":"IPv4/IPv6 (opcional)","example":"1.1.1.1"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/net/dns","category":"Rede","summary":"Consulta DNS (DoH 1.1.1.1)","returns":"json","params":[{"name":"name","type":"string","required":true,"maxLength":253,"description":"Domínio","example":"cloudflare.com"},{"name":"type","type":"enum","options":["A","AAAA","CNAME","MX","TXT","NS","SOA","CAA","SRV","PTR","HTTPS","ANY"],"default":"A","description":"Tipo de registro"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/net/whois","category":"Rede","summary":"WHOIS/RDAP de domínio","returns":"json","params":[{"name":"domain","type":"string","required":true,"maxLength":253,"description":"Domínio","example":"github.com"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/net/email","category":"Rede","summary":"Valida e-mail: sintaxe, MX do domínio, descartável, erro de digitação","returns":"json","params":[{"name":"email","type":"string","required":true,"maxLength":254,"description":"E-mail","example":"fulano@gmial.com"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/cep","category":"Brasil","summary":"Endereço pelo CEP (BrasilAPI v2, com coordenadas)","returns":"json","params":[{"name":"cep","type":"string","required":true,"maxLength":9,"description":"CEP","example":"01310-100"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/cnpj","category":"Brasil","summary":"Dados de empresa pelo CNPJ (Receita via BrasilAPI)","returns":"json","params":[{"name":"cnpj","type":"string","required":true,"maxLength":18,"description":"CNPJ","example":"00.000.000/0001-91"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/ddd","category":"Brasil","summary":"Estado e cidades de um DDD","returns":"json","params":[{"name":"ddd","type":"string","required":true,"maxLength":3,"description":"DDD","example":"11"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/banks","category":"Brasil","summary":"Bancos brasileiros (código COMPE/ISPB)","returns":"json","params":[{"name":"code","type":"string","maxLength":5,"description":"Código do banco (vazio = todos)","example":"260"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/holidays","category":"Brasil","summary":"Feriados nacionais do Brasil","returns":"json","params":[{"name":"year","type":"integer","min":1900,"max":2199,"description":"Ano (padrão: atual)"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/rates","category":"Brasil","summary":"Taxas oficiais (Selic, CDI, IPCA)","returns":"json","params":[{"name":"name","type":"enum","options":["all","selic","cdi","ipca"],"default":"all","description":"Taxa"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/fipe","category":"Brasil","summary":"Preço FIPE de veículo pelo código FIPE","returns":"json","params":[{"name":"code","type":"string","required":true,"maxLength":10,"description":"Código FIPE","example":"001004-9"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/isbn","category":"Brasil","summary":"Livro pelo ISBN (BrasilAPI)","returns":"json","params":[{"name":"isbn","type":"string","required":true,"maxLength":17,"description":"ISBN","example":"9788545702870"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/domain","category":"Brasil","summary":"Disponibilidade de domínio .br (Registro.br)","returns":"json","params":[{"name":"domain","type":"string","required":true,"maxLength":100,"description":"Domínio","example":"google.com.br"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/ibge/cities","category":"Brasil","summary":"Municípios de uma UF (IBGE)","returns":"json","params":[{"name":"uf","type":"string","required":true,"maxLength":2,"description":"UF","example":"SC"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/br/validate","category":"Brasil","summary":"Valida CPF, CNPJ, CEP, telefone, placa, PIS, título de eleitor","returns":"json","params":[{"name":"type","type":"enum","options":["cpf","cnpj","cep","phone","plate","pis"],"required":true,"description":"Tipo","example":"cpf"},{"name":"value","type":"string","required":true,"maxLength":30,"description":"Valor","example":"529.982.247-25"}],"missing":[]},{"method":"GET","path":"/v1/br/generate","category":"Brasil","summary":"Gera CPF/CNPJ válidos para TESTES","returns":"json","params":[{"name":"type","type":"enum","options":["cpf","cnpj"],"default":"cpf","description":"Tipo"},{"name":"count","type":"integer","min":1,"max":100,"default":1,"description":"Quantidade"},{"name":"formatted","type":"boolean","default":true,"description":"Com pontuação"}],"missing":[]},{"method":"GET","path":"/v1/br/pix","category":"Brasil","summary":"Gera PIX copia-e-cola (BR Code) + link para QR Code","returns":"json","params":[{"name":"key","type":"string","required":true,"maxLength":77,"description":"Chave PIX (CPF, e-mail, telefone +55..., aleatória)","example":"contato@exemplo.com"},{"name":"name","type":"string","required":true,"maxLength":60,"description":"Nome do recebedor","example":"Maria Silva"},{"name":"city","type":"string","required":true,"maxLength":40,"description":"Cidade","example":"São Paulo"},{"name":"amount","type":"number","min":0.01,"max":1000000000,"description":"Valor (opcional)","example":10.5},{"name":"txid","type":"string","maxLength":25,"description":"Identificador (opcional)"},{"name":"description","type":"string","maxLength":60,"description":"Mensagem (opcional)"}],"missing":[]},{"method":"GET","path":"/v1/web/meta","category":"Web","summary":"Metadados de página: título, descrição, Open Graph, Twitter, ícones","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/scrape","category":"Web","summary":"Extrai dados por seletores CSS (HTMLRewriter, sem JS)","description":"Passe `selector` (um seletor) ou `selectors` como JSON {\"nome\": \"seletor\"}. Para páginas que dependem de JavaScript use /v1/web/render ou /v1/web/scrapling.","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"selector","type":"string","description":"Seletor CSS único","example":"h1, p"},{"name":"selectors","type":"text","maxLength":5000,"description":"JSON {nome: seletor}","example":"{\"titulos\":\"h1\",\"links\":\"a[href]\"}"},{"name":"limit","type":"integer","min":1,"max":1000,"default":100,"description":"Máximo por seletor"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/links","category":"Web","summary":"Lista todos os links de uma página","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"internal","type":"boolean","default":false,"description":"Só links do mesmo domínio"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/text","category":"Web","summary":"Texto legível / Markdown de uma página","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"max","type":"integer","min":100,"max":200000,"default":20000,"description":"Máximo de caracteres"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/is-url","category":"Web","summary":"Verifica se uma URL é válida e responde","returns":"json","params":[{"name":"url","type":"string","required":true,"description":"URL","example":"https://example.com"}],"popcat":"/v2/is-url","missing":[]},{"method":"GET","path":"/v1/web/status","category":"Web","summary":"Status, tempo de resposta e cadeia de redirecionamentos","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/headers","category":"Web","summary":"Cabeçalhos HTTP + análise de segurança","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/robots","category":"Web","summary":"Lê robots.txt e sitemaps","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/feed","category":"Web","summary":"Converte feed RSS/Atom em JSON","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://g1.globo.com/rss/g1/"},{"name":"limit","type":"integer","min":1,"max":200,"default":20,"description":"Itens"}],"requires":["network"],"missing":[]},{"method":"GET","path":"/v1/web/favicon","category":"Web","summary":"Favicon de um domínio (redireciona para a imagem)","returns":"redirect","params":[{"name":"domain","type":"string","required":true,"description":"Domínio","example":"github.com"},{"name":"size","type":"integer","min":16,"max":256,"default":64,"description":"Tamanho"}],"missing":[]},{"method":"GET","path":"/v1/web/screenshot","category":"Web","summary":"Screenshot de site (Chrome headless)","returns":"binary","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"width","type":"integer","min":320,"max":1920,"default":1280,"description":"Largura"},{"name":"height","type":"integer","min":240,"max":1440,"default":800,"description":"Altura"},{"name":"full_page","type":"boolean","default":false,"description":"Página inteira"},{"name":"type","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato"}],"popcat":"/v2/screenshot","requires":["browser"],"missing":[]},{"method":"GET","path":"/v1/web/pdf","category":"Web","summary":"Gera PDF de uma página (Chrome headless)","returns":"binary","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"landscape","type":"boolean","default":false,"description":"Paisagem"}],"requires":["browser"],"missing":[]},{"method":"GET","path":"/v1/web/render","category":"Web","summary":"HTML/Markdown após executar JavaScript (Chrome headless)","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"output","type":"enum","options":["markdown","html"],"default":"markdown","description":"Saída"}],"requires":["browser"],"missing":[]},{"method":"POST","path":"/v1/web/scrapling","category":"Web","summary":"Scraping avançado (CSS/XPath, seletores adaptativos)","description":"Processado pelo nosso serviço de scraping. O primeiro acesso após um tempo parado pode levar até 1 minuto.","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL","example":"https://example.com"},{"name":"selectors","type":"text","maxLength":5000,"description":"JSON {nome: seletor CSS ou XPath}","example":"{\"titulo\":\"h1::text\",\"links\":\"a::attr(href)\"}"},{"name":"mode","type":"enum","options":["static"],"default":"static","description":"static = HTTP rápido (para JS use /v1/web/render)"},{"name":"adaptive","type":"boolean","default":false,"description":"Seletores adaptativos (re-encontram elementos após mudanças no site)"}],"requires":["scrapling"],"missing":[]},{"method":"GET","path":"/v1/util/time","category":"Utilidades","summary":"Hora atual em qualquer fuso","returns":"json","params":[{"name":"tz","type":"string","default":"America/Sao_Paulo","maxLength":64,"description":"Fuso IANA","example":"Asia/Tokyo"}],"missing":[]},{"method":"GET","path":"/v1/util/timestamp","category":"Utilidades","summary":"Converte Unix timestamp ↔ data ISO","returns":"json","params":[{"name":"value","type":"string","required":true,"maxLength":40,"description":"Unix (s ou ms) ou data","example":"1700000000"}],"missing":[]},{"method":"GET","path":"/v1/util/datediff","category":"Utilidades","summary":"Diferença entre datas / idade / contagem regressiva","returns":"json","params":[{"name":"from","type":"string","required":true,"maxLength":40,"description":"Data inicial","example":"1990-05-20"},{"name":"to","type":"string","maxLength":40,"description":"Data final (padrão: agora)"}],"missing":[]},{"method":"GET","path":"/v1/util/convert","category":"Utilidades","summary":"Conversor de unidades (comprimento, massa, temperatura, dados...)","returns":"json","params":[{"name":"value","type":"number","required":true,"description":"Valor","example":10},{"name":"from","type":"string","required":true,"maxLength":10,"description":"Unidade de origem","example":"km"},{"name":"to","type":"string","required":true,"maxLength":10,"description":"Unidade destino","example":"mi"}],"missing":[]},{"method":"GET","path":"/v1/util/calc","category":"Utilidades","summary":"Calculadora (+ − × ÷ ^ %, sqrt, sin, log, pi, fatorial)","returns":"json","params":[{"name":"expr","type":"string","required":true,"maxLength":500,"description":"Expressão","example":"2^10 + sqrt(16) * (3 - 1)"}],"missing":[]},{"method":"GET","path":"/v1/util/url-parse","category":"Utilidades","summary":"Decompõe uma URL em partes","returns":"json","params":[{"name":"url","type":"string","required":true,"description":"URL","example":"https://user@exemplo.com:8080/a/b?x=1&y=2#topo"}],"missing":[]},{"method":"GET","path":"/v1/util/useragent","category":"Utilidades","summary":"Analisa um User-Agent (vazio = o seu)","returns":"json","params":[{"name":"ua","type":"string","maxLength":1000,"description":"User-Agent"}],"missing":[]},{"method":"GET","path":"/v1/util/bmi","category":"Utilidades","summary":"IMC (índice de massa corporal)","returns":"json","params":[{"name":"weight","type":"number","required":true,"min":1,"max":500,"description":"Peso (kg)","example":70},{"name":"height","type":"number","required":true,"min":0.5,"max":300,"description":"Altura (m ou cm)","example":1.75}],"missing":[]},{"method":"GET","path":"/v1/status","category":"Utilidades","summary":"Status da SELVAPI e dos serviços parceiros","returns":"json","params":[],"missing":[]},{"method":"GET","path":"/v1/stats","category":"Utilidades","summary":"Uso da API: endpoints mais chamados e total por dia","returns":"json","params":[{"name":"days","type":"integer","min":1,"max":90,"default":7,"description":"Período em dias"}],"missing":[]},{"method":"GET","path":"/v1/image/meme","category":"Imagens: memes","summary":"Meme clássico: texto em cima e embaixo","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"top","type":"string","required":false,"maxLength":500,"description":"Texto","example":"QUANDO O DEPLOY"},{"name":"bottom","type":"string","required":false,"maxLength":500,"description":"Texto","example":"FUNCIONA DE PRIMEIRA"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/compare","category":"Imagens: memes","summary":"Dois painéis: rejeita em cima, aprova embaixo (formato 'drake')","returns":"image","params":[{"name":"text1","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Escrever testes"},{"name":"text2","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Testar em produção"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/drake","missing":[]},{"method":"GET","path":"/v1/image/fancy","category":"Imagens: memes","summary":"Dois painéis: normal vs. sofisticado (formato 'pooh')","returns":"image","params":[{"name":"text1","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Café"},{"name":"text2","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Grão especial extraído a 93°C"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/pooh","missing":[]},{"method":"GET","path":"/v1/image/happysad","category":"Imagens: memes","summary":"Dois painéis: feliz em cima, triste embaixo","returns":"image","params":[{"name":"text1","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Sexta-feira"},{"name":"text2","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Segunda-feira"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/happysad","missing":[]},{"method":"GET","path":"/v1/image/tweet","category":"Imagens: memes","summary":"Post estilo rede social (nome, @, avatar, texto)","description":"Substitui o /biden da popcat por um post genérico — não imitamos pessoas reais.","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Acabei de subir 150 endpoints no free tier da Cloudflare 🚀"},{"name":"name","type":"string","default":"SELVAPI","maxLength":50,"description":"Nome"},{"name":"username","type":"string","default":"selvapi","maxLength":30,"description":"@usuário"},{"name":"avatar","type":"file","description":"URL do avatar (opcional)"},{"name":"likes","type":"integer","min":0,"default":1337,"description":"Curtidas"},{"name":"theme","type":"enum","options":["dark","light"],"default":"dark","description":"Tema"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/biden","missing":[]},{"method":"GET","path":"/v1/image/wisdom","category":"Imagens: memes","summary":"Citação de mestre sábio (formato 'oogway')","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Ontem é história, amanhã é um mistério, hoje é uma dádiva."},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/oogway","missing":[]},{"method":"GET","path":"/v1/image/surprised","category":"Imagens: memes","summary":"Rosto surpreso com legenda (formato 'pikachu')","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Eu: não faço backup. Meu HD: queima. Eu:"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/pikachu","missing":[]},{"method":"GET","path":"/v1/image/alert","category":"Imagens: memes","summary":"Alerta estilo celular","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Sua bateria social está em 1%"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/alert","missing":[]},{"method":"GET","path":"/v1/image/caution","category":"Imagens: memes","summary":"Placa de cuidado","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Desenvolvedor sem café"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/caution","missing":[]},{"method":"GET","path":"/v1/image/facts","category":"Imagens: memes","summary":"Livro de fatos ('facts')","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Tabs são melhores que espaços"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/facts","missing":[]},{"method":"GET","path":"/v1/image/unforgivable","category":"Imagens: memes","summary":"Lista de coisas imperdoáveis","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Colocar abacaxi na pizza"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/unforgivable","missing":[]},{"method":"GET","path":"/v1/image/sadcat","category":"Imagens: memes","summary":"Gato triste com legenda","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Quando o build falha na sexta às 18h"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/sadcat","missing":[]},{"method":"GET","path":"/v1/image/redbox","category":"Imagens: memes","summary":"Logo em caixa vermelha estilo streetwear","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"SELVAPI"},{"name":"color","type":"color","default":"#e5242b","description":"Cor da caixa"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/supreme","missing":[]},{"method":"GET","path":"/v1/image/achievement","category":"Imagens: memes","summary":"Notificação de conquista desbloqueada","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Subiu para produção sem quebrar nada"},{"name":"title","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Conquista desbloqueada!"},{"name":"icon","type":"file","description":"Ícone (URL, opcional)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/demotivational","category":"Imagens: memes","summary":"Pôster desmotivacional","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"title","type":"string","required":true,"maxLength":500,"description":"Texto","example":"PRODUTIVIDADE"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Amanhã eu começo, com certeza."},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/couldread","category":"Imagens: memes","summary":"\"Se eu soubesse ler, ficaria bravo\" com imagem","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Seu código não tem testes"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/couldread","missing":[]},{"method":"GET","path":"/v1/image/opinion","category":"Imagens: memes","summary":"Pessoa com balão de opinião","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Na minha opinião, segunda-feira deveria ser feriado"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/opinion","missing":[]},{"method":"GET","path":"/v1/image/quote","category":"Imagens: memes","summary":"Card de citação com avatar e nome","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"A melhor maneira de prever o futuro é criá-lo."},{"name":"name","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Peter Drucker"},{"name":"font","type":"enum","options":["sans","serif"],"default":"serif","description":"Fonte"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/quote","missing":[]},{"method":"GET","path":"/v1/image/chat","category":"Imagens: memes","summary":"Mensagem estilo chat (formato 'discord message')","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"Avatar (URL)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"alguém sabe por que funciona na minha máquina?"},{"name":"username","type":"string","default":"dev","maxLength":32,"description":"Nome"},{"name":"color","type":"color","default":"#ffffff","description":"Cor do nome"},{"name":"timestamp","type":"string","maxLength":30,"description":"Horário exibido"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/discord-message","missing":[]},{"method":"GET","path":"/v1/image/jail","category":"Imagens: memes","summary":"Atrás das grades","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/jail","missing":[]},{"method":"GET","path":"/v1/image/wanted","category":"Imagens: memes","summary":"Cartaz de procurado","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"reward","type":"string","default":"R$ 1.000.000","maxLength":30,"description":"Recompensa"},{"name":"name","type":"string","maxLength":40,"description":"Nome (opcional)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/wanted","missing":[]},{"method":"GET","path":"/v1/image/ad","category":"Imagens: memes","summary":"Imagem como anúncio de TV","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":false,"maxLength":500,"description":"Texto","example":"COMPRE AGORA!"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/ad","missing":[]},{"method":"GET","path":"/v1/image/clown","category":"Imagens: memes","summary":"Transforma o avatar em palhaço","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/clown","missing":[]},{"method":"GET","path":"/v1/image/drip","category":"Imagens: memes","summary":"Avatar com estilo (óculos + corrente de ouro)","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/drip","missing":[]},{"method":"GET","path":"/v1/image/jokeoverhead","category":"Imagens: memes","summary":"A piada passou por cima da cabeça","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":false,"maxLength":500,"description":"Texto","example":"a piada"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/jokeoverhead","missing":[]},{"method":"GET","path":"/v1/image/candy","category":"Imagens: memes","summary":"Avatar como confeito de chocolate (formato 'mnm')","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"color","type":"color","default":"#1d6fd8","description":"Cor do confeito"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/mnm","missing":[]},{"method":"GET","path":"/v1/image/reveal","category":"Imagens: memes","summary":"Revelação: \"na verdade era...\" (formato 'uncover')","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":false,"maxLength":500,"description":"Texto","example":"O tempo todo era ele"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/uncover","missing":[]},{"method":"GET","path":"/v1/image/nokia","category":"Imagens: memes","summary":"Imagem na tela de um celular antigo","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/nokia","missing":[]},{"method":"GET","path":"/v1/image/ship","category":"Imagens: memes","summary":"Ship de dois avatares com porcentagem","returns":"image","params":[{"name":"user1","type":"file","required":true,"description":"Avatar 1 (URL)","example":"https://picsum.photos/id/237/400/400"},{"name":"user2","type":"file","required":true,"description":"Avatar 2 (URL)","example":"https://picsum.photos/id/237/400/400"},{"name":"name1","type":"string","maxLength":40,"description":"Nome 1 (usado na %)"},{"name":"name2","type":"string","maxLength":40,"description":"Nome 2"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/ship","missing":[]},{"method":"GET","path":"/v1/image/versus","category":"Imagens: memes","summary":"Quem venceria? (duas imagens)","returns":"image","params":[{"name":"image1","type":"file","required":true,"description":"Imagem 1","example":"https://picsum.photos/id/237/400/400"},{"name":"image2","type":"file","required":true,"description":"Imagem 2","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":false,"maxLength":500,"description":"Texto","example":"QUEM VENCERIA?"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/whowouldwin","missing":[]},{"method":"GET","path":"/v1/image/captcha","category":"Imagens: memes","summary":"Captcha \"selecione todas as imagens com...\"","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"pessoas incríveis"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/welcome","category":"Imagens: memes","summary":"Card de boas-vindas (Discord/comunidades)","returns":"image","params":[{"name":"background","type":"file","description":"Imagem de fundo (URL, opcional)"},{"name":"avatar","type":"file","required":true,"description":"Avatar (URL)","example":"https://picsum.photos/id/64/256/256"},{"name":"text1","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Ana Silva"},{"name":"text2","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Bem-vinda ao servidor!"},{"name":"text3","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Membro #1.024"},{"name":"color","type":"color","default":"#7c3aed","description":"Cor de destaque"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/welcomecard","missing":[]},{"method":"GET","path":"/v1/image/certificate","category":"Imagens: memes","summary":"Certificado personalizado","returns":"image","params":[{"name":"name","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Maria Souza"},{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"pela conclusão do curso de APIs na borda"},{"name":"title","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Certificado de Conclusão"},{"name":"signature","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Equipe SELVAPI"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/gun","category":"Imagens: memes","summary":"Mão com pistola de brinquedo apontada + legenda","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"text","type":"string","required":false,"maxLength":500,"description":"Texto","example":"ME DÁ O WI-FI","default":"ME DÁ O WI-FI"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/gun","missing":[]},{"method":"GET","path":"/v1/filter/greyscale","category":"Imagens: filtros","summary":"Filtro: greyscale","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/greyscale","missing":[]},{"method":"GET","path":"/v1/filter/invert","category":"Imagens: filtros","summary":"Filtro: invert","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/invert","missing":[]},{"method":"GET","path":"/v1/filter/blur","category":"Imagens: filtros","summary":"Filtro: blur","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"amount","type":"number","min":0,"max":360,"description":"Intensidade"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/blur","missing":[]},{"method":"GET","path":"/v1/filter/sepia","category":"Imagens: filtros","summary":"Filtro: sepia","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/brightness","category":"Imagens: filtros","summary":"Filtro: brightness","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"amount","type":"number","min":0,"max":360,"description":"Intensidade"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/contrast","category":"Imagens: filtros","summary":"Filtro: contrast","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"amount","type":"number","min":0,"max":360,"description":"Intensidade"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/saturate","category":"Imagens: filtros","summary":"Filtro: saturate","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"amount","type":"number","min":0,"max":360,"description":"Intensidade"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/hue","category":"Imagens: filtros","summary":"Filtro: hue","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"amount","type":"number","min":0,"max":360,"description":"Graus de rotação"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/threshold","category":"Imagens: filtros","summary":"Filtro: threshold","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/posterize","category":"Imagens: filtros","summary":"Filtro: posterize","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/communism","category":"Imagens: filtros","summary":"Filtro: communism","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/communism","missing":[]},{"method":"GET","path":"/v1/filter/colorify","category":"Imagens: filtros","summary":"Filtro: colorify","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"color","type":"color","default":"#ff0000","description":"Cor"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"popcat":"/v2/colorify","missing":[]},{"method":"GET","path":"/v1/filter/duotone","category":"Imagens: filtros","summary":"Filtro: duotone","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"color","type":"color","default":"#1e1b4b","description":"Cor"},{"name":"color2","type":"color","default":"#f472b6","description":"Cor clara"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/circle","category":"Imagens: filtros","summary":"Recorta a imagem em círculo (avatar)","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"border","type":"color","description":"Cor da borda (opcional)"},{"name":"size","type":"integer","min":32,"max":1024,"default":512,"description":"Tamanho"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/filter/frame","category":"Imagens: filtros","summary":"Moldura / borda com cantos arredondados e sombra","returns":"image","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"color","type":"color","default":"#ffffff","description":"Cor da moldura"},{"name":"padding","type":"integer","min":0,"max":200,"default":30,"description":"Espessura"},{"name":"radius","type":"integer","min":0,"max":300,"default":24,"description":"Raio"},{"name":"background","type":"color","default":"#e5e7eb","description":"Fundo"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/raster/pixelate","category":"Imagens: filtros","summary":"Pixeliza (mosaico) (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"size","type":"integer","min":2,"max":100,"default":12,"description":"Tamanho do bloco"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/resize","category":"Imagens: filtros","summary":"Redimensiona (Lanczos3) (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"width","type":"integer","min":1,"max":4096,"description":"Largura"},{"name":"height","type":"integer","min":1,"max":4096,"description":"Altura"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/rotate","category":"Imagens: filtros","summary":"Rotaciona (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"angle","type":"number","min":-360,"max":360,"default":90,"description":"Graus"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/fliph","category":"Imagens: filtros","summary":"Espelha na horizontal (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/flipv","category":"Imagens: filtros","summary":"Espelha na vertical (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/sharpen","category":"Imagens: filtros","summary":"Nitidez (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/emboss","category":"Imagens: filtros","summary":"Relevo (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/edges","category":"Imagens: filtros","summary":"Detecção de bordas (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/oil","category":"Imagens: filtros","summary":"Pintura a óleo (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"radius","type":"integer","min":1,"max":10,"default":4,"description":"Raio"},{"name":"intensity","type":"number","min":1,"max":100,"default":55,"description":"Intensidade"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/solarize","category":"Imagens: filtros","summary":"Solarizar (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/dither","category":"Imagens: filtros","summary":"Dithering (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"depth","type":"integer","min":1,"max":8,"default":1,"description":"Profundidade"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/raster/convert","category":"Imagens: filtros","summary":"Converte formato / comprime (png, jpeg, webp) (raster, Photon)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"quality","type":"integer","min":1,"max":100,"default":85,"description":"Qualidade JPEG"},{"name":"output","type":"enum","options":["png","jpeg","webp"],"default":"png","description":"Formato de saída"}],"missing":[]},{"method":"GET","path":"/v1/image/pixel-art","category":"Imagens: geradores","summary":"Converte foto em pixel art (paletas PICO-8, Game Boy, NES...)","returns":"binary","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"grid","type":"integer","min":8,"max":256,"default":64,"description":"Resolução em pixels (largura)"},{"name":"palette","type":"enum","options":["auto","none","pico8","gameboy","nes","cga","grayscale","sweetie16","endesga32"],"default":"pico8","description":"Paleta"},{"name":"colors","type":"integer","min":2,"max":64,"default":16,"description":"Cores (paleta auto)"},{"name":"scale","type":"integer","min":1,"max":32,"default":8,"description":"Ampliação"},{"name":"output","type":"enum","options":["png","webp"],"default":"png","description":"Formato"}],"missing":[]},{"method":"POST","path":"/v1/image/colors","category":"Imagens: geradores","summary":"Cores dominantes de uma imagem (paleta)","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"URL da imagem (ou upload via POST multipart)","example":"https://picsum.photos/id/237/400/400"},{"name":"count","type":"integer","min":1,"max":16,"default":6,"description":"Quantidade de cores"}],"missing":[]},{"method":"GET","path":"/v1/image/placeholder","category":"Imagens: geradores","summary":"Imagem placeholder (300x200, cores, texto)","returns":"image","params":[{"name":"width","type":"integer","min":1,"max":4000,"default":600,"description":"Largura"},{"name":"height","type":"integer","min":1,"max":4000,"default":400,"description":"Altura"},{"name":"bg","type":"color","default":"#cbd5e1","description":"Fundo"},{"name":"fg","type":"color","default":"#475569","description":"Texto"},{"name":"text","type":"string","maxLength":100,"description":"Texto (padrão: dimensões)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/avatar","category":"Imagens: geradores","summary":"Avatar com iniciais (cor derivada do nome)","returns":"image","params":[{"name":"name","type":"string","required":true,"maxLength":100,"description":"Nome","example":"Ana Clara"},{"name":"size","type":"integer","min":16,"max":1024,"default":256,"description":"Tamanho"},{"name":"rounded","type":"boolean","default":true,"description":"Circular"},{"name":"bg","type":"color","description":"Fundo (padrão: automático)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/identicon","category":"Imagens: geradores","summary":"Identicon simétrico (estilo GitHub)","returns":"image","params":[{"name":"seed","type":"string","required":true,"maxLength":200,"description":"Texto/semente","example":"pablo@example.com"},{"name":"size","type":"integer","min":16,"max":1024,"default":256,"description":"Tamanho"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/gradient","category":"Imagens: geradores","summary":"Gradiente bonito (aleatório ou com cores)","returns":"image","params":[{"name":"colors","type":"string","maxLength":200,"description":"Cores separadas por vírgula (vazio = aleatório)","example":"#ff7a00,#ff0080,#7928ca"},{"name":"width","type":"integer","min":1,"max":4000,"default":1200,"description":"Largura"},{"name":"height","type":"integer","min":1,"max":4000,"default":630,"description":"Altura"},{"name":"angle","type":"integer","min":0,"max":360,"default":135,"description":"Ângulo"},{"name":"type","type":"enum","options":["linear","radial","mesh"],"default":"linear","description":"Tipo"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/og","category":"Imagens: geradores","summary":"Imagem Open Graph (1200×630) para links/blog","returns":"image","params":[{"name":"title","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Como montei 150 endpoints grátis"},{"name":"subtitle","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Grátis, sem chave e com CORS aberto"},{"name":"site","type":"string","required":false,"maxLength":500,"description":"Texto","example":"selvapi"},{"name":"color","type":"color","default":"#f97316","description":"Cor de destaque"},{"name":"theme","type":"enum","options":["dark","light"],"default":"dark","description":"Tema"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/badge","category":"Imagens: geradores","summary":"Badge estilo shields.io","returns":"image","params":[{"name":"label","type":"string","required":true,"maxLength":500,"description":"Texto","example":"build"},{"name":"message","type":"string","required":true,"maxLength":500,"description":"Texto","example":"passing"},{"name":"color","type":"color","default":"#4c1","description":"Cor da mensagem"},{"name":"labelColor","type":"color","default":"#555","description":"Cor do rótulo"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/progress","category":"Imagens: geradores","summary":"Barra de progresso","returns":"image","params":[{"name":"value","type":"number","required":true,"min":0,"max":100,"description":"Porcentagem","example":72},{"name":"width","type":"integer","min":50,"max":2000,"default":400,"description":"Largura"},{"name":"color","type":"color","default":"#22c55e","description":"Cor"},{"name":"label","type":"string","required":false,"maxLength":500,"description":"Texto","example":""},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/chart","category":"Imagens: geradores","summary":"Gráfico de barras, linha ou pizza","returns":"image","params":[{"name":"type","type":"enum","options":["bar","line","pie","donut"],"default":"bar","description":"Tipo"},{"name":"values","type":"string","required":true,"maxLength":1000,"description":"Números separados por vírgula","example":"12,19,3,5,2,3"},{"name":"labels","type":"string","maxLength":2000,"description":"Rótulos separados por vírgula","example":"Jan,Fev,Mar,Abr,Mai,Jun"},{"name":"title","type":"string","required":false,"maxLength":500,"description":"Texto","example":"Vendas"},{"name":"color","type":"color","default":"#6366f1","description":"Cor (bar/line)"},{"name":"width","type":"integer","min":200,"max":2000,"default":800,"description":"Largura"},{"name":"height","type":"integer","min":150,"max":2000,"default":450,"description":"Altura"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/image/text","category":"Imagens: geradores","summary":"Texto como imagem (fonte, cores, tamanho)","returns":"image","params":[{"name":"text","type":"string","required":true,"maxLength":500,"description":"Texto","example":"Olá, mundo!"},{"name":"color","type":"color","default":"#111111","description":"Cor"},{"name":"bg","type":"string","default":"transparent","maxLength":20,"description":"Fundo (hex ou transparent)"},{"name":"size","type":"integer","min":8,"max":300,"default":64,"description":"Tamanho"},{"name":"font","type":"enum","options":["sans","bold","meme","serif","mono"],"default":"bold","description":"Fonte"},{"name":"width","type":"integer","min":50,"max":3000,"default":1000,"description":"Largura máx."},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/qr","category":"QR & códigos de barras","summary":"Gera QR Code (SVG/PNG, cores, logo no centro)","returns":"image","params":[{"name":"text","type":"text","maxLength":4000,"required":true,"description":"Conteúdo","example":"https://cloudflare.com"},{"name":"size","type":"integer","min":64,"max":2048,"default":512,"description":"Tamanho em px"},{"name":"color","type":"color","default":"#000000","description":"Cor dos módulos"},{"name":"bg","type":"color","default":"#ffffff","description":"Cor de fundo"},{"name":"ecc","type":"enum","options":["L","M","Q","H"],"default":"M","description":"Correção de erro"},{"name":"margin","type":"integer","min":0,"max":20,"default":2,"description":"Margem (módulos)"},{"name":"logo","type":"file","description":"Logo no centro (URL, opcional)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/qr/wifi","category":"QR & códigos de barras","summary":"QR Code para conectar no Wi-Fi","returns":"image","params":[{"name":"ssid","type":"string","required":true,"maxLength":64,"description":"Nome da rede","example":"MinhaCasa"},{"name":"password","type":"string","maxLength":128,"description":"Senha"},{"name":"security","type":"enum","options":["WPA","WEP","nopass"],"default":"WPA","description":"Segurança"},{"name":"hidden","type":"boolean","default":false,"description":"Rede oculta"},{"name":"size","type":"integer","min":64,"max":2048,"default":512,"description":"Tamanho em px"},{"name":"color","type":"color","default":"#000000","description":"Cor dos módulos"},{"name":"bg","type":"color","default":"#ffffff","description":"Cor de fundo"},{"name":"ecc","type":"enum","options":["L","M","Q","H"],"default":"M","description":"Correção de erro"},{"name":"margin","type":"integer","min":0,"max":20,"default":2,"description":"Margem (módulos)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/qr/vcard","category":"QR & códigos de barras","summary":"QR Code de contato (vCard)","returns":"image","params":[{"name":"name","type":"string","required":true,"maxLength":100,"description":"Nome","example":"Maria Souza"},{"name":"phone","type":"string","maxLength":30,"description":"Telefone","example":"+5511999999999"},{"name":"email","type":"string","maxLength":100,"description":"E-mail"},{"name":"org","type":"string","maxLength":100,"description":"Empresa"},{"name":"title","type":"string","maxLength":100,"description":"Cargo"},{"name":"url","type":"string","maxLength":200,"description":"Site"},{"name":"size","type":"integer","min":64,"max":2048,"default":512,"description":"Tamanho em px"},{"name":"color","type":"color","default":"#000000","description":"Cor dos módulos"},{"name":"bg","type":"color","default":"#ffffff","description":"Cor de fundo"},{"name":"ecc","type":"enum","options":["L","M","Q","H"],"default":"M","description":"Correção de erro"},{"name":"margin","type":"integer","min":0,"max":20,"default":2,"description":"Margem (módulos)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/qr/whatsapp","category":"QR & códigos de barras","summary":"QR Code que abre conversa no WhatsApp","returns":"image","params":[{"name":"phone","type":"string","required":true,"maxLength":20,"description":"Número com DDI","example":"5511999999999"},{"name":"message","type":"string","maxLength":1000,"description":"Mensagem"},{"name":"size","type":"integer","min":64,"max":2048,"default":512,"description":"Tamanho em px"},{"name":"color","type":"color","default":"#000000","description":"Cor dos módulos"},{"name":"bg","type":"color","default":"#ffffff","description":"Cor de fundo"},{"name":"ecc","type":"enum","options":["L","M","Q","H"],"default":"M","description":"Correção de erro"},{"name":"margin","type":"integer","min":0,"max":20,"default":2,"description":"Margem (módulos)"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/barcode","category":"QR & códigos de barras","summary":"Código de barras: Code128, EAN-13, DataMatrix, PDF417, Aztec... (100+ tipos)","description":"Tipos comuns: code128, ean13, ean8, upca, upce, code39, code93, itf14, interleaved2of5, datamatrix, pdf417, azteccode, microqrcode, maxicode, gs1-128, isbn, issn, codabar, pharmacode, postnet, dotcode, hanxin, rectangularmicroqrcode. Qualquer bcid do bwip-js é aceito.","returns":"image","params":[{"name":"text","type":"text","maxLength":3000,"required":true,"description":"Conteúdo","example":"7891234567895"},{"name":"type","type":"string","default":"code128","maxLength":40,"description":"Simbologia (bcid)","example":"ean13"},{"name":"scale","type":"integer","min":1,"max":10,"default":3,"description":"Escala"},{"name":"height","type":"number","min":1,"max":100,"default":12,"description":"Altura das barras (mm)"},{"name":"includetext","type":"boolean","default":true,"description":"Mostrar texto"},{"name":"color","type":"color","default":"#000000","description":"Cor"},{"name":"bg","type":"color","default":"#ffffff","description":"Fundo"},{"name":"rotate","type":"enum","options":["N","R","L","I"],"default":"N","description":"Rotação"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"missing":[]},{"method":"GET","path":"/v1/barcode/types","category":"QR & códigos de barras","summary":"Lista de simbologias suportadas","returns":"json","params":[],"missing":[]},{"method":"POST","path":"/v1/qr/read","category":"QR & códigos de barras","summary":"Lê QR Code de uma imagem (upload ou URL)","description":"Decodifica no edge com jsQR. Para ler pela câmera em tempo real use a página /#qr do frontend (roda no navegador).","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"Imagem com o QR (URL, data URI ou upload)","example":"https://api.qrserver.com/v1/create-qr-code/?data=ola&size=300x300"}],"missing":[]},{"method":"POST","path":"/v1/ai/ocr","category":"IA","summary":"OCR: extrai texto de imagem (modelo de visão)","description":"Para OCR ilimitado e offline, o frontend também traz Tesseract.js rodando no navegador (/#ocr).","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"Imagem (upload multipart, data URI ou URL)","example":"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Placa_Avenida_Paulista.jpg/640px-Placa_Avenida_Paulista.jpg"},{"name":"format","type":"enum","options":["text","markdown"],"default":"text","description":"Formato da saída"},{"name":"lang","type":"string","maxLength":30,"description":"Idioma esperado (dica)","example":"português"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/read","category":"IA","summary":"Leitor universal: PDF, DOCX, XLSX, ODT, CSV, HTML, imagens → Markdown","description":"Converte documentos em Markdown. Imagens recebem uma descrição gerada por IA.","returns":"json","params":[{"name":"file","type":"file","required":true,"description":"Arquivo (upload) ou URL","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},{"name":"max","type":"integer","min":100,"max":500000,"default":100000,"description":"Máximo de caracteres"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/describe","category":"IA","summary":"Descreve uma imagem (legenda / acessibilidade)","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"Imagem (upload multipart, data URI ou URL)","example":"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Placa_Avenida_Paulista.jpg/640px-Placa_Avenida_Paulista.jpg"},{"name":"detail","type":"enum","options":["short","long","alt"],"default":"short","description":"Nível de detalhe"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/ask-image","category":"IA","summary":"Pergunte qualquer coisa sobre uma imagem","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"Imagem (upload multipart, data URI ou URL)","example":"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Placa_Avenida_Paulista.jpg/640px-Placa_Avenida_Paulista.jpg"},{"name":"question","type":"string","required":true,"maxLength":1000,"description":"Pergunta","example":"Quantas pessoas aparecem?"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/classify","category":"IA","summary":"Classificação de imagem (ResNet-50, 1000 classes)","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"Imagem (upload multipart, data URI ou URL)","example":"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Placa_Avenida_Paulista.jpg/640px-Placa_Avenida_Paulista.jpg"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/detect","category":"IA","summary":"Detecção de objetos com caixas","returns":"json","params":[{"name":"image","type":"file","required":true,"description":"Imagem (upload multipart, data URI ou URL)","example":"https://upload.wikimedia.org/wikipedia/commons/thumb/a/a5/Placa_Avenida_Paulista.jpg/640px-Placa_Avenida_Paulista.jpg"},{"name":"threshold","type":"number","min":0,"max":1,"default":0.7,"description":"Confiança mínima"}],"requires":["ai"],"missing":[]},{"method":"GET","path":"/v1/ai/chat","category":"IA","summary":"Chatbot (LLM) — compatível com o chatbot da popcat","returns":"json","params":[{"name":"msg","type":"text","required":true,"maxLength":8000,"description":"Mensagem","example":"Me conta uma curiosidade sobre polvos"},{"name":"botname","type":"string","default":"SELVAPI","maxLength":50,"description":"Nome do bot"},{"name":"owner","type":"string","default":"a comunidade","maxLength":50,"description":"Criador do bot"},{"name":"system","type":"text","maxLength":4000,"description":"Instrução de sistema (opcional)"},{"name":"max_tokens","type":"integer","min":16,"max":2048,"default":512,"description":"Máximo de tokens"}],"popcat":"/v2/chatbot","requires":["ai"],"missing":[]},{"method":"GET","path":"/v1/ai/translate","category":"IA","summary":"Tradução (100 idiomas)","returns":"json","params":[{"name":"text","type":"text","required":true,"maxLength":5000,"description":"Texto","example":"The quick brown fox jumps over the lazy dog"},{"name":"to","type":"string","default":"pt","maxLength":5,"description":"Idioma destino (ISO 639-1)"},{"name":"from","type":"string","default":"en","maxLength":5,"description":"Idioma de origem"}],"popcat":"/v2/translate","requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/summarize","category":"IA","summary":"Resume um texto longo (LLM)","returns":"json","params":[{"name":"text","type":"text","required":true,"maxLength":8000,"description":"Texto (até 8.000 caracteres, para poupar o free tier)","example":"Cloudflare Workers lets developers deploy serverless code instantly across the globe. It runs on a network of data centers in more than 300 cities, giving exceptional performance and reliability. The free plan includes 100,000 requests per day."},{"name":"max_length","type":"integer","min":16,"max":400,"default":160,"description":"Tamanho máximo do resumo (tokens)"}],"requires":["ai"],"missing":[]},{"method":"GET","path":"/v1/ai/sentiment","category":"IA","summary":"Análise de sentimento (positivo/negativo)","returns":"json","params":[{"name":"text","type":"text","required":true,"maxLength":2000,"description":"Texto","example":"I love this API!"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/ai/embed","category":"IA","summary":"Embeddings vetoriais (multilíngue)","returns":"json","params":[{"name":"text","type":"text","required":true,"maxLength":8000,"description":"Texto (ou JSON array de textos)","example":"gatos são ótimos"}],"requires":["ai"],"missing":[]},{"method":"GET","path":"/v1/ai/imagine","category":"IA","summary":"Gera imagem a partir de texto (IA própria, AI Horde ou Pollinations)","description":"Com provider=horde, se a fila demorar mais de ~55 s a resposta é 202 com um id para consultar em /v1/ai/horde/status.","returns":"binary","params":[{"name":"prompt","type":"text","required":true,"maxLength":2000,"description":"Descrição","example":"um capivara astronauta tomando café na lua"},{"name":"provider","type":"enum","options":["workers-ai","horde","pollinations"],"default":"workers-ai","description":"workers-ai (rápido, cota diária) · horde (grátis, voluntário, pode demorar) · pollinations"},{"name":"style","type":"enum","options":["none","photo","anime","pixel-art","3d","watercolor","sketch","logo","cyberpunk"],"default":"none","description":"Estilo"},{"name":"width","type":"integer","min":256,"max":1536,"description":"Largura (horde/pollinations)"},{"name":"height","type":"integer","min":256,"max":1536,"description":"Altura (horde/pollinations)"},{"name":"steps","type":"integer","min":1,"max":8,"default":4,"description":"Passos (gerador workers-ai)"},{"name":"seed","type":"integer","min":0,"description":"Semente (reprodutível)"}],"missing":[]},{"method":"POST","path":"/v1/ai/horde/submit","category":"IA","summary":"AI Horde: envia pedido de imagem (grátis, assíncrono)","description":"Rede voluntária de GPUs (github.com/Haidra-Org/AI-Horde). Pode haver fila nos horários de pico.","returns":"json","params":[{"name":"prompt","type":"text","required":true,"maxLength":2000,"description":"Descrição","example":"lighthouse on a cliff at sunset, oil painting"},{"name":"negative","type":"string","maxLength":500,"description":"O que evitar"},{"name":"width","type":"integer","min":64,"max":1024,"default":512,"description":"Largura (múltiplo de 64)"},{"name":"height","type":"integer","min":64,"max":1024,"default":512,"description":"Altura (múltiplo de 64)"},{"name":"steps","type":"integer","min":1,"max":40,"default":20,"description":"Passos"},{"name":"model","type":"string","maxLength":80,"description":"Modelo (vazio = qualquer disponível)"},{"name":"seed","type":"integer","min":0,"description":"Semente"}],"missing":[]},{"method":"GET","path":"/v1/ai/horde/status","category":"IA","summary":"AI Horde: status/resultado do pedido","returns":"json","params":[{"name":"id","type":"string","required":true,"maxLength":64,"description":"ID retornado pelo submit"}],"missing":[]},{"method":"GET","path":"/v1/ai/pixel-art","category":"IA","summary":"Gerador de pixel art por IA (com quantização de paleta)","description":"Gera com IA usando prompt de pixel art e depois reduz para uma grade real de pixels com paleta limitada (PICO-8, Game Boy, NES...). Resultado com pixels de verdade, não só 'estilo'.","returns":"binary","params":[{"name":"prompt","type":"text","required":true,"maxLength":1500,"description":"Descrição","example":"cavaleiro com espada flamejante, fundo de castelo"},{"name":"grid","type":"integer","min":16,"max":256,"default":64,"description":"Resolução em pixels"},{"name":"palette","type":"enum","options":["auto","none","pico8","gameboy","nes","cga","grayscale","sweetie16","endesga32"],"default":"auto","description":"Paleta"},{"name":"colors","type":"integer","min":2,"max":64,"default":16,"description":"Cores (auto)"},{"name":"scale","type":"integer","min":1,"max":32,"default":8,"description":"Ampliação"},{"name":"seed","type":"integer","min":0,"description":"Semente"},{"name":"provider","type":"enum","options":["workers-ai","horde","pollinations"],"default":"workers-ai","description":"workers-ai (rápido, cota diária) · horde (grátis, voluntário, pode demorar) · pollinations"}],"missing":[]},{"method":"GET","path":"/v1/ai/tts","category":"IA","summary":"Texto para fala (várias vozes, PT-BR e outros idiomas)","description":"engine=kokoro tem vozes PT-BR mais naturais (pf_dora, pm_alex, pm_santa), quando disponível. Também dá para gerar a voz no próprio navegador em /#tts, grátis e sem limite.","returns":"audio","params":[{"name":"text","type":"text","required":true,"maxLength":3000,"description":"Texto","example":"Olá! Esta é a SELVAPI falando com você."},{"name":"engine","type":"enum","options":["auto","melotts","kokoro"],"default":"auto","description":"Motor (auto = kokoro se configurado)"},{"name":"voice","type":"string","default":"pf_dora","maxLength":40,"description":"Voz (motor kokoro)"},{"name":"lang","type":"enum","options":["pt","en","es","fr","ja","zh","ko"],"default":"pt","description":"Idioma"},{"name":"speed","type":"number","min":0.5,"max":2,"default":1,"description":"Velocidade (motor kokoro)"}],"requires":["ai"],"missing":[]},{"method":"GET","path":"/v1/ai/tts/voices","category":"IA","summary":"Vozes disponíveis (motor kokoro)","returns":"json","params":[],"missing":[]},{"method":"POST","path":"/v1/ai/stt","category":"IA","summary":"Fala para texto / transcrição","returns":"json","params":[{"name":"audio","type":"file","required":true,"description":"Áudio (mp3, wav, ogg, m4a…) — upload ou URL"},{"name":"language","type":"string","maxLength":5,"description":"Idioma (ex: pt)"}],"requires":["ai"],"missing":[]},{"method":"POST","path":"/v1/short","category":"Armazenamento","summary":"Encurta uma URL","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"URL longa","example":"https://developers.cloudflare.com/workers/"},{"name":"slug","type":"string","maxLength":32,"description":"Apelido personalizado (opcional)"}],"popcat":"/v2/shorten","requires":["db"],"missing":[]},{"method":"GET","path":"/v1/short/stats","category":"Armazenamento","summary":"Estatísticas de um link curto","returns":"json","params":[{"name":"code","type":"string","required":true,"maxLength":32,"description":"Código"}],"requires":["db"],"missing":[]},{"method":"POST","path":"/v1/paste","category":"Armazenamento","summary":"Pastebin: salva texto/código e devolve um link","returns":"json","params":[{"name":"content","type":"text","required":true,"maxLength":500000,"description":"Conteúdo","example":"console.log('olá')"},{"name":"title","type":"string","maxLength":200,"description":"Título"},{"name":"language","type":"string","maxLength":30,"description":"Linguagem (destaque)","example":"javascript"},{"name":"expires","type":"enum","options":["never","1h","1d","7d","30d"],"default":"never","description":"Expiração"}],"popcat":"/v2/create","requires":["db"],"missing":[]},{"method":"GET","path":"/v1/paste/get","category":"Armazenamento","summary":"Lê um paste (JSON)","returns":"json","params":[{"name":"id","type":"string","required":true,"maxLength":20,"description":"ID"}],"requires":["db"],"missing":[]},{"method":"GET","path":"/v1/counter","category":"Armazenamento","summary":"Contador de visitas (badge SVG para READMEs)","returns":"image","params":[{"name":"key","type":"string","required":true,"maxLength":100,"description":"Identificador único","example":"meu-repo"},{"name":"label","type":"string","default":"visitas","maxLength":30,"description":"Rótulo"},{"name":"increment","type":"boolean","default":true,"description":"Incrementar"},{"name":"format","type":"enum","options":["svg","png"],"default":"svg","description":"Formato de saída. PNG é renderizado no edge (usa mais CPU)."}],"requires":["db"],"missing":[]},{"method":"GET","path":"/v1/media/info","category":"Mídia","summary":"Metadados de vídeo/áudio: título, duração, formatos, thumbnail","description":"Processado pelo nosso serviço de mídia. Baixe só conteúdo que você tem direito de baixar; os termos de alguns sites (ex.: YouTube) proíbem downloads.","returns":"json","params":[{"name":"url","type":"url","required":true,"description":"Link do vídeo/áudio (YouTube, Vimeo, SoundCloud, TikTok, Instagram, X, arquivos diretos… 1800+ sites)","example":"https://www.youtube.com/watch?v=aqz-KE-bpKQ"}],"requires":["media"],"missing":[]},{"method":"GET","path":"/v1/media/download","category":"Mídia","summary":"Baixa vídeo em MP4/WebM ou áudio em MP3/M4A/Opus/WAV/FLAC","description":"Processado pelo nosso serviço de mídia. Baixe só conteúdo que você tem direito de baixar; os termos de alguns sites (ex.: YouTube) proíbem downloads.","returns":"binary","params":[{"name":"url","type":"url","required":true,"description":"Link do vídeo/áudio (YouTube, Vimeo, SoundCloud, TikTok, Instagram, X, arquivos diretos… 1800+ sites)","example":"https://www.youtube.com/watch?v=aqz-KE-bpKQ"},{"name":"format","type":"enum","options":["mp3","m4a","opus","wav","flac","mp4","webm","mkv"],"default":"mp4","description":"Formato"},{"name":"quality","type":"string","default":"best","maxLength":5,"description":"Vídeo: best, 1080, 720, 480, 360 · Áudio: 320, 192, 128 (kbps)"}],"requires":["media"],"missing":[]},{"method":"POST","path":"/v1/media/convert","category":"Mídia","summary":"Converte/corta mídia (vídeo→MP3, MP4, WebM, GIF…)","description":"Para arquivos até ~100 MB (limite de upload). Para arquivos maiores, use a aba Mídia do site, que converte no próprio navegador.","returns":"binary","params":[{"name":"file","type":"file","required":true,"description":"Arquivo de áudio/vídeo (upload ou URL)"},{"name":"to","type":"enum","options":["mp3","m4a","ogg","wav","flac","mp4","webm","gif"],"default":"mp3","description":"Formato de saída"},{"name":"start","type":"string","maxLength":12,"description":"Início (ex: 5 ou 00:00:05)"},{"name":"end","type":"string","maxLength":12,"description":"Fim (ex: 00:00:20)"},{"name":"bitrate","type":"string","maxLength":6,"description":"Ex: 128k (áudio) ou 1M (vídeo)"},{"name":"width","type":"integer","min":16,"max":3840,"description":"Largura (vídeo/GIF)"},{"name":"fps","type":"integer","min":1,"max":60,"description":"FPS (GIF)"}],"requires":["media"],"missing":[]},{"method":"POST","path":"/v1/pdf/info","category":"PDF","summary":"Informações do PDF: páginas, tamanhos, metadados","returns":"json","params":[{"name":"file","type":"file","required":true,"description":"PDF (upload ou URL)","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}],"missing":[]},{"method":"POST","path":"/v1/pdf/merge","category":"PDF","summary":"Junta até 10 PDFs em um","returns":"binary","params":[{"name":"file1","type":"file","required":true,"description":"Arquivo 1"},{"name":"file2","type":"file","required":true,"description":"Arquivo 2"},{"name":"file3","type":"file","required":false,"description":"Arquivo 3"},{"name":"file4","type":"file","required":false,"description":"Arquivo 4"},{"name":"file5","type":"file","required":false,"description":"Arquivo 5"},{"name":"file6","type":"file","required":false,"description":"Arquivo 6"},{"name":"file7","type":"file","required":false,"description":"Arquivo 7"},{"name":"file8","type":"file","required":false,"description":"Arquivo 8"},{"name":"file9","type":"file","required":false,"description":"Arquivo 9"},{"name":"file10","type":"file","required":false,"description":"Arquivo 10"}],"missing":[]},{"method":"POST","path":"/v1/pdf/pages","category":"PDF","summary":"Extrai/reordena páginas (ex: 1-3,5,8-)","returns":"binary","params":[{"name":"file","type":"file","required":true,"description":"PDF (upload ou URL)","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},{"name":"pages","type":"string","required":true,"maxLength":500,"description":"Páginas (1-3,5,8-)","example":"1"}],"missing":[]},{"method":"POST","path":"/v1/pdf/split","category":"PDF","summary":"Divide o PDF: um arquivo por página (ZIP)","returns":"binary","params":[{"name":"file","type":"file","required":true,"description":"PDF (upload ou URL)","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"}],"missing":[]},{"method":"POST","path":"/v1/pdf/rotate","category":"PDF","summary":"Gira páginas (90, 180, 270)","returns":"binary","params":[{"name":"file","type":"file","required":true,"description":"PDF (upload ou URL)","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},{"name":"angle","type":"enum","options":["90","180","270"],"default":"90","description":"Ângulo"},{"name":"pages","type":"string","maxLength":500,"description":"Páginas (padrão: todas)"}],"missing":[]},{"method":"POST","path":"/v1/pdf/watermark","category":"PDF","summary":"Marca d'água de texto em todas as páginas","returns":"binary","params":[{"name":"file","type":"file","required":true,"description":"PDF (upload ou URL)","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},{"name":"text","type":"string","default":"CONFIDENCIAL","maxLength":80,"description":"Texto"},{"name":"opacity","type":"number","min":0.02,"max":1,"default":0.15,"description":"Opacidade"},{"name":"color","type":"color","default":"#ff0000","description":"Cor"}],"missing":[]},{"method":"POST","path":"/v1/pdf/from-images","category":"PDF","summary":"Converte imagens PNG/JPEG em PDF (1 por página)","returns":"binary","params":[{"name":"file1","type":"file","required":true,"description":"Imagem 1 (PNG/JPEG)"},{"name":"file2","type":"file","required":false,"description":"Imagem 2 (PNG/JPEG)"},{"name":"file3","type":"file","required":false,"description":"Imagem 3 (PNG/JPEG)"},{"name":"file4","type":"file","required":false,"description":"Imagem 4 (PNG/JPEG)"},{"name":"file5","type":"file","required":false,"description":"Imagem 5 (PNG/JPEG)"},{"name":"file6","type":"file","required":false,"description":"Imagem 6 (PNG/JPEG)"},{"name":"file7","type":"file","required":false,"description":"Imagem 7 (PNG/JPEG)"},{"name":"file8","type":"file","required":false,"description":"Imagem 8 (PNG/JPEG)"},{"name":"file9","type":"file","required":false,"description":"Imagem 9 (PNG/JPEG)"},{"name":"file10","type":"file","required":false,"description":"Imagem 10 (PNG/JPEG)"},{"name":"size","type":"enum","options":["fit","a4"],"default":"fit","description":"Página do tamanho da imagem ou A4"}],"missing":[]},{"method":"POST","path":"/v1/pdf/metadata","category":"PDF","summary":"Altera título, autor, assunto e palavras-chave","returns":"binary","params":[{"name":"file","type":"file","required":true,"description":"PDF (upload ou URL)","example":"https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf"},{"name":"title","type":"string","maxLength":300,"description":"Título"},{"name":"author","type":"string","maxLength":200,"description":"Autor"},{"name":"subject","type":"string","maxLength":300,"description":"Assunto"},{"name":"keywords","type":"string","maxLength":500,"description":"Palavras-chave (vírgula)"}],"missing":[]}]}