Revenda o catálogo Mikey Ads no seu próprio site
Consulte o catálogo liberado pra você com seu preço negociado e compre com o saldo pré-pago. A resposta da compra traz o ativo completo — login, senha, 2FA, cookies, proxy, CNPJ e o perfil do AdsPower (User-Agent e geolocalização originais) — e um .xlsx pronto pra importar no AdsPower, pra você entregar ao seu cliente na hora.
Peça sua chave de API
O time Mikey Ads gera a chave e libera os produtos com o preço combinado.
Carregue saldo
A API compra com saldo pré-pago. A recarga é feita com o time Mikey Ads.
Integre
Liste o catálogo, feche o pedido e entregue as contas ao seu cliente.
Autenticação
Authorization: Bearer mk_live_ab12cd34ef56...
https://www.mikeyads.io). Sem o www, a requisição é redirecionada e a maioria das bibliotecas HTTP descarta o header Authorization no redirecionamento — o resultado é um 401 com a chave certa.Convenções
- Requisições e respostas em JSON (UTF-8), exceto
/pedidos/:id/xlsx, que devolve um arquivo. - Valores em dinheiro são inteiros em centavos:
18000= R$ 180,00. Não há casas decimais. - Datas no formato ISO 8601, em UTC.
- Identificadores são UUIDs (texto).
- Campo sem informação vem como
null— o campo continua presente na resposta. - Novos campos podem ser adicionados às respostas sem aviso. Ignore o que você não usa.
Fluxo de integração
- GET /produtos — monte sua vitrine com o que está liberado, seu preço e o estoque.
- GET /saldo — confira se o saldo cobre a compra.
- POST /pedidos com
Idempotency-Key— o saldo é debitado e as contas vêm na resposta. - GET /pedidos/:id/xlsx — baixe o arquivo pro AdsPower e entregue ao cliente junto com os dados.
- Se a resposta da compra se perder, GET /pedidos/:id (ou o mesmo POST com a mesma chave de idempotência) devolve o pedido de novo, sem cobrar outra vez.
Referência
/produtosCatálogo liberado pra vocêHeaders
| Campo | Tipo | Descrição |
|---|---|---|
Authorizationobrigatório | string | Bearer mk_live_… — sua chave de API. |
curl https://www.mikeyads.io/api/v1/parceiro/produtos \ -H "Authorization: Bearer mk_live_..."
Resposta 200 — "produtos" é uma lista de:
| Campo | Tipo | Descrição |
|---|---|---|
listing_id | uuid | Identificador do produto. É o que você manda no POST /pedidos. |
titulo | string | Nome do produto. |
categoria | string | null | Categoria do produto (ex.: Google Ads, Facebook). |
preco_centavos | inteiro | Seu preço negociado por unidade, em centavos. 18000 = R$ 180,00. |
estoque | inteiro | Unidades disponíveis agora. É o máximo que um pedido pode pedir neste momento; muda em tempo real. |
descricao | string | null | Descrição do produto, pra mostrar no seu site. |
especificacoes | string | null | Especificações (ex.: verificada, 2FA, país). Texto livre; as quebras de linha são significativas. |
imagem_url | string | null | URL pública da imagem do produto. |
selo_qualidade | booleano | Se o produto tem o selo de qualidade Mikey Ads. |
{
"produtos": [
{
"listing_id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"titulo": "Verificada 2x · DOC",
"categoria": "Google Ads",
"preco_centavos": 18000,
"estoque": 12,
"descricao": "Conta verificada com documento e selfie.",
"especificacoes": "Login · 2FA · Cookies · Proxy 30 dias",
"imagem_url": "https://.../produtos/verificada.png",
"selo_qualidade": true
}
]
}Só aparecem produtos ativos e liberados pra sua chave, em ordem alfabética. Produto pausado some da lista até voltar.
/saldoSaldo pré-pago disponívelHeaders
| Campo | Tipo | Descrição |
|---|---|---|
Authorizationobrigatório | string | Bearer mk_live_… — sua chave de API. |
curl https://www.mikeyads.io/api/v1/parceiro/saldo \ -H "Authorization: Bearer mk_live_..."
Resposta 200
| Campo | Tipo | Descrição |
|---|---|---|
saldo_centavos | inteiro | Saldo disponível pra compras, em centavos. |
{ "saldo_centavos": 452000 }/pedidosCompra — debita o saldo e entrega as contasHeaders
| Campo | Tipo | Descrição |
|---|---|---|
Authorizationobrigatório | string | Bearer mk_live_… — sua chave de API. |
Content-Typeobrigatório | string | application/json |
Idempotency-Key | string | Opcional, mas recomendado. Um valor único por compra — por exemplo, o id do pedido no seu sistema. Ver Idempotência. |
Corpo (JSON)
| Campo | Tipo | Descrição |
|---|---|---|
listing_idobrigatório | uuid | O produto, como veio em GET /produtos. |
quantidade | inteiro | Quantas contas comprar, número inteiro. Padrão 1. Mínimo 1; máximo o estoque do produto no momento. O pedido é tudo ou nada: se não houver estoque ou saldo pra quantidade inteira, nada é cobrado nem entregue. |
curl -X POST https://www.mikeyads.io/api/v1/parceiro/pedidos \
-H "Authorization: Bearer mk_live_..." \
-H "Idempotency-Key: pedido-8841" \
-H "Content-Type: application/json" \
-d '{"listing_id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d", "quantidade": 1}'Resposta 201
| Campo | Tipo | Descrição |
|---|---|---|
pedido_id | uuid | Identificador do pedido. Guarde: é com ele que você reconsulta e baixa o .xlsx. |
produto_titulo | string | Nome do produto comprado. |
criado_em | data ISO 8601 | Quando o pedido foi feito (UTC). |
quantidade | inteiro | Quantas contas vieram — sempre igual ao que foi pedido. |
preco_unit_centavos | inteiro | Preço por unidade cobrado, em centavos. |
total_centavos | inteiro | Total debitado do seu saldo, em centavos. |
contas | array de conta | Uma entrada por conta entregue. Formato em Objeto conta. |
{
"pedido_id": "f9e8d7c6-b5a4-4321-9876-543210fedcba",
"produto_titulo": "Verificada 2x · DOC",
"criado_em": "2026-09-19T14:32:08.512Z",
"quantidade": 1,
"preco_unit_centavos": 18000,
"total_centavos": 18000,
"contas": [
{
"id": "c1a2b3d4-0000-4000-8000-000000000001",
"login": "exemplo@gmail.com",
"senha": "••••••••",
"dois_fatores": "JBSWY3DPEHPK3PXP",
"cookies": "[{\"domain\":\".google.com\", ...}]",
"proxy": "user:pass@host:porta",
"cnpj": "12.345.678/0001-90",
"adspower": {
"perfil_id": "k1h2kd6q",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ...",
"plataforma": "accounts.google.com",
"proxy_tipo": "socks5",
"ip_checker": "ip2location",
"proxy_url": null,
"proxy_id": null,
"ip": "187.0.0.1",
"pais": "br"
}
}
]
}/pedidos/:idReconsulta um pedido já feitoParâmetros
| Campo | Tipo | Descrição |
|---|---|---|
Authorizationobrigatório | string | Bearer mk_live_… — sua chave de API. |
:idobrigatório | uuid | O pedido_id devolvido na compra. |
curl https://www.mikeyads.io/api/v1/parceiro/pedidos/f9e8d7c6-b5a4-4321-9876-543210fedcba \ -H "Authorization: Bearer mk_live_..."
Resposta 200 no mesmo formato da compra. Só funciona pra pedidos da sua própria chave; nada é cobrado de novo.
/pedidos/:id/xlsxArquivo de importação do AdsPowerParâmetros
| Campo | Tipo | Descrição |
|---|---|---|
Authorizationobrigatório | string | Bearer mk_live_… — sua chave de API. |
:idobrigatório | uuid | O pedido_id devolvido na compra. |
curl https://www.mikeyads.io/api/v1/parceiro/pedidos/f9e8d7c6-b5a4-4321-9876-543210fedcba/xlsx \ -H "Authorization: Bearer mk_live_..." \ -o pedido.xlsx
Devolve um arquivo .xlsx (application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) no modelo de importação em massa do AdsPower, com todas as contas do pedido e o User-Agent e a geolocalização originais. É o mesmo arquivo que o cliente do site da Mikey Ads recebe. No AdsPower: Perfis → Importar → Mass import, selecione o arquivo e confirme.
Objeto conta
Cada item de contas nas respostas de pedido.
Campos
| Campo | Tipo | Descrição |
|---|---|---|
id | uuid | Identificador da conta no nosso sistema. Use ao falar com o suporte. |
login | string | null | E-mail de acesso da conta. |
senha | string | null | Senha da conta. |
dois_fatores | string | null | Chave secreta do 2FA (TOTP, base32). Gere o código de 6 dígitos em qualquer app autenticador a partir dela. |
cookies | string | null | Cookies da sessão do navegador, em JSON (texto). Pode vir vazio. |
proxy | string | null | Proxy usado pela conta, no formato em que foi configurada. |
cnpj | string | null | CNPJ associado à conta, quando houver. |
adspower | objeto | Dados do perfil no AdsPower — o mesmo dispositivo em que a conta foi criada. Campos abaixo. |
adspower.perfil_id | string | null | ID do perfil original no AdsPower. |
adspower.user_agent | string | null | User-Agent do navegador original. Use o mesmo: trocar a impressão digital aumenta o risco de bloqueio. |
adspower.plataforma | string | null | Plataforma do perfil (ex.: accounts.google.com). |
adspower.proxy_tipo | string | null | Tipo de proxy do perfil (ex.: socks5, http). |
adspower.ip_checker | string | null | Serviço de verificação de IP configurado no perfil. |
adspower.proxy_url | string | null | URL de troca de IP do proxy, quando houver. |
adspower.proxy_id | string | null | ID do proxy salvo no AdsPower, quando houver. |
adspower.ip | string | null | IP registrado no perfil. |
adspower.pais | string | null | País do perfil (código de 2 letras, ex.: br). |
Entregar ao seu cliente
- Entregue todos os campos da conta e o .xlsx. O caminho mais seguro pro cliente é importar o .xlsx no AdsPower: ele mantém o User-Agent e a geolocalização com que a conta foi criada.
- Se o cliente for cadastrar à mão, oriente a usar o
adspower.user_agente o proxy/país da conta. Abrir num dispositivo diferente é a causa mais comum de bloqueio logo no primeiro acesso. - Trate senha, 2FA e cookies como dados sensíveis: não grave em log, não envie por canal aberto e mostre só pro comprador.
- Guarde o
pedido_ide oidde cada conta — é o que o suporte pede numa troca.
Idempotência
Limites
| Limite padrão | Janela | Observação |
|---|---|---|
| 60 requisições | 1 minuto, por chave | Ajustável por parceiro — fale com a gente se precisar de mais. |
Erros
{ "erro": "Estoque insuficiente." }| Status | Mensagens | O que fazer |
|---|---|---|
| 400 | Corpo da requisição precisa ser JSON · Informe listing_id · listing_id inválido · quantidade precisa ser um número >= 1 · Quantidade inválida · Estoque insuficiente · Saldo insuficiente | Corrija a requisição. Em estoque/saldo, consulte GET /produtos ou GET /saldo antes de tentar de novo. |
| 401 | Envie o header Authorization · Chave de API ausente · Chave de API inválida ou revogada · Parceiro inativo | Confira a chave e o endereço com www. Se persistir, fale com o time. |
| 403 | Produto não liberado pra este parceiro · Pedido não encontrado | O produto não está na sua lista, ou o pedido é de outra chave. |
| 404 | Pedido não encontrado | Confira o pedido_id. |
| 429 | Limite de requisições excedido | Espere alguns segundos e repita. |
| 500 | Falha inesperada do nosso lado | Repita com a mesma Idempotency-Key (não cobra duas vezes); se persistir, fale com o time. |
Saldo e trocas
- O saldo é pré-pago e creditado pelo time Mikey Ads depois do acerto do pagamento. Não há compra a prazo pela API: sem saldo, o pedido é recusado.
- Trocas de conta com problema são feitas pelo suporte, não pela API. Tenha em mãos o
pedido_ide oidda conta.
Exemplos de código
const BASE = "https://www.mikeyads.io/api/v1/parceiro";
const headers = { Authorization: `Bearer ${process.env.MIKEY_API_KEY}` };
// 1. catálogo
const { produtos } = await fetch(`${BASE}/produtos`, { headers }).then((r) => r.json());
// 2. compra (idempotente: use o id do pedido no SEU sistema)
const res = await fetch(`${BASE}/pedidos`, {
method: "POST",
headers: { ...headers, "Content-Type": "application/json", "Idempotency-Key": "pedido-8841" },
body: JSON.stringify({ listing_id: produtos[0].listing_id, quantidade: 1 }),
});
const pedido = await res.json();
if (!res.ok) throw new Error(pedido.erro);
// 3. arquivo pro AdsPower
const xlsx = Buffer.from(
await fetch(`${BASE}/pedidos/${pedido.pedido_id}/xlsx`, { headers }).then((r) => r.arrayBuffer()),
);import os, requests
BASE = "https://www.mikeyads.io/api/v1/parceiro"
headers = {"Authorization": f"Bearer {os.environ['MIKEY_API_KEY']}"}
produtos = requests.get(f"{BASE}/produtos", headers=headers).json()["produtos"]
r = requests.post(
f"{BASE}/pedidos",
headers={**headers, "Idempotency-Key": "pedido-8841"},
json={"listing_id": produtos[0]["listing_id"], "quantidade": 1},
)
pedido = r.json()
if not r.ok:
raise RuntimeError(pedido["erro"])
xlsx = requests.get(f"{BASE}/pedidos/{pedido['pedido_id']}/xlsx", headers=headers).content
open("pedido.xlsx", "wb").write(xlsx)