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.
Aprenda a criar, testar e publicar APIs. Selecione um comando para abrir sua ficha com sintaxe, exemplos e observações.
Entre com Discord, crie uma API e defina uma rota como usuarios/:id. Método, identificador e código são configurados no editor.
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 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.
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.
Use $json[...] com JSON válido. Expressões dentro de strings são interpoladas. Exemplo: $json[{"ok":true}].
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.
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[201] define o status HTTP. $header[X-Modo;demo] adiciona cabeçalho permitido; cookies e cabeçalhos de segurança são protegidos.
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.
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"}]
$endiffalse, 0, null e texto vazio contam como falso.
175 comandos. Clique em um comando para abrir a ficha detalhada.
Transforme e consulte textos. Exemplo: $upper[$trim[ olá ]].
$upperConverte 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.
$lowercaseConverte 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.
$capitalizeColoca 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.
$titleColoca 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.
$trimRemove 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.
$trimStartRemove 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.
$trimEndRemove 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.
$lengthRetorna 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.
$charAtRetorna 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.
$substringRetorna 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.
$sliceTextExtrai 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.
$replaceSubstitui 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.
$replaceAllSubstitui 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.
$splitDivide 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.
$joinJunta 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.
$includesAplica 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.
$containsVerifica 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.
$startsWithVerifica 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.
$endsWithVerifica 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.
$indexOfRetorna 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.
$lastIndexOfRetorna 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.
$repeatRepete 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.
$padStartCompleta 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.
$padEndCompleta 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.
$reverseInverte 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.
$truncateCorta 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.
$concatConcatena 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.
$slugifyGera 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.
$encodeUriCodifica 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.
$decodeUriDecodifica 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.
$encodeBase64Codifica 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.
$decodeBase64Decodifica 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.
$extractBetweenExtrai 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.
$wordCountConta 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.
$lineCountConta 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.
$removeWhitespaceRemove 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.
$normalizeSpaceEncurta 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.
$isBlankRetorna 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.
$initialsAplica 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.
Cálculos numéricos. Exemplo: $divide[$sum[[2,3,5]];2].
$numberConverte 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.
$addSoma 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.
$subtractSubtrai 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.
$multiplyMultiplica 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.
$divideDivide 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.
$moduloRetorna 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.
$powerEleva 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.
$sqrtCalcula 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.
$absRetorna 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.
$roundArredonda 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.
$floorArredonda 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.
$ceilArredonda 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.
$minRetorna 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.
$maxRetorna 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.
$clampLimita 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.
$randomGera 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.
$randomIntGera 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.
$sumCalcula 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.
$averageCalcula 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.
$percentCalcula 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.
$signRetorna -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.
$logCalcula 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.
$log10Calcula 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.
$expCalcula 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.
$piRetorna 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.
$eRetorna 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.
$formatNumberFormata 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.
$isEvenVerifica 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.
$isOddVerifica 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.
$factorialCalcula 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.
$gcdCalcula 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.
$distanceRetorna 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.
$lerpInterpola 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.
Compare valores e combine condições. Exemplo: $if[$gte[$get[idade];18];maior;menor].
$eqCompara 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.
$equalsCompara 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.
$neqRetorna 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.
$gtVerifica 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.
$gteVerifica 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.
$ltVerifica 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.
$lteVerifica 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.
$andRetorna 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.
$orRetorna 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.
$notInverte 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.
$xorRetorna 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.
$ifComo 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.
$coalesceRetorna 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.
$defaultRetorna 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.
$isEmptyVerifica 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.
$isNumberVerifica 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.
$isStringVerifica 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.
$isArrayVerifica 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.
$isObjectVerifica 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.
$isBooleanVerifica 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.
$isNullVerifica 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.
$toBooleanConverte 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.
$toJsonConverte 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.
$parseJsonAnalisa uma string JSON.
Sintaxe: $parseJson[texto JSON]Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.
$stringifySerializa 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.
$compareCompara 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.
$betweenAvalia 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.
$emptyRetorna uma string vazia.
Sintaxe: $empty[valor;outro valor]Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.
$identityDevolve 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.
$firstNonEmptyRetorna 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.
$allRetorna 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.
$anyRetorna 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.
$noneRetorna 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.
Passe listas como arrays JSON. Exemplo: $push[[1,2];3] retorna [1,2,"3"].
$arrayCria 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.
$firstRetorna 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.
$lastRetorna 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.
$atLê 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.
$pushAdiciona 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.
$unshiftAdiciona 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.
$popRetorna 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.
$shiftRetorna 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.
$uniqueRemove 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.
$sortOrdena 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.
$reverseArrayInverte 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.
$flattenAchata 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.
$countRetorna 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.
$arrayHasVerifica 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.
$indexRetorna 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.
$removeRetorna 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.
$takeRetorna 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.
$skipPula 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.
$zipCombina 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.
$compactRemove 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.
$chunkDivide 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.
$rangeGera 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.
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.
$canvasDesenha 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.
$rectCria 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.
$circleCria 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.
$drawTextDesenha 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.
$linePremiumPremium: 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.
$ellipsePremiumPremium: 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.
$gradientPremiumPremium: 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.
$polygonPremiumPremium: 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.
$shadowPremiumPremium: 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.
$imagePremiumPremium: 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.
$profilePremiumPremium: 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.
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.
$httpsPremiumPremium: 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.
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.
$htmlEscapeEscapa 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.
$htmlHeadingCria 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.
$htmlParagraphCria 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.
$htmlCardCria 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.
$htmlLinkCria 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.
$htmlImageCria 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.
$htmlListCria 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.
$htmlPageGera 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.
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.
$mongoFindConsulta 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.
$mongoInsertPremiumInsere 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.
$mongoUpdatePremiumAltera 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.
$mongoDeletePremiumRemove 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.
Datas são interpretadas e formatadas em UTC. Exemplo: $dateYear[2026-10-03].
$nowRetorna 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.
$timestampRetorna 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.
$isoDateConverte 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.
$dateYearExtrai 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.
$dateMonthExtrai 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.
$dateDayExtrai 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.
$dateHourExtrai 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.
$dateMinuteExtrai 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.
$dateSecondExtrai 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.
$dateAddDaysAdiciona dias à data informada.
Sintaxe: $dateAddDays[data ISO;dias]Separe argumentos por ponto e vírgula. Uma chamada pode conter outros comandos dentro dos argumentos.
$dateDiffDaysCalcula 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.
$dateWeekdayRetorna 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.
$dateValidVerifica 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.
$dateFormatFormata 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.
Leia parâmetros da rota, query string e corpo JSON. Exemplo: $get[$query[pagina]].
$paramLê 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.
$queryLê 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.
$bodyLê 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.
$queryKeysRetorna 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.
$queryCountConta 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.
$paramKeysRetorna 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.
$paramCountConta 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.
$bodyJsonRetorna 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.
$bodyHasVerifica 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.
$bodyTypeRetorna 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.
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.
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.
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
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.
$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].
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.
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.