Obtenha cabeçalhos Kasada com a API
Solicite uma KasadaTask para a URL HTTPS exata em www.ticketmaster.com e use os cabeçalhos retornados na requisição ao destino. O Kasada independente atualmente oferece suporte a esse host.
Nesta página
Solicite os cabeçalhos
Use Python 3.10+ ou Node.js 22+ com o SDK oficial. Instale o SDK pelos downloads oficiais.
Defina SOLVETHREE_API_KEY como a chave de API do seu workspace e SOLVETHREE_PROXY como a URL do seu proxy. Execute isso no servidor para manter a chave de API privada. Altere url para a URL HTTPS pretendida no host compatível.
import os
from uuid import uuid4
from solvethree import Solvethree
client = Solvethree(os.environ["SOLVETHREE_API_KEY"])
request = {
'type': 'KasadaTask',
'url': 'https://www.ticketmaster.com/',
"proxy": os.environ["SOLVETHREE_PROXY"],
"requestId": str(uuid4()),
}
result = client.solve(request, timeout=180)
headers = result["solution"]["headers"]
print("Ready task:", result["id"])import { randomUUID } from 'node:crypto';
import { Solvethree } from '@solvethree/sdk';
const client = new Solvethree({ apiKey: process.env.SOLVETHREE_API_KEY });
const request = {
type: 'KasadaTask',
url: 'https://www.ticketmaster.com/',
proxy: process.env.SOLVETHREE_PROXY,
requestId: randomUUID(),
};
const result = await client.solve(request, { timeoutMs: 180_000 });
const headers = result.solution.headers;
console.log('Ready task:', result.id);Ambos os exemplos chamam solve, que cria uma tarefa e consulta seu status até ela ficar pronta ou lança um erro. A próxima seção envia os cabeçalhos retornados ao destino.
A tarefa fornece type, url, um único proxy e um requestId opcional. Não adicione campos personalizados de identidade de navegador: use a identidade retornada na solução.
Envie os cabeçalhos retornados ao destino
{
"id": "example-kasada",
"status": "ready",
"solution": {
"headers": {
"x-kpsdk-ct": "EXAMPLE_HEADER_VALUE",
"x-kpsdk-cd": "EXAMPLE_HEADER_VALUE"
},
"userAgent": "EXAMPLE_USER_AGENT",
"secChUa": "EXAMPLE_CLIENT_HINTS"
}
}Copie o objeto solution.headers inteiro. Defina User-Agent e sec-ch-ua com os valores do resultado e use o mesmo proxy da resolução:
# Continue after the Kasada solve. Install requests separately: pip install requests.
import requests
solution = result["solution"]
headers = {name: value for name, value in solution["headers"].items()
if name.lower() not in {"user-agent", "sec-ch-ua"}}
headers.update({"User-Agent": solution["userAgent"], "sec-ch-ua": solution["secChUa"]})
response = requests.get(
request["url"], headers=headers,
proxies={"http": request["proxy"], "https": request["proxy"]},
timeout=30, allow_redirects=False,
)
print("Target HTTP status:", response.status_code)// Continue after the Kasada solve. Install undici separately: npm install undici@7.
import { fetch, ProxyAgent } from 'undici';
const targetHeaders = new Headers(result.solution.headers);
targetHeaders.set('user-agent', result.solution.userAgent);
targetHeaders.set('sec-ch-ua', result.solution.secChUa);
const dispatcher = new ProxyAgent(request.proxy);
try {
const response = await fetch(request.url, {
dispatcher, headers: targetHeaders, redirect: 'manual',
signal: AbortSignal.timeout(30_000),
});
console.log('Target HTTP status:', response.status);
await response.arrayBuffer();
} finally {
await dispatcher.close();
}Estas continuações exigem requests em Python ou undici em Node.js. Elas enviam a requisição à URL exata da tarefa e substituem cabeçalhos de navegador conflitantes. Mantenha quaisquer outros cabeçalhos da aplicação ou dados de sessão exigidos pelo destino.
Se você usar proxyCandidates, selecione o proxy vencedor com successful_proxy ou successfulProxy antes de enviar a requisição ao destino. Os exemplos com proxy único reutilizam request["proxy"] em Python ou request.proxy em Node.js.
Confira a resposta do destino após o envio. Em caso de 403, use o guia de solução de problemas do Ticketmaster para verificar qual requisição está sendo rejeitada.
Espera e erros
solve() cuida das consultas de status para você. Para receber o ID da tarefa imediatamente, use create_task ou createTask com espera zero e consulte esse ID até o status chegar a ready ou failed.
Com a API direta, a criação de tarefas Kasada espera até 75 segundos por padrão. Defina o tempo limite HTTP acima dessa espera ou use ?waitMs=0 e consulte o status. Veja a sequência de requisições em consulta de tarefas e tempos limite.
Se a tarefa falhar, pare de consultar o status e confira errorCode e error. Resoluções com falha são reembolsadas. Se a criação exceder o tempo limite, mantenha o mesmo requestId e os mesmos dados de entrada ao recuperá-la; um novo ID pode criar outra resolução cobrável.
Fontes e referência da API
Execute sua primeira tarefa.
Comece com $5 em créditos no espaço de trabalho.