Gerencie redirecionamentos de página com a API Notiondesk

Crie, liste, atualize e exclua redirecionamentos da página da central de ajuda Notiondesk por meio da API REST. Importe em massa URLs antigas após uma migração.

7 min de leitura

Um redirecionamento de página envia os leitores que acessam um caminho antigo na sua central de ajuda para um artigo ou uma coleção. A API Notiondesk permite listar, criar, atualizar e excluir redirecionamentos de página, possibilitando a importação de centenas de URLs antigas após uma migração, em vez de adicioná-las uma a uma no painel de controle. Os favoritos, links compartilhados e resultados de mecanismos de busca continuam funcionando.

Para gerenciar redirecionamentos no painel de controle, consulte Como gerenciar redirecionamentos de página na sua central de ajuda .

Método Caminho Escopo Faz
GET/sites/{site_id}/page-redirectsreadRedirecionamentos de listas, do mais recente para o mais antigo
POST/sites/{site_id}/page-redirectswriteCria um redirecionamento
PATCH/sites/{site_id}/page-redirects/{redirect_id}writeAtualiza um redirecionamento
DELETE/sites/{site_id}/page-redirects/{redirect_id}adminExclui um redirecionamento.

Criar e atualizar redirecionamentos exige um plano que inclua redirecionamentos de página.

Redirecionamentos da página de lista

A lista abrange todos os idiomas, do mais recente para o mais antigo. Ela inclui os redirecionamentos que você cria e aqueles que o Notiondesk cria automaticamente após uma alteração de slug.

curl "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects?page_size=100" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16"
{
  "object": "list",
  "data": [
    {
      "id": "3f1c2a9e-8b7d-4c6e-9a5f-1e2d3c4b5a69",
      "locale": "en",
      "type": "article",
      "origin": "manual",
      "source_path": "/legacy/getting-started",
      "target_id": "1761580412",
      "target_title": "Getting started",
      "target_slug": "getting-started",
      "target_status": "published"
    }
  ],
  "has_more": false,
  "next_cursor": null
}
Campo Significado
idO identificador de redirecionamento, usado como redirect_id
localeO idioma do alvo
typearticle ou category (uma coleção)
originmanual para um redirecionamento criado por alguém, system para um Notiondesk criado quando um slug foi alterado.
source_pathO caminho que redireciona
target_idOs id do artigo ou coleção alvo
__PRESERVADO_61__, __PRESERVADO_60__ O título e o segmento de caminho do alvo em locale
target_statusO status do alvo, como published ou draft
Observação: um redirecionamento envia conteúdo apenas para os leitores enquanto o conteúdo de destino estiver publicado. Um redirecionamento para um rascunho aguarda até que você publique o conteúdo de destino.

A lista atinge, no máximo, os 10.000 redirecionamentos mais recentes. Se a sua integração excluir redirecionamentos enquanto os lista, recomece a partir da primeira página em seguida: uma exclusão desloca os itens seguintes, permitindo que a próxima página pule um. Consulte Paginate e solicitações de API de versão Notiondesk .

Criar um redirecionamento de página

Todos os campos são obrigatórios:

curl -X POST "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 6f0d6b1e-create-getting-started" \
  -d '{"type": "article", "source_path": "/legacy/getting-started", "target_id": "1761580412", "locale": "en"}'
Campo Tipo Notas
typecorda __PRESERVADO_54__ ou __PRESERVADO_53__
source_pathcorda O caminho para redirecionamento, com até 512 caracteres, por exemplo, /legacy/getting-started. Nenhum outro redirecionamento da central de ajuda pode utilizá-lo.
target_idcorda Os id do artigo ou coleção alvo, da lista de artigos ou coleções . Até 255 caracteres.
localecorda O idioma de destino. O idioma de destino deve ter uma tradução.

A rota responde 201 Created com o novo redirecionamento, nos mesmos campos da lista.

  • Um redirecionamento source_path já usa respostas 409 conflict_error, e a mensagem nomeia o caminho.
  • Um target_id sem tradução em locale responde 404 not_found, e a mensagem nomeia o id.

Envie um Idempotency-Key com cada criação. Uma nova tentativa com a mesma chave e corpo retorna o mesmo 201 sem criar um segundo redirecionamento. Consulte Lidar com erros de API Notiondesk, limites de taxa e novas tentativas .

Atualizar redirecionamento de página

Envie apenas os campos que devem ser alterados. Todos os campos que você omitir manterão seus valores atuais.

Os campos seguem as regras de criação. A rota responde com 200 OK com o redirecionamento atualizado.

O redirecionamento ainda deve apontar para um destino que exista em seu locale após a alteração. Para direcionar um redirecionamento de artigo para uma coleção, envie type e target_id juntos.

Excluir redirecionamento de página

A exclusão é irreversível, portanto a rota precisa de duas salvaguardas:

curl -X PATCH "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects/3f1c2a9e-8b7d-4c6e-9a5f-1e2d3c4b5a69" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16" \
  -H "Content-Type: application/json" \
  -d '{"source_path": "/legacy/start"}'
curl -i -X DELETE "https://api.notiondesk.so/sites/c74781f6-1aea-4e17-ab23-bbb8b4d174b6/page-redirects/3f1c2a9e-8b7d-4c6e-9a5f-1e2d3c4b5a69" \
  -H "Authorization: Bearer $NOTIONDESK_API_KEY" \
  -H "nd-version: 2026-10-16" \
  -H "Content-Type: application/json" \
  -d '{"confirm": true}'
  • o escopo admin;
  • o corpo {"confirm": true}, com o booleano JSON true.

A rota responde com 204 No Content. Os leitores que abrirem o caminho antigo param de ser redirecionados. Excluir o mesmo redirecionamento novamente retorna 404 not_found, a menos que você tente novamente com o mesmo Idempotency-Key.

O escopo funciona apenas com uma chave criada pelo proprietário do espaço de trabalho ou pelo administrador. Um editor pode excluir um redirecionamento no painel, mas não com uma chave de API.admin

Redirecionamentos de importação após uma migração

Migrando de outra ferramenta de central de ajuda? Mapeie cada caminho antigo para o seu novo artigo e, em seguida, crie um redirecionamento por linha. Este script lê um arquivo CSV com as colunas source_path,target_id,locale:

import { readFileSync } from "node:fs";
import { createHash } from "node:crypto";

const siteId = "c74781f6-1aea-4e17-ab23-bbb8b4d174b6";
const rows = readFileSync("redirects.csv", "utf8").trim().split(/\r?\n/).slice(1);

for (const row of rows) {
  const [source_path, target_id, locale] = row.split(",");
  const idempotencyKey = createHash("sha256").update(`${source_path}|${target_id}|${locale}`).digest("hex");

  const response = await fetch(`https://api.notiondesk.so/sites/${siteId}/page-redirects`, {
    method: "POST",
    headers: {
      Authorization: `Bearer ${process.env.NOTIONDESK_API_KEY}`,
      "nd-version": "2026-10-16",
      "Content-Type": "application/json",
      "Idempotency-Key": idempotencyKey,
    },
    body: JSON.stringify({ type: "article", source_path, target_id, locale }),
  });

  if (response.status === 429) {
    const seconds = Number(response.headers.get("Retry-After")) || 5;
    console.log(`Rate limited, waiting ${seconds}s`);
    await new Promise((resolve) => setTimeout(resolve, seconds * 1000));
    rows.push(row);
    continue;
  }

  const result = await response.json();
  console.log(response.status, source_path, response.ok ? result.id : result.code);
}
  • A chave é derivada da linha, portanto, executar o script duas vezes não cria nada duas vezes. Uma linha que você corrige recebe uma nova chave.
  • Um caminho que já possui um redirecionamento registra conflict_error. Atualize-o ou deixe-o como está.
  • As gravações são limitadas a 20 solicitações por minuto por chave, portanto, 500 redirecionamentos levam cerca de 25 minutos. O script aguarda quando atinge o limite de taxa e, em seguida, tenta novamente a linha.
  • Use uma chave somente com os escopos read e write.

Erros

Status Quandocode
400 Um campo está ausente ou vazio, type ou locale não são aceitos, um valor é muito longo, confirm não é true, ou o corpo da requisição contém um campo desconhecido.validation_error
403 A chave não possui read, write ou admin, dependendo da rota.insufficient_scope
403 Seu plano não inclui redirecionamentos de página, ou o criador da chave não pode alterar esta central de ajuda.permission_denied
404 A central de ajuda ou o redirecionamento não existem no seu espaço de trabalho, ou o destino não tem tradução em localenot_found
409 Outro redirecionamento da central de ajuda já utiliza source_pathconflict_error

Consulte a seção sobre erros da API Handle Notiondesk, limites de taxa e novas tentativas para obter informações sobre o envelope do erro e os demais códigos.

Perguntas frequentes

Preciso criar redirecionamentos quando altero um slug?

Geralmente não. O Notiondesk cria o redirecionamento automaticamente quando você altera um slug definido manualmente em um artigo ou coleção publicada, os redirecionamentos automáticos estão ativados para a central de ajuda e seu plano inclui redirecionamentos de página. Esses redirecionamentos são exibidos como origin: "system" na lista. Em qualquer outro caso, crie o redirecionamento manualmente. Saiba mais sobre slugs em Como criar URLs amigáveis ​​para artigos e coleções .

Um redirecionamento pode apontar para um URL externo?

Não. Um redirecionamento de página aponta para um artigo ou uma coleção da mesma central de ajuda.

Por que minha chave consegue criar redirecionamentos, mas não consegue excluí-los?

A exclusão requer o escopo admin, o que não ocorre com a criação e a atualização. Adicione admin à chave e verifique se o criador é o proprietário do espaço de trabalho ou um administrador.

O que vem a seguir?

Artigos relacionados

Esta página foi útil?

Still need help? Ask us