Como Criar Links Curtos via API da CodeQR: Guia Completo
Aprenda como usar a API da CodeQR para criar links curtos programaticamente e integrar essa funcionalidade em suas aplicações.

O que é a API da CodeQR?
A API da CodeQR é uma interface RESTful que permite criar, gerenciar e rastrear links curtos programaticamente. Com ela, você pode:
- Criar links curtos com URLs personalizadas e domínios customizados
- Personalizar aparência com custom preview para redes sociais
- Mascarar URLs com link cloaking para URLs complexas
- Rastrear conversões com conversion tracking avançado
- Otimizar SEO com links indexáveis pelos buscadores
- Configurar comportamentos como expiração, senha e redirecionamento
- Rastrear analytics e cliques em tempo real
- Integrar webhooks para eventos automáticos
Por que usar a API da CodeQR?
Vantagens da integração via API
- Automação completa: Crie links curtos sem intervenção manual
- Escalabilidade: Gere milhares de links rapidamente
- Personalização avançada: Controle total sobre aparência e comportamento
- Integração simples: Funciona com qualquer linguagem de programação
- Analytics detalhados: Rastreie performance e engajamento
Casos de uso comuns
- Marketing: Campanhas promocionais com conversion tracking
- E-commerce: Links para produtos com custom preview
- Redes sociais: Compartilhamento otimizado com preview personalizado
- Email marketing: Links rastreáveis em campanhas
- Afiliados: Links de referência e comissões
- SEO: Links indexáveis para melhor posicionamento
- URLs complexas: Cloaking para mascarar URLs longas
- Analytics: Rastreamento detalhado de conversões
Configuração Inicial
1. Obter sua chave de API
Para começar, você precisa de uma chave de API válida:
- Acesse Settings > API Keys no seu dashboard da CodeQR
- Clique em "Create" para gerar uma nova chave
- Selecione as permissões necessárias
- Copie e armazene a chave de forma segura
2. Configurar autenticação
Todas as requisições devem incluir sua chave de API no header de autorização:
Authorization: Bearer codeqr_xxxxxxxx
3. Obter o Project Slug
Além da chave de API, você precisa do project slug do seu projeto. Este parâmetro é obrigatório em todas as requisições:
Como encontrar o project slug:
- Acesse seu projeto no dashboard da CodeQR
- O slug aparece na URL: app.codeqr.io/[acme]
- Exemplo: se a URL é app.codeqr.io/acme, o slug é marketing
- Ou vá em Settings > Project para ver o slug configurado
4. Base URL da API
Todas as requisições devem ser feitas para:
https://api.codeqr.io
Importante: Todas as requisições devem incluir o parâmetro projectSlug na query string.
Criando seu Primeiro Link Curto
Link básico
O parâmetro mínimo necessário é a url de destino:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{"url": "https://codeqr.io"}'
Resposta da API:
{
"id": "clwc7hxcd0001ab6tqskb0h7v",
"domain": "codeqr.link",
"key": "site",
"url": "https://codeqr.io",
"archived": false,
"expiresAt": null,
"expiredUrl": null,
"password": null,
"externalId": null,
"trackConversion": true,
"proxy": true,
"title": "CodeQR - Smart QR Codes, Short Links & Custom Pages",
"description": "Create, manage, and track intelligent QR Codes, dynamic short links, and personalized landing pages. Boost engagement and gain valuable insights for your business.",
"image": "https://res.cloudinary.com/dhnaggn4g/image/upload/c_thumb,w_200,g_face/v1750078911/static/codeqr_thumbnail_abgafw.png",
"video": null,
"utm_source": null,
"utm_medium": null,
"utm_campaign": null,
"utm_term": null,
"utm_content": null,
"rewrite": false,
"doIndex": false,
"flexible": false,
"filled": false,
"ios": null,
"android": null,
"geo": null,
"userId": "cloukebiw0000ig8g2q4w6vbp",
"projectId": "clwazhjsm00002nx4heuc6vge",
"preRedirection": false,
"pageId": null,
"pageUrl": null,
"isFormMandatory": false,
"publicStats": false,
"clicks": 21,
"lastClicked": "2025-08-30T12:16:06.000Z",
"leads": 0,
"sales": 0,
"saleAmount": 0,
"createdAt": "2024-05-18T14:31:08.557Z",
"updatedAt": "2025-09-06T12:21:07.873Z",
"tagId": null,
"comments": "Link para landing page ",
"notificationToken": null,
"tags": [],
"shortLink": "https://codeqr.link/site",
"webhookIds": [],
"qrCode": "https://api.codeqr.io/qr?url=https://codeqr.link/site?qr=1"
}
Campos importantes da resposta
A resposta da API contém vários campos úteis que você pode usar em sua aplicação:
shortLink - URL do link curto
- Use este campo para compartilhar o link
- Exemplo: https://codeqr.link/claim
id - Identificador único
- Use para futuras operações (atualizar, deletar)
- Exemplo: clwc7hxcd0001ab6tqskb0h7v
key - Slug do link
- Nome personalizado (se fornecido)
- Exemplo: claim
url - URL de destino
- URL original para onde o link redireciona
- Exemplo: https://codeqr.io
domain - Domínio do link curto
- Domínio usado para o link curto
- Exemplo: codeqr.link
qrCode - URL da imagem do QR code
- QR code gerado automaticamente
- Exemplo: https://api.codeqr.io/qr?url=https://codeqr.link/site?qr=1
title - Título do link
- Título personalizado (se fornecido)
- Exemplo: "CodeQR - Smart QR Codes, Short Links & Custom Pages"
description - Descrição do link
- Descrição personalizada (se fornecida)
- Exemplo: "Create, manage, and track intelligent QR Codes"
image - Imagem do link
- URL da imagem personalizada (se fornecida)
- Exemplo: https://res.cloudinary.com/.../codeqr_thumbnail.png
clicks - Contador de cliques
- Atualizado em tempo real
- Exemplo: 21
leads - Contador de leads
- Número de leads gerados
- Exemplo: 0
sales - Contador de vendas
- Número de vendas realizadas
- Exemplo: 0
saleAmount - Valor total das vendas
- Soma dos valores das vendas
- Exemplo: 0
lastClicked - Último clique
- Timestamp do último clique registrado
- Exemplo: 2025-08-30T12:16:06.000Z
createdAt - Data de criação
- Timestamp ISO 8601
- Exemplo: 2024-05-18T14:31:08.557Z
updatedAt - Data da última atualização
- Timestamp da última modificação
- Exemplo: 2025-09-06T12:21:07.873Z
externalId - ID externo
- Identificador do seu sistema (se fornecido)
- Exemplo: PROD-001
userId - ID do usuário
- Identificador do usuário que criou o link
- Exemplo: cloukebiw0000ig8g2q4w6vbp
projectId - ID do projeto
- Identificador do projeto (se aplicável)
- Exemplo: clwazhjsm00002nx4heuc6vge
trackConversion - Rastreamento de conversão
- Se o link está configurado para rastrear conversões
- Exemplo: true
proxy - Custom preview
- Se o link usa preview personalizado
- Exemplo: true
rewrite - Link cloaking
- Se o link usa camuflagem de URL
- Exemplo: false
doIndex - Indexação SEO
- Se o link pode ser indexado pelos buscadores
- Exemplo: false
archived - Link arquivado
- Se o link está arquivado
- Exemplo: false
expiresAt - Data de expiração
- Timestamp de quando o link expira (se configurado)
- Exemplo: null
password - Senha de proteção
- Se o link está protegido por senha
- Exemplo: null
comments - Comentários
- Comentários internos sobre o link
- Exemplo: "Link para landing page"
tags - Tags associadas
- Array de tags do link
- Exemplo: []
💡 Dica: Os campos shortLink, clicks, leads, sales e lastClicked são especialmente úteis para monitorar a performance dos seus links em tempo real.
Exemplo em JavaScript
const response = await fetch("https://api.codeqr.io/links", {
method: "POST",
headers: {
Authorization: "Bearer sua_chave_api",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: "https://codeqr.io",
}),
});
const link = await response.json();
console.log("Link criado:", link.shortLink);
console.log("QR Code:", link.qrCode);
Usando o Link Curto
Agora que você criou o link curto, você pode usá-lo em qualquer lugar:
Exemplo prático:
Campanha de Marketing
Acesse nossa promoção especial: https://codeqr.link/site
Clique no link para acesso rápido!
💡 Dica: Use o campo shortLink da resposta da API para compartilhar o link em campanhas, redes sociais, emails ou qualquer plataforma.
Personalizando Links Curtos
Aparência e identificação
Você pode personalizar completamente seu link curto:
Custom Link Preview
Personalize a aparência dos seus links quando compartilhados em redes sociais:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"proxy": true,
"title": "Promoção Especial - 50% OFF",
"description": "Aproveite nossa promoção especial com 50% de desconto em todos os produtos. Oferta válida por tempo limitado!",
"image": "https://exemplo.com/promo-banner.jpg"
}'
Parâmetros de Custom Link Preview:
proxy (boolean) - Se o link curto usa o recurso de Visualização de link personalizado
- Padrão: false
- Obrigatório: Sim
- Exemplo: true
title (string | null) - O título do link curto
- Obrigatório: Sim
- Exemplo: "Promoção Especial - 50% OFF"
description (string | null) - A descrição do link curto
- Obrigatório: Sim
- Exemplo: "Aproveite nossa promoção especial com 50% de desconto"
image (string | null) - A imagem do link curto
- Obrigatório: Sim
- Exemplo: "https://exemplo.com/promo-banner.jpg"
💡 Dica: Quando proxy é true, o link curto mostrará uma página de preview personalizada antes de redirecionar para a URL final, permitindo controle total sobre como o link aparece em redes sociais.
Organização com tags
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://codeqr.io",
"tagIds": ["tag1", "tag2"],
"tagNames": "campanha-marketing"
}'
Configurações Avançadas
Controle de acesso
Proteja seus links com senha e data de expiração:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://codeqr.io/",
"password": "123456",
"expiresAt": "2026-12-31T23:59:59Z",
"expiredUrl": "https://exemplo.com/expirado"
}'
Clique no linnk apaixo e use a senha 123456 para acessar:
Redirecionamento por dispositivo
Direcione usuários para diferentes URLs baseado no dispositivo:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"ios": "https://apps.apple.com/app/exemplo",
"android": "https://play.google.com/store/apps/details?id=com.exemplo"
}'
Redirecionamento por localização
Personalize a experiência baseada na localização do usuário:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"geo": {
"BR": "https://exemplo.com/brasil",
"US": "https://exemplo.com/usa",
"GB": "https://exemplo.com/uk"
}
}'
Parâmetros UTM para analytics
Rastreie a performance dos seus links:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"utm_source": "marketing",
"utm_medium": "email",
"utm_campaign": "promocao_2025",
"utm_term": "produto",
"utm_content": "banner"
}'
Monitoramento de Conversão
Monitore conversões para medir a eficácia das suas campanhas de marketing:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"trackConversion": true,
"utm_source": "facebook",
"utm_medium": "social",
"utm_campaign": "black_friday"
}'
Parâmetros de Conversion Tracking:
trackConversion (boolean) - Se deve rastrear conversões para o link curto
- Padrão: false
- Exemplo: true
💡 Dica: Com conversion tracking ativado, você pode monitorar leads, vendas e valores de conversão diretamente no dashboard da CodeQR.
Camuflagem de Links
Mascare sua URL de destino para que os usuários vejam apenas o link curto na barra de endereços:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com/pagina-muito-longa-e-complexa",
"rewrite": true,
"key": "link-limpo"
}'
Parâmetros de Link Cloaking:
rewrite (boolean) - Se o link curto usa camuflagem de link
- Padrão: false
- Obrigatório: Sim
- Exemplo: true
💡 Dica: Com rewrite: true, a URL de destino fica completamente oculta. Os usuários sempre verão apenas o link curto na barra de endereços, mesmo após o redirecionamento.
Search Engine Indexing
Permita que mecanismos de busca indexem seu link curto:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"doIndex": true,
"title": "Página Importante",
"description": "Conteúdo que deve ser indexado pelos buscadores"
}'
Parâmetros de Search Engine Indexing:
doIndex (boolean) - Permitir que os mecanismos de busca indexem seu link curto
- Padrão: false
- Exemplo: true
💡 Dica: Por padrão, os links curtos não são indexados pelos buscadores. Use doIndex: true apenas quando quiser que o link curto apareça nos resultados de busca. Saiba mais: https://codeqr.link/noindex
Operações em Lote
Criando múltiplos links
Crie até 100 links de uma vez:
curl --request POST \
--url https://api.codeqr.io/links/bulk \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '[
{
"url": "https://produto1.com",
"key": "produto-1"
},
{
"url": "https://produto2.com",
"key": "produto-2"
},
{
"url": "https://produto3.com",
"key": "produto-3"
}
]'
⚠️ Limitações das operações em lote:
- Não suporta previews customizados
- Não dispara eventos de webhook
- Máximo de 100 links por requisição
Atualizando múltiplos links
Atualize até 100 links com os mesmos dados:
curl --request PATCH \
--url https://api.codeqr.io/links/bulk \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"link_ids": ["link1", "link2", "link3"],
"data": {
"utm_source": "facebook",
"utm_medium": "cpc",
"tagIds": ["campanha-2025"]
}
}'
Deletando múltiplos links
curl --request DELETE \ --url https://api.codeqr.io/links/bulk?linkIds=link1,link2,link3 \ --header 'Authorization: Bearer codeqr_your_api_key'
Organização de Links
External ID
Use externalId para associar links com seu sistema:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"externalId": "12345"
}'
Recuperar link por externalId:
curl --request GET \ --url "https://api.codeqr.io/links/info?external_id=12345" \ --header 'Authorization: Bearer codeqr_your_api_key'
Tenant ID
Agrupe links por tenant (usuário/equipe):
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"tenantId": "usuario123"
}'
Recuperar links por tenantId:
curl --request GET \ --url "https://api.codeqr.io/links?tenantId=usuario123" \ --header 'Authorization: Bearer codeqr_your_api_key'
Tags
Organize links com tags:
curl --request POST \
--url https://api.codeqr.io/links \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"tagIds": ["clux0rgak00011..."]
}'
Recuperar links por tags:
curl --request GET \ --url "https://api.codeqr.io/links?tagNames=marketing" \ --header 'Authorization: Bearer codeqr_your_api_key'
Exemplos Práticos
1. Link para E-commerce
async function criarLinkProduto(produto) {
const response = await fetch("https://api.codeqr.io/links", {
method: "POST",
headers: {
Authorization: "Bearer codeqr_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: `https://loja.com/produto/${produto.id}`,
key: `produto-${produto.id}`,
title: produto.nome,
description: `Link para ${produto.nome}`,
externalId: produto.sku,
utm_source: "ecommerce",
utm_medium: "link_curto",
utm_campaign: "produto",
tagIds: ["produtos", "ecommerce"],
}),
});
return await response.json();
}
// Uso
const produto = {
id: 123,
nome: "Smartphone XYZ",
sku: "SP-123",
};
const link = await criarLinkProduto(produto);
console.log("Link criado:", link.shortLink);
2. Link para Campanha de Marketing
import requests
import json
def criar_link_campanha(url_destino, nome_campanha, canal):
data = {
"url": url_destino,
"key": f"campanha-{nome_campanha.lower().replace(' ', '-')}",
"title": f"Campanha - {nome_campanha}",
"description": f"Link para campanha {nome_campanha} via {canal}",
"utm_source": canal,
"utm_medium": "link_curto",
"utm_campaign": nome_campanha.lower().replace(' ', '-'),
"tagNames": [nome_campanha, canal]
}
response = requests.post(
'https://api.codeqr.io/links',
headers={
'Authorization': 'Bearer codeqr_your_api_key',
'Content-Type': 'application/json'
},
data=json.dumps(data)
)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"Erro: {response.status_code} - {response.text}")
# Uso
link_campanha = criar_link_campanha(
"https://promocao.com/desconto-50",
"Black Friday 2025",
"email"
)
print(f"Link da campanha criado: {link_campanha['shortLink']}")
3. Link para Afiliados
<?php
function criarLinkAfiliado($url_destino, $afiliado_id, $produto_id) {
$data = [
'url' => $url_destino,
'key' => "afiliado-{$afiliado_id}-{$produto_id}",
'title' => "Link de Afiliado - Produto {$produto_id}",
'description' => "Link de afiliado para produto {$produto_id}",
'externalId' => "afiliado_{$afiliado_id}_{$produto_id}",
'utm_source' => 'afiliado',
'utm_medium' => 'link_curto',
'utm_campaign' => "produto_{$produto_id}",
'utm_content' => "afiliado_{$afiliado_id}",
'tagIds' => ['afiliados', "produto-{$produto_id}"]
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.codeqr.io/links');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer codeqr_your_api_key',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
return json_decode($response, true);
} else {
throw new Exception("Erro ao criar link: $httpCode");
}
}
// Uso
$link_afiliado = criarLinkAfiliado(
"https://loja.com/produto/123",
"AF001",
"123"
);
echo "Link de afiliado criado: " . $link_afiliado['shortLink'];
?>
4. Link com Custom Preview para Redes Sociais
async function criarLinkComPreview(url, titulo, descricao, imagem) {
const response = await fetch("https://api.codeqr.io/links", {
method: "POST",
headers: {
Authorization: "Bearer codeqr_your_api_key",
"Content-Type": "application/json",
},
body: JSON.stringify({
url: url,
proxy: true,
title: titulo,
description: descricao,
image: imagem,
trackConversion: true,
utm_source: "social_media",
utm_medium: "custom_preview",
utm_campaign: "viral_campaign",
}),
});
return await response.json();
}
// Uso
const linkPreview = await criarLinkComPreview(
"https://exemplo.com/promocao",
"🔥 Promoção Relâmpago - 70% OFF!",
"Últimas 24h! Aproveite nossa maior promoção do ano com 70% de desconto em todos os produtos. Frete grátis!",
"https://exemplo.com/banner-promocao.jpg"
);
console.log("Link com preview criado:", linkPreview.shortLink);
5. Link com Cloaking para URLs Complexas
import requests
import json
def criar_link_cloaking(url_original, slug_personalizado):
"""
Cria um link curto com cloaking para mascarar URLs complexas
"""
data = {
"url": url_original,
"key": slug_personalizado,
"rewrite": True,
"title": "Acesso Direto",
"description": "Link direto para o conteúdo",
"trackConversion": True,
"utm_source": "cloaking",
"utm_medium": "clean_url"
}
response = requests.post(
'https://api.codeqr.io/links',
headers={
'Authorization': 'Bearer codeqr_your_api_key',
'Content-Type': 'application/json'
},
data=json.dumps(data)
)
if response.status_code == 200:
return response.json()
else:
raise Exception(f"Erro: {response.status_code} - {response.text}")
# Uso
url_complexa = "https://exemplo.com/categoria/produto/123?utm_source=email&utm_medium=newsletter&utm_campaign=promocao&ref=cliente&token=abc123"
link_limpo = criar_link_cloaking(url_complexa, "produto-especial")
print(f"URL original: {url_complexa}")
print(f"Link limpo: {link_limpo['shortLink']}")
6. Link Indexável para SEO
<?php
function criarLinkIndexavel($url, $titulo, $descricao, $palavras_chave) {
$data = [
'url' => $url,
'key' => strtolower(str_replace(' ', '-', $palavras_chave)),
'title' => $titulo,
'description' => $descricao,
'doIndex' => true,
'trackConversion' => true,
'utm_source' => 'seo',
'utm_medium' => 'organic',
'tagNames' => ['seo', 'indexavel']
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.codeqr.io/links');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer sua_chave_api',
'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
return json_decode($response, true);
} else {
throw new Exception("Erro ao criar link indexável: $httpCode");
}
}
// Uso
$link_seo = criarLinkIndexavel(
"https://exemplo.com/guia-completo-marketing-digital",
"Guia Completo de Marketing Digital 2025",
"Aprenda as melhores estratégias de marketing digital para 2025. Dicas práticas, ferramentas e cases de sucesso.",
"marketing digital 2025"
);
echo "Link indexável criado: " . $link_seo['shortLink'];
?>
Gerenciando Links
Atualizando um link
Use o ID do link para atualizá-lo:
curl --request PATCH \
--url https://api.codeqr.io/links/link_eBKA4MT44XnI17hYLchkjUOd \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://novo-destino.com",
"title": "Novo título"
}'
Upsert (Criar ou Atualizar)
O upsert cria um novo link se não existir, ou atualiza se já existir:
curl --request POST \
--url https://api.codeqr.io/links/update \
--header 'Authorization: Bearer codeqr_your_api_key' \
--header 'Content-Type: application/json' \
--data '{
"url": "https://exemplo.com",
"key": "link-estavel"
}'
Deletando um link
curl --request DELETE \ --url https://api.codeqr.io/links/link_eBKA4MT44XnI17hYLchkjUOd \ --header 'Authorization: Bearer codeqr_your_api_key'
Tratamento de Erros
Códigos de erro comuns
bad_request (400) - Requisição malformada
- Solução: Verificar formato dos dados
unauthorized (401) - Chave de API inválida
- Solução: Verificar chave de API
forbidden (403) - Sem permissão
- Solução: Verificar permissões da chave
not_found (404) - Recurso não encontrado
- Solução: Verificar ID/URL do link
conflict (409) - Conflito (ex: key duplicada)
- Solução: Usar key única
rate_limit_exceeded (429) - Rate limit excedido
- Solução: Aguardar e tentar novamente
internal_server_error (500) - Erro interno do servidor
- Solução: Tentar novamente mais tarde
Melhores Práticas
1. Segurança
- Nunca exponha chaves de API no frontend
- Use variáveis de ambiente para armazenar credenciais
- Implemente rotação regular de chaves
- Use chaves com permissões mínimas necessárias
2. Performance
- Use operações em lote para criar múltiplos links
- Monitore rate limits e implemente retry logic
- Considere webhooks para atualizações em tempo real
3. Monitoramento
- Implemente logging para todas as operações
- Use UTM parameters para rastreamento
- Configure alertas para erros críticos
- Monitore uso anômalo de API
4. Organização
- Use tags para categorizar links
- Implemente externalId para integração com seu sistema
- Use tenantId para multi-tenancy
- Mantenha nomenclatura consistente
Próximos Passos
Agora que você sabe como criar links curtos via API, explore estas funcionalidades avançadas:
1. Gerenciamento de Links
2. Operações em Lote
3. Recursos Avançados
4. Integração com SDKs
Recursos Adicionais
Documentação Oficial
Artigos Relacionados
- Como usar link cloaking na CodeQR
- Como criar links protegidos por senha
- Como usar tags na CodeQR
- Integração com ActiveCampaign
Suporte
Conclusão
A API da CodeQR oferece uma solução completa e flexível para criar links curtos programaticamente. Com este guia, você aprendeu:
- ✅ Como configurar autenticação e fazer sua primeira requisição
- ✅ Como personalizar aparência e comportamento dos links
- ✅ Conversion tracking para medir eficácia de campanhas
- ✅ Custom link preview para redes sociais
- ✅ Link cloaking para mascarar URLs complexas
- ✅ Search engine indexing para otimização SEO
- ✅ Diferentes formas de organizar e categorizar links
- ✅ Configurações avançadas para casos específicos
- ✅ Exemplos práticos em JavaScript, Python e PHP
- ✅ Tratamento de erros e melhores práticas
Agora você está pronto para integrar a criação de links curtos em suas aplicações e aproveitar todo o potencial da plataforma CodeQR!
Este artigo foi útil? Compartilhe com sua equipe e explore outros recursos da documentação da CodeQR.