Interseção de duas listas
A interseção de duas listas reúne os itens presentes nas duas entradas. Esta ferramenta faz a comparação e retorna cada valor compartilhado uma única vez, na ordem da primeira ocorrência na lista inicial.
Executar grátis
Ela ajuda a comparar palavras-chave, conciliar tags, conferir listas de permissão ou descobrir o subconjunto comum de duas fontes de dados. A correspondência é exata por padrão, com uma opção que ignora maiúsculas sem alterar a grafia retornada.
Prepare duas listas para uma comparação útil
Coloque os valores de referência na primeira lista e os valores que você deseja comparar na segunda. Cada item deve ser texto. A operação não remove espaços, altera pontuação nem tenta adivinhar equivalências. Portanto, normalize previamente as diferenças acidentais. A primeira lista define a ordem e a grafia da saída. Se um item compartilhado aparecer várias vezes, ele será retornado apenas uma vez, na posição da primeira ocorrência. Isso produz uma interseção de conjuntos estável e adequada para etapas posteriores. As duas listas precisam ter ao menos um item, embora o resultado possa ser vazio quando não houver valores em comum.
Escolha a correspondência exata ou sem diferenciar maiúsculas
A comparação exata é o padrão porque alguns identificadores diferenciam maiúsculas. Nesse modo, “API” e “api” são itens distintos. Ative ignore_case quando a capitalização não for relevante, como em palavras-chave e tags inseridas por pessoas. A opção muda somente as chaves internas de busca e mantém na saída a grafia da primeira lista. As duplicatas seguem a mesma regra e geram apenas um resultado. A ferramenta compara strings completas: “email” não corresponde a “email marketing”. Se você precisar remover acentos, uniformizar espaços ou mapear sinônimos, normalize os dados antes da chamada.
Use a interseção em fluxos de dados
A resposta contém o array de interseção, a quantidade de itens únicos, o tamanho original de cada lista e o modo de comparação. Uma equipe de busca pode comparar palavras-chave planejadas com termos já cobertos; uma loja pode cruzar tags de produtos com uma lista permitida; e um pipeline pode comparar colunas de duas exportações. O cálculo é determinístico: as mesmas entradas sempre produzem o mesmo resultado ordenado. Não há rede, modelos, escolhas aleatórias nem uso da hora atual. A API custa US$ 0,002 por solicitação, e o executor do navegador utiliza a mesma lógica pura.
Casos de uso
Comparar exportações de palavras-chave
Encontre termos compartilhados por duas ferramentas de pesquisa ou listas de campanha antes de consolidar o trabalho de SEO.
Conciliar tags
Identifique as tags aceitas tanto por um sistema de conteúdo quanto pela plataforma de destino.
Filtrar com uma lista permitida
Mantenha apenas rótulos ou identificadores solicitados que também estejam em uma lista de texto aprovada.
Perguntas frequentes
O que a operação retorna?
Ela retorna uma vez cada string encontrada nas duas listas, ordenada e grafada conforme a primeira ocorrência em list_a.
As duplicatas são incluídas?
Não. O resultado é uma interseção de conjuntos, portanto cada valor correspondente aparece somente uma vez.
A comparação diferencia maiúsculas?
Sim, por padrão. Defina ignore_case como true quando a capitalização não puder afetar a correspondência.
Espaços ou pontuação são removidos?
Não. Os valores são comparados como recebidos, exceto pela opção de ignorar maiúsculas. Normalize os dados antes, se necessário.
O que acontece quando nada corresponde?
A solicitação é concluída com sucesso, retornando um array de interseção vazio e contagem zero.
Qual é o preço da solicitação de API?
Cada solicitação de API custa US$ 0,002.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/str/list-intersection \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}'const res = await fetch("https://api.kit.forhosting.com/str/list-intersection", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/str/list-intersection",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/str/list-intersection", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"list_a":["analytics","email","seo","automation"],"list_b":["seo","content","analytics"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/str/list-intersection", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"list_a": [
"analytics",
"email",
"seo",
"automation"
],
"list_b": [
"seo",
"content",
"analytics"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "str.list_intersection",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Limites
max_items_per_list | 10000 |
max_item_chars | 4096 |
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |