Documentação da API
Integre o poder do nosso encurtador em suas aplicações com uma API robusta, segura e fácil de usar.
Sobre a Nossa API
Na SmashSoft, acreditamos em fornecer ferramentas poderosas e acessíveis. Nossa API foi construída sobre o Django REST Framework, uma base sólida e amplamente confiável no mundo do desenvolvimento web. Para garantir a segurança de cada requisição, utilizamos o padrão Simple JWT (JSON Web Tokens), assegurando que sua conexão seja sempre autenticada e protegida.
O resultado é uma API de alta performance, confiável e extremamente segura, pronta para escalar com as suas necessidades.
Autenticação
Para utilizar a API, você precisa de um token de acesso pessoal. Clientes dos nossos planos pagos podem gerar e gerenciar seus tokens diretamente no painel de controle, na seção "Minhas Informações".
O seu access_token
deve ser incluído no corpo (body) de cada requisição que você fizer ao nosso endpoint. Trate este token como uma senha; ele é a chave para a sua integração.
Mantenha seu access_token
em segurança e nunca o exponha no código do lado do cliente (frontend).
Endpoint: Encurtar Link
Temos um único e poderoso endpoint para criar seus links curtos.
https://smashsoft.com.br/v1/api/shortcuts/connect/
Parâmetros do Corpo (Body)
Sua requisição deve ser do tipo application/x-www-form-urlencoded
ou multipart/form-data
e conter os seguintes campos:
original_url
(string, obrigatório): A URL completa que você deseja encurtar.access_token
(string, obrigatório): Seu token de acesso pessoal.
Resposta de Sucesso (201 Created)
Se a requisição for bem-sucedida, a API retornará um objeto JSON com a URL curta e outros detalhes. A URL final já vem pronta para uso no campo data.url_shortener.url
.
{
"id": 180,
"original_url": "https://smashsoft.com.br/gedia/voucher/issued/...",
"short_code": "6fmVi8J4Isf897j",
"data": {
"url_site": {
"name": "smashsoft.com.br/cut/",
"url": "https://smashsoft.com.br/cut/"
},
"url_shortener": {
"name": "smashsoft.com.br/cut/6fmVi8J4Isf897j/",
"url": "https://smashsoft.com.br/cut/6fmVi8J4Isf897j/"
}
},
"created_at": "2025-07-13T17:55:32.831768-03:00",
"generator": 1
}
Respostas de Erro
- 400 Bad Request: Ocorre se o campo
original_url
não for fornecido ou for inválido. - 401 Unauthorized: Ocorre se o
access_token
for inválido, expirado ou não fornecido. - 429 Too Many Requests: Se você exceder os limites de requisição da API.
Exemplos de Conexão
Selecione sua linguagem preferida e comece a integrar em minutos.
import requests
def encurtar_link(url_original, token):
api_url = "https://smashsoft.com.br/v1/api/shortcuts/connect/"
payload = {
'original_url': url_original,
'access_token': token
}
try:
response = requests.post(api_url, data=payload)
response.raise_for_status()
return response.json()
except requests.exceptions.RequestException as e:
print(f"Ocorreu um erro na requisição: {e}")
return None
# --- Exemplo de Uso ---
meu_token = "SEU_TOKEN_DE_ACESSO_AQUI"
link_para_encurtar = "https://www.djangoproject.com/"
resultado = encurtar_link(link_para_encurtar, meu_token)
if resultado and resultado.get('data', {}).get('url_shortener', {}).get('url'):
url_completa = resultado['data']['url_shortener']['url']
print(f"Sucesso! URL Encurtada: {url_completa}")
else:
print("Falha ao encurtar a URL.")
async function encurtarLink(urlOriginal, token) {
const apiUrl = "https://smashsoft.com.br/v1/api/shortcuts/connect/";
const formData = new URLSearchParams();
formData.append('original_url', urlOriginal);
formData.append('access_token', token);
try {
const response = await fetch(apiUrl, {
method: 'POST',
body: formData,
});
if (!response.ok) {
throw new Error(`Erro na API: ${response.statusText}`);
}
const data = await response.json();
return data;
} catch (error) {
console.error("Falha ao conectar com a API:", error);
return null;
}
}
// --- Exemplo de Uso ---
const meuToken = "SEU_TOKEN_DE_ACESSO_AQUI";
const linkParaEncurtar = "https://developer.mozilla.org/pt-BR/";
encurtarLink(linkParaEncurtar, meuToken).then(resultado => {
if (resultado?.data?.url_shortener?.url) {
const urlCompleta = resultado.data.url_shortener.url;
console.log(`Sucesso! URL Encurtada: ${urlCompleta}`);
} else {
console.log("Falha ao encurtar a URL.");
}
});
<?php
function encurtarLink($urlOriginal, $token) {
$apiUrl = "https://smashsoft.com.br/v1/api/shortcuts/connect/";
$payload = http_build_query([
'original_url' => $urlOriginal,
'access_token' => $token
]);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $apiUrl);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 201) {
return json_decode($response, true);
}
error_log("Erro na API: Código " . $httpCode);
return null;
}
// --- Exemplo de Uso ---
$meuToken = "SEU_TOKEN_DE_ACESSO_AQUI";
$linkParaEncurtar = "https://www.php.net/";
$resultado = encurtarLink($linkParaEncurtar, $meuToken);
if ($resultado && isset($resultado['data']['url_shortener']['url'])) {
$urlCompleta = $resultado['data']['url_shortener']['url'];
echo "Sucesso! URL Encurtada: " . $urlCompleta;
} else {
echo "Falha ao encurtar a URL.";
}
?>
require 'uri'
require 'net/http'
require 'json'
def encurtar_link(url_original, token)
api_uri = URI('https://smashsoft.com.br/v1/api/shortcuts/connect/')
payload = {
'original_url' => url_original,
'access_token' => token
}
response = Net::HTTP.post_form(api_uri, payload)
if response.is_a?(Net::HTTPCreated)
JSON.parse(response.body)
else
puts "Erro na API: Código #{response.code}"
nil
end
rescue StandardError => e
puts "Ocorreu um erro na requisição: #{e.message}"
nil
end
# --- Exemplo de Uso ---
meu_token = 'SEU_TOKEN_DE_ACESSO_AQUI'
link_para_encurtar = 'https://rubyonrails.org/'
resultado = encurtar_link(link_para_encurtar, meu_token)
if resultado && resultado.dig('data', 'url_shortener', 'url')
url_completa = resultado['data']['url_shortener']['url']
puts "Sucesso! URL Encurtada: #{url_completa}"
else
puts 'Falha ao encurtar a URL.'
end