# Uma alternativa à Perspective API que troca sem reescrever nada

> A Perspective API encerra em 31 de dezembro de 2026. O VigiMod responde às mesmas requisições comments:analyze: mude o host e a chave e mantenha o seu código. Grátis durante o beta, 26 idiomas.

Source: https://www.vigimod.com/pt/perspective-api-alternative · VigiMod (https://www.vigimod.com) · 2026-11-15

A Perspective API do Google deixa de responder em 31 de dezembro de 2026. O VigiMod responde às mesmas requisições no mesmo caminho: mude o host e a chave, e o seu código, plugin ou script continua funcionando. Grátis durante o beta, treinado em 26 idiomas.

## Mude o host e a chave, nada mais

O mesmo caminho (/v1alpha1/comments:analyze), o mesmo JSON de entrada e saída, a chave em ?key= como antes (ou no cabeçalho X-API-Key).

### Antes: Perspective API

```python
import requests

r = requests.post(
    "https://commentanalyzer.googleapis.com/v1alpha1/comments:analyze",
    params={"key": PERSPECTIVE_KEY},
    json={
        "comment": {"text": message},
        "languages": ["it"],
        "requestedAttributes": {"TOXICITY": {}, "INSULT": {}, "THREAT": {}},
    },
)
scores = {k: v["summaryScore"]["value"] for k, v in r.json()["attributeScores"].items()}
flagged = scores["TOXICITY"] >= 0.8
```

### Depois: VigiMod

```python
import requests

r = requests.post(
    "https://api.vigimod.com/v1alpha1/comments:analyze",   # the only changes:
    params={"key": VIGIMOD_KEY},            # host and key
    json={
        "comment": {"text": message},
        "languages": ["it"],
        "requestedAttributes": {"TOXICITY": {}, "INSULT": {}, "THREAT": {}},
    },
)
scores = {k: v["summaryScore"]["value"] for k, v in r.json()["attributeScores"].items()}
flagged = scores["TOXICITY"] >= 0.8
```

### curl

```bash
curl -s "https://api.vigimod.com/v1alpha1/comments:analyze?key=$VIGIMOD_KEY" \
  -H "Content-Type: application/json" \
  -d '{"comment": {"text": "sei proprio un idiota"},
       "requestedAttributes": {"TOXICITY": {}, "SEVERE_TOXICITY": {}}}'

# {"attributeScores": {
#    "TOXICITY": {"summaryScore": {"value": 1.0, "type": "PROBABILITY"}},
#    "SEVERE_TOXICITY": {"summaryScore": {"value": 0.6, "type": "PROBABILITY"}}}}
# an insult: toxic, but not hate or a threat, so not severe
```

### Node.js

```js
const r = await fetch(
  `https://api.vigimod.com/v1alpha1/comments:analyze?key=${process.env.VIGIMOD_KEY}`,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      comment: { text: message },
      requestedAttributes: { TOXICITY: {}, PROFANITY: {} },
    }),
  },
);
const { attributeScores } = await r.json();
const toxicity = attributeScores.TOXICITY.summaryScore.value;
```

## Ferramentas baseadas na Perspective

### Coral

Admin → Configure → Moderation → filtro de comentários tóxicos da Perspective: defina o endpoint como https://api.vigimod.com/v1alpha1 e a chave como a sua chave VigiMod. Aumente o timeout para 3000 ms: se a resposta chega tarde, o Coral publica o comentário sem pontuação.

### Discourse

O plugin oficial da Perspective chama diretamente o host do Google e não tem uma configuração para mudá-lo: na sua cópia do plugin, substitua commentanalyzer.googleapis.com por api.vigimod.com e coloque a sua chave VigiMod em perspective_google_api_key.

### Drupal, WordPress e os seus scripts

Funciona qualquer módulo ou script que permita definir o URL da Perspective: use https://api.vigimod.com/v1alpha1/comments:analyze com a sua chave VigiMod. Se o URL estiver escrito no código, é uma linha a mudar.

## Como cada atributo da Perspective é calculado

| Atributo da Perspective | O VigiMod usa | Nota |
|---|---|---|
| TOXICITY | toxic | Mensagens grosseiras, desrespeitosas ou agressivas, incluindo insultos, ódio e ameaças. |
| SEVERE_TOXICITY | hate, threat, toxic (no máximo 0,6) | Ódio e ameaças; uma mensagem apenas grosseira fica abaixo de 0,7. |
| IDENTITY_ATTACK | hate | Ataques a pessoas pelo que elas são. |
| INSULT | insult | Insultos dirigidos a uma pessoa. |
| THREAT | threat | Ameaças de violência ou dano. |
| SEXUALLY_EXPLICIT | sexual | Conteúdo sexual. |
| PROFANITY | regra integrada | Palavrões e linguagem vulgar, em qualquer idioma (OBSCENE também é aceito). |
| FLIRTATION | regra integrada | Flerte e investidas sexuais (experimental na Perspective). |
| SPAM | advertising | Publicidade não solicitada. |
| Outros | — | ATTACK_ON_AUTHOR, INCOHERENT, INFLAMMATORY, LIKELY_TO_REJECT, UNSUBSTANTIAL e os atributos bridging devolvem um erro 400 que os nomeia. |

## O que saber antes de trocar

- As pontuações vêm do modelo do VigiMod, não do da Perspective. Elas são reescaladas para que 0,7 seja o limiar ajustado do VigiMod para cada atributo: limiares entre 0,7 e 0,9 se comportam de forma sensata, mas confira os seus com alguns dias de mensagens reais.
- Um atributo que o VigiMod não calcula dá um erro 400 explícito, nunca um número inventado. Os nomes _EXPERIMENTAL são aceitos.
- context.entries é usado: as mensagens anteriores mudam as pontuações, então respostas, piadas e citações são lidas com o que veio antes.
- Comentários com mais de 1.000 caracteres são pontuados em partes, até 10.000 caracteres; cada parte conta como uma mensagem para o limite de taxa e spanScores dá a pontuação de cada parte.
- Nada é armazenado: os comentários são pontuados e descartados, e comments:suggestscore é aceito, mas as suas pontuações não são guardadas.
- Todos os idiomas são aceitos: o modelo foi treinado em 26 e funciona melhor em inglês, italiano, espanhol, francês, alemão e português.

## Quando quiser mais do que a Perspective

O endpoint compatível é a troca rápida. O endpoint nativo /moderate, com a mesma chave, acrescenta:

- Regras próprias em linguagem natural, como “Proibido vender contas”, cada uma com a sua pontuação.
- Pontuações de automutilação, publicidade e spam por usuário, e listas de ofensas discriminatórias por categoria.
- Políticas criadas no painel, com ações se/então (apagar, timeout, ban), fila de revisão e webhooks.
- A mesma privacidade: as mensagens são verificadas e descartadas, não usadas para treinar modelos.

## Migre em três passos

1. Crie uma conta gratuita e uma chave de API.
2. Substitua commentanalyzer.googleapis.com por api.vigimod.com, e a chave da Perspective pela do VigiMod.
3. Observe alguns dias de mensagens reais e ajuste os limiares se for preciso.

## Perguntas

### Quando a Perspective API para de funcionar?

Segundo o aviso da Jigsaw, ela não aceita novos pedidos de acesso desde fevereiro de 2026 e continua respondendo aos usuários existentes até 31 de dezembro de 2026.

### A Perspective API é grátis?

Era gratuita, com uma cota por projeto. Depois de 31 de dezembro de 2026 ela deixa de responder a todos, então um plano gratuito já não ajuda. O VigiMod é grátis durante o beta.

### O que substituiu a Perspective API?

O Google não lançou um sucessor direto. O VigiMod responde às mesmas requisições comments:analyze, então o código feito para a Perspective continua funcionando com um novo host e uma nova chave.

### Preciso mudar o meu código?

Só o host e a chave. A requisição e a resposta têm a mesma forma; um atributo que o VigiMod não calcula devolve um erro 400 que o nomeia.

### As pontuações são iguais às da Perspective?

Nenhum modelo dá os mesmos números. Ambos devolvem uma probabilidade de 0 a 1 por atributo, e as do VigiMod são reescaladas para que 0,7 seja o seu limiar. Confira os limiares com as suas mensagens.

### Quais idiomas são suportados?

Foi treinado em 26 idiomas e funciona melhor em inglês, italiano, espanhol, francês, alemão e português. Qualquer código de idioma é aceito.

### O VigiMod é grátis?

Sim, durante o beta: todas as funções, 120 mensagens por minuto por chave, até 10 chaves.

Documentation: https://www.vigimod.com/en/docs#perspective · Benchmark: https://www.vigimod.com/en/benchmark · Support: support@vigimod.com
