← InícioWiki da comunidade →GUIA CAFAU

Documentação

Aprenda a criar, testar e publicar APIs. Selecione um comando para abrir sua ficha com sintaxe, exemplos e observações.

Comece por aqui

Entre com Discord, crie uma API e defina uma rota como usuarios/:id. Método, identificador e código são configurados no editor.

Como funciona uma rota

Segmentos fixos precisam corresponder exatamente. Segmentos iniciados por dois-pontos são parâmetros: usuarios/:id recebe /api/seu-slug/usuarios/123 e disponibiliza id como 123.

Comandos e argumentos

Comandos usam colchetes e argumentos são separados por ponto e vírgula: $add[2;3]. Eles podem ser aninhados: $upper[$trim[ olá ]]. Variáveis duram apenas uma requisição.

Comentários no código

Linhas iniciadas por ## são comentários e não são executadas. Você também pode colocar ## comentário depois de um comando na mesma linha. Use comentários para documentar trechos e deixar seus exemplos mais fáceis de manter.

Retornar JSON

Use $json[...] com JSON válido. Expressões dentro de strings são interpoladas. Exemplo: $json[{"ok":true}].

Criar páginas HTML

Cole um documento pronto em $htmlExec[<!doctype html>...HTML...]. Esse modo devolve o conteúdo sem interpretar comandos CAFAU. Para dados dinâmicos, use $html[$htmlPage[título;descrição;conteúdo]] com $htmlHeading, $htmlCard, $htmlParagraph, $htmlLink, $htmlImage e $htmlList. CSS e JavaScript inline funcionam em sandbox isolado; scripts não acessam cookies nem APIs por fetch, e formulários continuam bloqueados.

Ler a requisição

Use $get[$param[id]] para parâmetros da rota, $get[$query[pagina]] para query string e $get[$body[nome]] para o corpo JSON. Corpos POST, PUT e PATCH aceitam até 64 KB.

Status e cabeçalhos

$status[201] define o status HTTP. $header[X-Modo;demo] adiciona cabeçalho permitido; cookies e cabeçalhos de segurança são protegidos.

Segurança e limites

O código CAFAU não executa JavaScript arbitrário. JavaScript inserido em uma página HTML roda isolado, sem acesso aos cookies nem a fetch; chamadas externas passam por $https. A biblioteca tem limite de 10 KB, 100 comandos e 500 avaliações. Em Configurações, você também pode exigir uma chave Bearer em todas as APIs da sua conta.

Condições: $if, $else e $endif

Para escolher valores numa expressão, use $if[condição;verdadeiro;falso]. Para executar comandos em ramos diferentes, abra um bloco com $if[condição], use $elseif[outra condição] para testar outros casos, $else como alternativa final e feche com $endif. $elseif precisa receber uma condição entre colchetes; para a alternativa final, use $else sem argumentos. Blocos podem ser aninhados; o ramo não escolhido não é executado.

$if[$gte[$number[$get[$body[idade]]];18]]
$json[{"acesso":"permitido"}]
$else
$status[403]
$json[{"erro":"Acesso negado"}]
$endif

false, 0, null e texto vazio contam como falso.

Biblioteca de comandos

175 comandos. Clique em um comando para abrir a ficha detalhada.

Texto 39

Transforme e consulte textos. Exemplo: $upper[$trim[ olá ]].

$upperAbrir ficha ↗

Converte todos os caracteres para maiúsculas.

Sintaxe: $upper[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lowercaseAbrir ficha ↗

Converte todos os caracteres para minúsculas.

Sintaxe: $lowercase[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$capitalizeAbrir ficha ↗

Coloca em maiúscula a primeira letra do texto.

Sintaxe: $capitalize[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$titleAbrir ficha ↗

Coloca em maiúscula a primeira letra de cada palavra.

Sintaxe: $title[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$trimAbrir ficha ↗

Remove espaços no início e no fim.

Sintaxe: $trim[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$trimStartAbrir ficha ↗

Remove espaços em branco apenas do início do texto.

Sintaxe: $trimStart[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$trimEndAbrir ficha ↗

Remove espaços em branco apenas do final do texto.

Sintaxe: $trimEnd[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lengthAbrir ficha ↗

Retorna a quantidade de caracteres ou itens.

Sintaxe: $length[texto ou array JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$charAtAbrir ficha ↗

Retorna o caractere no índice informado; a contagem começa em zero.

Sintaxe: $charAt[texto;índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$substringAbrir ficha ↗

Retorna o trecho entre os índices inicial e final; o índice final não é incluído.

Sintaxe: $substring[texto;início;fim]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$sliceTextAbrir ficha ↗

Extrai uma parte do texto usando início e fim, aceitando índices negativos.

Sintaxe: $sliceText[texto;início;fim]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$replaceAbrir ficha ↗

Substitui a primeira ocorrência de um texto.

Sintaxe: $replace[texto;trecho;substituto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$replaceAllAbrir ficha ↗

Substitui todas as ocorrências do trecho informado.

Sintaxe: $replaceAll[texto;trecho;substituto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$splitAbrir ficha ↗

Divide um texto e retorna um array JSON.

Sintaxe: $split[texto;separador]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$joinAbrir ficha ↗

Junta os valores de um array JSON com o separador escolhido.

Sintaxe: $join[array JSON;separador]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$includesAbrir ficha ↗

Aplica a operação includes ao texto informado e retorna o resultado em texto.

Sintaxe: $includes[texto;trecho]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$containsAbrir ficha ↗

Verifica se o texto contém o trecho informado.

Sintaxe: $contains[texto;trecho]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$startsWithAbrir ficha ↗

Verifica se o texto começa com o prefixo informado.

Sintaxe: $startsWith[texto;prefixo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$endsWithAbrir ficha ↗

Verifica se o texto termina com o sufixo informado.

Sintaxe: $endsWith[texto;sufixo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$indexOfAbrir ficha ↗

Retorna o índice da primeira ocorrência, ou -1 se não encontrar.

Sintaxe: $indexOf[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lastIndexOfAbrir ficha ↗

Retorna o índice da última ocorrência, ou -1 se não encontrar.

Sintaxe: $lastIndexOf[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$repeatAbrir ficha ↗

Repete o texto pela quantidade informada, limitada a 1.000 repetições.

Sintaxe: $repeat[texto;vezes]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$padStartAbrir ficha ↗

Completa o início do texto até o tamanho desejado.

Sintaxe: $padStart[texto;tamanho;preenchimento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$padEndAbrir ficha ↗

Completa o final do texto até o tamanho desejado.

Sintaxe: $padEnd[texto;tamanho;preenchimento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$reverseAbrir ficha ↗

Inverte a ordem dos caracteres do texto.

Sintaxe: $reverse[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$truncateAbrir ficha ↗

Corta o texto no tamanho informado e acrescenta um sufixo opcional.

Sintaxe: $truncate[texto;tamanho;sufixo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$concatAbrir ficha ↗

Concatena todos os argumentos em uma única string.

Sintaxe: $concat[valor;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$slugifyAbrir ficha ↗

Gera identificador para URL, removendo acentos e espaços.

Sintaxe: $slugify[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$encodeUriAbrir ficha ↗

Codifica um valor para uso seguro dentro de uma URL.

Sintaxe: $encodeUri[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$decodeUriAbrir ficha ↗

Decodifica um valor previamente codificado para URL.

Sintaxe: $decodeUri[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$encodeBase64Abrir ficha ↗

Codifica texto em Base64 URL-safe.

Sintaxe: $encodeBase64[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$decodeBase64Abrir ficha ↗

Decodifica texto em Base64 URL-safe.

Sintaxe: $decodeBase64[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$extractBetweenAbrir ficha ↗

Extrai o conteúdo entre dois marcadores.

Sintaxe: $extractBetween[texto;início;fim]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$wordCountAbrir ficha ↗

Conta palavras separadas por espaços em branco.

Sintaxe: $wordCount[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lineCountAbrir ficha ↗

Conta as linhas do texto separadas por quebra de linha.

Sintaxe: $lineCount[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$removeWhitespaceAbrir ficha ↗

Remove todos os espaços e quebras de linha.

Sintaxe: $removeWhitespace[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$normalizeSpaceAbrir ficha ↗

Encurta sequências de espaços para um único espaço e remove espaços das pontas.

Sintaxe: $normalizeSpace[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isBlankAbrir ficha ↗

Retorna true se o texto estiver vazio ou tiver apenas espaços.

Sintaxe: $isBlank[texto;argumento opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$initialsAbrir ficha ↗

Aplica a operação initials ao texto informado e retorna o resultado em texto.

Sintaxe: $initials[nome]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Matemática 33

Cálculos numéricos. Exemplo: $divide[$sum[[2,3,5]];2].

$numberAbrir ficha ↗

Converte o valor para número; entradas inválidas viram 0.

Sintaxe: $number[valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$addAbrir ficha ↗

Soma números; aceita vários argumentos, como $add[2;3;4].

Sintaxe: $add[número;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$subtractAbrir ficha ↗

Subtrai o segundo número do primeiro.

Sintaxe: $subtract[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$multiplyAbrir ficha ↗

Multiplica todos os números informados.

Sintaxe: $multiply[número;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$divideAbrir ficha ↗

Divide o primeiro número pelo segundo.

Sintaxe: $divide[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$moduloAbrir ficha ↗

Retorna o resto da divisão entre dois números.

Sintaxe: $modulo[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$powerAbrir ficha ↗

Eleva a base ao expoente informado.

Sintaxe: $power[base;expoente]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$sqrtAbrir ficha ↗

Calcula a raiz quadrada; valores negativos são tratados como zero.

Sintaxe: $sqrt[número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$absAbrir ficha ↗

Retorna o valor absoluto do número.

Sintaxe: $abs[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$roundAbrir ficha ↗

Arredonda para o inteiro mais próximo.

Sintaxe: $round[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$floorAbrir ficha ↗

Arredonda para baixo até o inteiro mais próximo.

Sintaxe: $floor[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$ceilAbrir ficha ↗

Arredonda para cima até o inteiro mais próximo.

Sintaxe: $ceil[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$minAbrir ficha ↗

Retorna o menor número entre os argumentos.

Sintaxe: $min[número;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$maxAbrir ficha ↗

Retorna o maior número entre os argumentos.

Sintaxe: $max[número;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$clampAbrir ficha ↗

Limita um número a um intervalo mínimo e máximo.

Sintaxe: $clamp[valor;mínimo;máximo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$randomAbrir ficha ↗

Gera um número decimal no intervalo informado.

Sintaxe: $random[mínimo;máximo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$randomIntAbrir ficha ↗

Gera um número inteiro aleatório, incluindo mínimo e máximo.

Sintaxe: $randomInt[mínimo;máximo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$sumAbrir ficha ↗

Calcula sum com os valores recebidos e retorna um resultado numérico.

Sintaxe: $sum[array JSON de números]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$averageAbrir ficha ↗

Calcula a média dos números informados.

Sintaxe: $average[array JSON de números]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$percentAbrir ficha ↗

Calcula percent com os valores recebidos e retorna um resultado numérico.

Sintaxe: $percent[parte;total]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$signAbrir ficha ↗

Retorna -1, 0 ou 1 conforme o sinal do número.

Sintaxe: $sign[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$logAbrir ficha ↗

Calcula o logaritmo natural.

Sintaxe: $log[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$log10Abrir ficha ↗

Calcula o logaritmo na base 10.

Sintaxe: $log10[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$expAbrir ficha ↗

Calcula e elevado à potência informada.

Sintaxe: $exp[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$piAbrir ficha ↗

Retorna a constante matemática π.

Sintaxe: $pi[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$eAbrir ficha ↗

Retorna a constante matemática e.

Sintaxe: $e[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$formatNumberAbrir ficha ↗

Formata um número com quantidade configurável de casas decimais (0 a 10).

Sintaxe: $formatNumber[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isEvenAbrir ficha ↗

Verifica se o número inteiro é par.

Sintaxe: $isEven[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isOddAbrir ficha ↗

Verifica se o número inteiro é ímpar.

Sintaxe: $isOdd[número;outro número]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$factorialAbrir ficha ↗

Calcula fatorial de inteiros de 0 a 170; fora desse intervalo retorna 0.

Sintaxe: $factorial[número inteiro]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$gcdAbrir ficha ↗

Calcula o máximo divisor comum de dois inteiros.

Sintaxe: $gcd[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$distanceAbrir ficha ↗

Retorna a distância absoluta entre dois valores numéricos.

Sintaxe: $distance[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lerpAbrir ficha ↗

Interpola entre início e fim usando a fração informada.

Sintaxe: $lerp[início;fim;progresso]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Lógica e validação 33

Compare valores e combine condições. Exemplo: $if[$gte[$get[idade];18];maior;menor].

$eqAbrir ficha ↗

Compara dois valores e retorna true se forem iguais.

Sintaxe: $eq[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$equalsAbrir ficha ↗

Compara dois valores e retorna true se forem iguais.

Sintaxe: $equals[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$neqAbrir ficha ↗

Retorna true se os valores forem diferentes.

Sintaxe: $neq[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$gtAbrir ficha ↗

Verifica se o primeiro número é maior que o segundo.

Sintaxe: $gt[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$gteAbrir ficha ↗

Verifica se o primeiro número é maior ou igual ao segundo.

Sintaxe: $gte[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$ltAbrir ficha ↗

Verifica se o primeiro número é menor que o segundo.

Sintaxe: $lt[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lteAbrir ficha ↗

Verifica se o primeiro número é menor ou igual ao segundo.

Sintaxe: $lte[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$andAbrir ficha ↗

Retorna true quando todos os argumentos são verdadeiros.

Sintaxe: $and[valor lógico;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$orAbrir ficha ↗

Retorna true quando pelo menos um argumento é verdadeiro.

Sintaxe: $or[valor lógico;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$notAbrir ficha ↗

Inverte um valor lógico.

Sintaxe: $not[valor lógico]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$xorAbrir ficha ↗

Retorna true quando exatamente um dos dois valores é verdadeiro.

Sintaxe: $xor[a;b]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$ifAbrir ficha ↗

Como expressão, escolhe valores: $if[condição;verdadeiro;falso]. No topo, abre um bloco que termina com $endif.

Sintaxe: $if[condição;valor verdadeiro;valor falso]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$coalesceAbrir ficha ↗

Retorna o primeiro argumento que não está vazio nem é null.

Sintaxe: $coalesce[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$defaultAbrir ficha ↗

Retorna o segundo valor quando o primeiro está vazio.

Sintaxe: $default[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isEmptyAbrir ficha ↗

Verifica se o valor está vazio, [] ou {}.

Sintaxe: $isEmpty[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isNumberAbrir ficha ↗

Verifica se o valor pode ser interpretado como número.

Sintaxe: $isNumber[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isStringAbrir ficha ↗

Verifica se o JSON recebido representa uma string.

Sintaxe: $isString[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isArrayAbrir ficha ↗

Verifica se o valor é um array JSON.

Sintaxe: $isArray[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isObjectAbrir ficha ↗

Verifica se o JSON é um objeto e não um array ou null.

Sintaxe: $isObject[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isBooleanAbrir ficha ↗

Verifica se o valor é true ou false.

Sintaxe: $isBoolean[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isNullAbrir ficha ↗

Verifica se o valor está vazio ou contém null.

Sintaxe: $isNull[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$toBooleanAbrir ficha ↗

Converte o valor para true ou false usando as regras de condição CAFAU.

Sintaxe: $toBoolean[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$toJsonAbrir ficha ↗

Converte o argumento recebido em uma string JSON.

Sintaxe: $toJson[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$parseJsonAbrir ficha ↗

Analisa uma string JSON.

Sintaxe: $parseJson[texto JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$stringifyAbrir ficha ↗

Serializa um valor JSON como texto JSON.

Sintaxe: $stringify[valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$compareAbrir ficha ↗

Compara dois textos e retorna -1, 0 ou 1.

Sintaxe: $compare[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$betweenAbrir ficha ↗

Avalia between e retorna true, false ou o valor convertido, conforme a operação.

Sintaxe: $between[valor;mínimo;máximo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$emptyAbrir ficha ↗

Retorna uma string vazia.

Sintaxe: $empty[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$identityAbrir ficha ↗

Devolve o argumento sem alterá-lo.

Sintaxe: $identity[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$firstNonEmptyAbrir ficha ↗

Retorna o primeiro argumento que não está vazio.

Sintaxe: $firstNonEmpty[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$allAbrir ficha ↗

Retorna true se todos os valores forem verdadeiros.

Sintaxe: $all[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$anyAbrir ficha ↗

Retorna true se algum valor for verdadeiro.

Sintaxe: $any[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$noneAbrir ficha ↗

Retorna true se todos os valores forem falsos.

Sintaxe: $none[valor;outro valor]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Listas 22

Passe listas como arrays JSON. Exemplo: $push[[1,2];3] retorna [1,2,"3"].

$arrayAbrir ficha ↗

Cria um array com os argumentos informados.

Sintaxe: $array[valor;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$firstAbrir ficha ↗

Retorna o primeiro item do array.

Sintaxe: $first[array JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$lastAbrir ficha ↗

Retorna o último item do array.

Sintaxe: $last[array JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$atAbrir ficha ↗

Lê o item no índice informado, começando por zero.

Sintaxe: $at[array JSON;índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$pushAbrir ficha ↗

Adiciona valores ao final do array.

Sintaxe: $push[array JSON;valor;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$unshiftAbrir ficha ↗

Adiciona os valores informados ao início do array.

Sintaxe: $unshift[array JSON;valor;...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$popAbrir ficha ↗

Retorna uma cópia do array sem o último item.

Sintaxe: $pop[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$shiftAbrir ficha ↗

Retorna uma cópia do array sem o primeiro item.

Sintaxe: $shift[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$uniqueAbrir ficha ↗

Remove valores repetidos.

Sintaxe: $unique[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$sortAbrir ficha ↗

Ordena itens; use desc como segundo argumento para ordem decrescente.

Sintaxe: $sort[array JSON;asc|desc]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$reverseArrayAbrir ficha ↗

Inverte a ordem dos itens do array.

Sintaxe: $reverseArray[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$flattenAbrir ficha ↗

Achata arrays aninhados em até dez níveis.

Sintaxe: $flatten[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$countAbrir ficha ↗

Retorna a quantidade de elementos do array.

Sintaxe: $count[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$arrayHasAbrir ficha ↗

Verifica se o array contém o valor informado.

Sintaxe: $arrayHas[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$indexAbrir ficha ↗

Retorna o índice do valor no array, ou -1 se não existir.

Sintaxe: $index[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$removeAbrir ficha ↗

Retorna um array sem os itens iguais ao valor informado.

Sintaxe: $remove[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$takeAbrir ficha ↗

Retorna os primeiros N itens.

Sintaxe: $take[array JSON;quantidade]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$skipAbrir ficha ↗

Pula os primeiros N itens e retorna o restante.

Sintaxe: $skip[array JSON;quantidade]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$zipAbrir ficha ↗

Combina itens dos arrays A e B em pares pelo índice.

Sintaxe: $zip[array A;array B]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$compactAbrir ficha ↗

Remove null, false e strings vazias do array.

Sintaxe: $compact[array JSON;valor ou índice]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$chunkAbrir ficha ↗

Divide o array em grupos do tamanho escolhido.

Sintaxe: $chunk[array JSON;tamanho do grupo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$rangeAbrir ficha ↗

Gera uma sequência inclusiva com início, fim e passo.

Sintaxe: $range[início;fim;passo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Canvas 11

Desenhe uma composição PNG para APIs e prévias no Discord. $rect, $circle e $drawText são gratuitos; imagens por URL e cartões de perfil, além de formas avançadas, são Premium.

$canvasAbrir ficha ↗

Desenha uma composição. Como resposta direta, $canvas[640;360;$rect[20;20;150;90;#756cf4];$drawText[Olá;30;150]] retorna PNG para o navegador e prévia no Discord. Dentro de $json, continua sendo uma especificação JSON.

Sintaxe: $canvas[largura;altura;elementos...]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$rectAbrir ficha ↗

Cria retângulo. Argumentos: x; y; largura; altura; cor; raio opcional.

Sintaxe: $rect[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$circleAbrir ficha ↗

Cria círculo. Argumentos: centro x; centro y; raio; cor.

Sintaxe: $circle[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$drawTextAbrir ficha ↗

Desenha texto. Argumentos: conteúdo; x; y; cor; tamanho da fonte.

Sintaxe: $drawText[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$linePremiumAbrir ficha ↗

Premium: desenha linha entre dois pontos, com cor e espessura.

Sintaxe: $line[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$ellipsePremiumAbrir ficha ↗

Premium: desenha elipse com centro, raios e cor.

Sintaxe: $ellipse[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$gradientPremiumAbrir ficha ↗

Premium: define gradiente horizontal ou vertical para as próximas formas.

Sintaxe: $gradient[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$polygonPremiumAbrir ficha ↗

Premium: desenha polígono com pontos x,y separados por espaço.

Sintaxe: $polygon[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$shadowPremiumAbrir ficha ↗

Premium: define sombra para a próxima forma desenhada.

Sintaxe: $shadow[argumentos do elemento]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$imagePremiumAbrir ficha ↗

Premium: adiciona ao Canvas uma imagem pública por URL HTTPS. Aceita PNG, JPEG, WebP ou GIF de até 1 MB em CDN do Discord, Unsplash, Imgur, Pexels, X ou Pixabay; até cinco imagens por desenho.

Sintaxe: $image[url_https;x;y;largura;altura;cover|contain]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$profilePremiumAbrir ficha ↗

Premium: gera um cartão compartilhável com avatar, nome, nível, rank e barra de progresso de XP.

Sintaxe: $profile[url_avatar;nome;nível;xp_atual;xp_próximo_nível;rank]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

HTTP externo 1

Consuma uma API HTTPS pública com $https[GET|POST|PUT|PATCH|DELETE|HEAD;url;headers JSON;body]. Comando Premium, limitado a dois pedidos por execução, 3,5 s e resposta de 128 KB.

$httpsPremiumAbrir ficha ↗

Premium: faz uma chamada HTTP para uma API HTTPS pública e retorna status, cabeçalhos selecionados e corpo. Aceita GET, POST, PUT, PATCH, DELETE ou HEAD; no máximo 2 chamadas por execução, 3,5 segundos por chamada, corpo de 64 KB e resposta de 128 KB. IPs privados, portas fora da 443 e redirecionamentos inseguros são bloqueados.

Sintaxe: $https[método;url;headers JSON;body]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Páginas HTML 8

Crie páginas com $html ou cole um documento completo com $htmlExec. Estilos e JavaScript inline rodam em sandbox sem acesso aos cookies ou APIs do CAFAU; fetch e formulários seguem bloqueados.

$htmlEscapeAbrir ficha ↗

Escapa caracteres especiais HTML para exibir texto dinâmico sem interpretá-lo como marcação.

Sintaxe: $htmlEscape[argumentos]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlHeadingAbrir ficha ↗

Cria um título HTML seguro. Argumentos: texto; nível de 1 a 6.

Sintaxe: $htmlHeading[texto;nível 1–6]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlParagraphAbrir ficha ↗

Cria um parágrafo; o texto é escapado e quebras de linha viram <br>.

Sintaxe: $htmlParagraph[texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlCardAbrir ficha ↗

Cria um cartão com título e conteúdo em texto escapado.

Sintaxe: $htmlCard[título;texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlLinkAbrir ficha ↗

Cria um botão de link com HTTPS, HTTP ou caminho relativo. Rótulo e URL são escapados.

Sintaxe: $htmlLink[url;texto]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlImageAbrir ficha ↗

Cria uma imagem responsiva de uma URL HTTPS, com texto alternativo.

Sintaxe: $htmlImage[url HTTPS;texto alternativo]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlListAbrir ficha ↗

Cria uma lista HTML com até 50 itens de um array JSON; itens são escapados.

Sintaxe: $htmlList[array JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$htmlPageAbrir ficha ↗

Gera um documento responsivo completo em português com estilo CAFAU. Argumentos: título; descrição; conteúdo HTML. CSS e scripts inline rodam em sandbox; cookies, fetch e formulários continuam bloqueados.

Sintaxe: $htmlPage[título;descrição;conteúdo HTML]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

MongoDB Atlas 4

Consulte seu banco em Configurações. $mongoFind lê; $mongoInsert, $mongoUpdate e $mongoDelete alteram dados, exigem Premium e operam em um documento por chamada. Até 3 operações por execução.

$mongoFindAbrir ficha ↗

Consulta uma coleção do MongoDB Atlas conectado nas Configurações. Argumentos: coleção; filtro JSON; limite opcional entre 1 e 50 (padrão 10). Apenas leitura, no máximo 3 consultas por execução e 2 segundos por consulta. Por segurança, operadores do MongoDB precisam ser escapados com barra invertida para não serem tratados como comandos CAFAU. Exemplo: $mongoFind[usuarios;{"idade":{"\$gte":18}};10].

Sintaxe: $mongoFind[coleção;filtro JSON;limite 1–50]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$mongoInsertPremiumAbrir ficha ↗

Insere um documento JSON numa coleção do seu Atlas. Escreve um documento por chamada e exige Premium. O usuário do banco precisa de permissão de escrita.

Sintaxe: $mongoInsert[coleção;documento JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$mongoUpdatePremiumAbrir ficha ↗

Altera um documento que corresponda ao filtro. Exige filtro não vazio e usa operadores limitados como $set, $inc e $unset; nunca faz upsert ou update em massa. Premium.

Sintaxe: $mongoUpdate[coleção;filtro JSON;atualização JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$mongoDeletePremiumAbrir ficha ↗

Remove no máximo um documento que corresponda ao filtro, que precisa ser não vazio. Não apaga a coleção nem remove vários documentos de uma vez. Premium.

Sintaxe: $mongoDelete[coleção;filtro JSON]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Data e hora 14

Datas são interpretadas e formatadas em UTC. Exemplo: $dateYear[2026-10-03].

$nowAbrir ficha ↗

Retorna data e hora atuais em ISO UTC.

Sintaxe: $now[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$timestampAbrir ficha ↗

Retorna o horário atual em milissegundos desde Unix epoch.

Sintaxe: $timestamp[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$isoDateAbrir ficha ↗

Converte uma data para o formato ISO 8601 em UTC.

Sintaxe: $isoDate[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateYearAbrir ficha ↗

Extrai o ano UTC de uma data.

Sintaxe: $dateYear[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateMonthAbrir ficha ↗

Extrai o mês UTC como número de 1 a 12.

Sintaxe: $dateMonth[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateDayAbrir ficha ↗

Extrai o dia do mês UTC.

Sintaxe: $dateDay[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateHourAbrir ficha ↗

Extrai a hora UTC.

Sintaxe: $dateHour[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateMinuteAbrir ficha ↗

Extrai o minuto UTC.

Sintaxe: $dateMinute[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateSecondAbrir ficha ↗

Extrai o segundo UTC.

Sintaxe: $dateSecond[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateAddDaysAbrir ficha ↗

Adiciona dias à data informada.

Sintaxe: $dateAddDays[data ISO;dias]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateDiffDaysAbrir ficha ↗

Calcula a diferença em dias entre duas datas.

Sintaxe: $dateDiffDays[data inicial;data final]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateWeekdayAbrir ficha ↗

Retorna o dia da semana em UTC: domingo é 0 e sábado é 6.

Sintaxe: $dateWeekday[data ISO;valor opcional]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateValidAbrir ficha ↗

Verifica se o texto pode ser interpretado como uma data válida.

Sintaxe: $dateValid[data]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$dateFormatAbrir ficha ↗

Formata uma data em UTC usando o locale informado, como pt-BR ou en-US.

Sintaxe: $dateFormat[data ISO;locale, ex. pt-BR]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Requisição 10

Leia parâmetros da rota, query string e corpo JSON. Exemplo: $get[$query[pagina]].

$paramAbrir ficha ↗

Lê um parâmetro nomeado da rota, como :id.

Sintaxe: $param[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$queryAbrir ficha ↗

Lê um valor da query string da URL.

Sintaxe: $query[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$bodyAbrir ficha ↗

Lê uma propriedade do corpo JSON recebido.

Sintaxe: $body[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$queryKeysAbrir ficha ↗

Retorna um array com os nomes das chaves da query string.

Sintaxe: $queryKeys[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$queryCountAbrir ficha ↗

Conta os parâmetros da query string.

Sintaxe: $queryCount[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$paramKeysAbrir ficha ↗

Retorna um array com os nomes dos parâmetros da rota.

Sintaxe: $paramKeys[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$paramCountAbrir ficha ↗

Conta os parâmetros nomeados da rota.

Sintaxe: $paramCount[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$bodyJsonAbrir ficha ↗

Retorna o corpo JSON completo da requisição.

Sintaxe: $bodyJson[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$bodyHasAbrir ficha ↗

Verifica se o body JSON contém a chave informada.

Sintaxe: $bodyHas[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

$bodyTypeAbrir ficha ↗

Retorna o tipo do body: null, array, object, string, number ou boolean.

Sintaxe: $bodyType[chave]

Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.

Conectar seu MongoDB Atlas

Abra Configurações, cole o URI de conexão do Atlas, teste e salve. O URI fica criptografado no servidor e não será exibido novamente. Configure a Network Access do Atlas conforme o provedor do CAFAU. Use um usuário de banco com leitura para consultar; para comandos de escrita Premium, dê readWrite apenas ao banco que será usado.

Use $mongoFind[coleção;filtro JSON;limite] em uma expressão; por padrão retorna até 10 documentos. O limite máximo é 50 e cada API pode executar até três operações MongoDB por execução, com consultas e gravações limitadas no tempo.

$json[{"membros":$mongoFind[membros;{"nivel":{"\$gte":10}};20]}]

Operadores do filtro são escapados com uma barra invertida antes do cifrão, como \$gte, para o interpretador CAFAU preservar o operador do MongoDB. Operadores de consulta permitidos: \$eq, \$ne, \$gt, \$gte, \$lt, \$lte, \$in, \$nin, \$and, \$or e \$exists.

Alterar dados no MongoDB

Os comandos de escrita são Premium. Eles só alteram um documento por chamada e exigem filtros não vazios para atualizar ou excluir. No Atlas, dê ao usuário da conexão a permissão readWrite apenas no banco necessário.

$mongoInsert[usuarios;{"nome":"Ana","nivel":8}]
$mongoUpdate[usuarios;{"nome":"Ana"};{"\$set":{"nivel":9}}]
$mongoDelete[usuarios;{"nome":"Ana"}]

O resultado informa o ID inserido, a quantidade alterada ou a quantidade excluída. $mongoDelete remove no máximo um documento; não há atualização nem exclusão em massa.

Proteger suas APIs com chave

Em Configurações, gere uma chave para exigir autenticação em todas as APIs da sua conta. Envie-a em cada requisição no cabeçalho Authorization: Bearer SUA_CHAVE. A chave completa aparece somente quando é gerada; guarde-a em segredo. Você pode rotacionar, desativar ou revogar a qualquer momento.

curl -H "Authorization: Bearer cf_SUA_CHAVE" https://cafau.vercel.app/api/seu-slug/rota

Canvas e cartão de perfil

Use $canvas[...] como resposta para desenhar e retornar PNG, com prévia no Discord. Exemplo de imagem premium:

$canvas[640;360;$rect[0;0;640;360;#111521];$image[https://cdn.discordapp.com/avatars/ID/AVATAR.png;24;24;120;120;cover]]

Para criar um cartão de perfil compartilhável, crie uma API Premium e use $profile[url_avatar;nome;nível;xp_atual;xp_próximo_nível;rank] como resposta. Os links de imagem devem ser públicos, HTTPS, sem redirecionamento e usar CDN do Discord, Unsplash, Imgur, Pexels, X ou Pixabay. Imagens PNG, JPEG, WebP ou GIF com até 1 MB; máximo de cinco por Canvas. Para consumir o desenho como JSON em outro app, envolva $canvas em $json. Retângulo, círculo e texto ficam gratuitos; demais formas, imagens e perfis exigem Premium.

$profile[$get[$query[avatar]];$get[$query[nome]];$get[$query[nivel]];$get[$query[xp]];1000;$get[$query[rank]]]

Depois de salvar a API na rota perfil, passe os valores na query string do link compartilhado, por exemplo ?avatar=URL&nome=Ana&nivel=8&xp=720&rank=3.

Acessar o Discord para Premium →

Comandos de resposta

$json[...] responde JSON; $text[...] responde texto; $html[...] responde HTML com comandos CAFAU; $htmlExec[...] devolve HTML bruto sem interpolação. $status[201] define o status. $header[X-Modo;demo] define cabeçalho permitido. $var[nome;valor] salva variável da requisição, lida por $get[nome].

Consumir APIs HTTPS com $https

O comando Premium chama um serviço público HTTPS e retorna um objeto com status, cabeçalhos selecionados e corpo. Como resposta principal, ele já devolve esse objeto em JSON.

$https[GET;https://api.github.com/users/octocat;{"Accept":"application/vnd.github+json"}]

Para enviar JSON: $https[POST;https://api.exemplo.com/itens;{"Content-Type":"application/json"};{"nome":"Item"}]. Métodos aceitos: GET, POST, PUT, PATCH, DELETE e HEAD. São permitidas até 2 chamadas por execução, cada uma com timeout de 3,5 s, corpo de 64 KB e resposta de 128 KB. Apenas HTTPS público na porta 443; IPs privados, metadados, cabeçalhos protegidos e redirecionamentos inseguros são bloqueados.

Ver recursos Premium →

Termos, privacidade e produção

Antes de usar uma API em um projeto importante, revise os Termos de Serviço e a Política de Privacidade. O serviço está em evolução e não oferece SLA contratual; use monitoramento, timeout e fallback.

Abrir painel →