Documentação oficial

API do Monetizzy

Integre sua conta com a API do Monetizzy para autenticar sua chave, listar domínios disponíveis e criar links encurtados automaticamente.

Visão geral

Documentação completa da API Monetizzy para integração de encurtamento e monetização de links em suas aplicações.

A API aceita parâmetros por GET ou POST, dependendo do endpoint. As respostas são retornadas em JSON e normalmente agrupadas por contexto, como authentication, shorten ou domains.

Base URL: https://monetizzy.com/api

Para usar a API, acesse sua área de desenvolvedor no painel e gere uma chave. Guarde essa chave com segurança, pois ela identifica sua conta nas chamadas.

Autenticação

Envie sua chave no parâmetro key. As chaves de usuário são gerenciadas no painel de desenvolvedores.

ANY/api/auth?key=SUA_CHAVE

Descrição: endpoint utilizado para autenticar uma chave de API e confirmar o usuário associado.

ParâmetroTipoDescrição
keystringChave de API criada no painel de desenvolvedores.

Exemplo de requisição:

curl "https://monetizzy.com/api/auth?key=SUA_CHAVE"

Exemplo de resposta:

{
  "authentication": {
    "code": "NCXxhmZ8ropSWzDf5wUiYO",
    "status": "success",
    "description": "The key was successfully authenticated.",
    "user": {
      "id": "166235",
      "username": "johndoe"
    }
  }
}

Encurtamento automatico para paginas

Use este endpoint para colocar um pequeno script no seu site e transformar automaticamente URLs selecionadas da pagina em links encurtados. Ele aceita uma lista de URLs ou um bloco HTML, remove duplicadas, aplica filtros por dominio e devolve um mapa de substituicao.

Recomendacao: marque apenas os links desejados com um atributo como data-mtz-short="1" e use include_hosts, exclude_hosts e max_links para manter controle fino sobre o que sera encurtado.
POST/api/shorten/auto

O que este endpoint faz:

  • Recebe varias URLs de uma pagina em uma unica chamada.
  • Remove URLs duplicadas antes de criar links.
  • Ignora URLs invalidas, dominios bloqueados e links que ja usam um dominio encurtado ativo.
  • Reaproveita links ja criados pelo mesmo usuario quando a URL, o dominio e o tipo forem iguais.
  • Se o ID do dominio enviado nao existir, usa automaticamente um dominio ativo aleatorio.
  • Retorna um mapa de substituicao com original, shortened, alias e reused.
ParâmetroObrigatórioDescrição
keySimChave de API do usuário.
domainSimID do domínio retornado pela listagem de domínios. Se o ID nao existir, a API usa um dominio ativo aleatorio e informa isso em summary.domain.fallback.
links ou urlsSimLista JSON, array ou valores separados por virgula com as URLs que devem ser analisadas. Pode ser array JSON, array de formulario ou string separada por virgula.
htmlNãoBloco HTML opcional. A API extrai automaticamente URLs de atributos href e src.
page_urlNãoURL da pagina onde o script esta rodando. Usada junto com same_host_only para limitar links ao mesmo dominio.
include_hostsNãoLista opcional de dominios permitidos. Aceita dominio exato ou wildcard como *.exemplo.com.
exclude_hostsNãoLista opcional de dominios que nunca devem ser encurtados.
exclude_patternsNãoLista de textos que, se aparecerem na URL, fazem o link ser ignorado. Exemplo: #comentarios, /login, checkout.
same_host_onlyNãoQuando verdadeiro, encurta apenas URLs do mesmo host informado em page_url.
max_linksNãoLimite de links processados por chamada. Padrao 50, maximo 100.
alias_prefixNãoPrefixo opcional para os aliases gerados automaticamente.

Configuracao recomendada para sites comuns:

{
  "domain": "1",
  "type": 1,
  "max_links": 50,
  "alias_prefix": "site",
  "include_hosts": ["seudominio.com", "*.seudominio.com"],
  "exclude_hosts": ["admin.seudominio.com", "checkout.seudominio.com"],
  "exclude_patterns": ["/login", "/minha-conta", "#", "mailto:", "tel:"]
}

Configuracao mais conservadora:

{
  "domain": "1",
  "type": 1,
  "same_host_only": true,
  "max_links": 20,
  "alias_prefix": "download"
}

Configuracao para blogs com links externos:

{
  "domain": "1",
  "type": 1,
  "max_links": 100,
  "alias_prefix": "blog",
  "exclude_hosts": ["facebook.com", "instagram.com", "youtube.com", "wa.me"],
  "exclude_patterns": ["#respond", "/wp-admin", "/wp-login.php"]
}

Exemplo de requisição: JSON direto

curl -X POST "https://monetizzy.com/api/shorten/auto" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: SUA_CHAVE" \
  -d '{
    "key": "SUA_CHAVE",
    "domain": "1",
    "type": 1,
    "page_url": "https://meusite.com/artigo",
    "links": [
      "https://meusite.com/download/arquivo.zip",
      "https://meusite.com/oferta"
    ],
    "include_hosts": ["meusite.com"],
    "exclude_patterns": ["#comentarios"],
    "max_links": 25,
    "alias_prefix": "site"
  }'

Exemplo enviando HTML para a API extrair href e src

curl -X POST "https://monetizzy.com/api/shorten/auto" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: SUA_CHAVE" \
  -d '{
    "domain": "1",
    "type": 1,
    "html": "<a href=\"https://meusite.com/download.zip\">Baixar</a><img src=\"https://cdn.meusite.com/banner.jpg\">",
    "include_hosts": ["meusite.com", "cdn.meusite.com"],
    "max_links": 10,
    "alias_prefix": "html"
  }'

Exemplo de resposta:

{
  "authentication": {
    "status": "sucesso",
    "user": {
      "id": "166235",
      "username": "johndoe"
    }
  },
  "auto_shorten": {
    "status": "sucesso",
    "description": "Links analisados e encurtados automaticamente.",
    "summary": {
      "received": 2,
      "processed": 2,
      "skipped": 0,
      "max_links": 25,
      "domain": {
        "requested_id": "1",
        "used_id": "1",
        "used_domain": "example1.com",
        "fallback": false
      }
    },
    "replacements": [
      {
        "original": "https://meusite.com/download/arquivo.zip",
        "shortened": "https://example1.com/site-aFtguIfIbPAv",
        "alias": "site-aFtguIfIbPAv",
        "reused": false
      }
    ],
    "skipped": [
      {
        "url": "https://example1.com/link-ja-encurtado",
        "reason": "already_short_domain"
      }
    ]
  }
}

Exemplo de script para colocar na pagina usando links marcados

<a href="https://meusite.com/download/arquivo.zip" data-mtz-short="1">Baixar arquivo</a>
<a href="https://meusite.com/oferta" data-mtz-short="1">Ver oferta</a>
<script>
(async function () {
  const apiKey = 'SUA_CHAVE';
  const config = {
    domain: '1',
    type: 1,
    alias_prefix: 'site',
    page_url: location.href,
    include_hosts: [location.hostname],
    exclude_patterns: ['#', '/login', '/minha-conta'],
    max_links: 50
  };

  const markedLinks = [...document.querySelectorAll('a[data-mtz-short="1"]')];
  const links = markedLinks.map((item) => item.href).filter(Boolean);

  if (links.length === 0) return;

  const response = await fetch('https://monetizzy.com/api/shorten/auto', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-KEY': apiKey
    },
    body: JSON.stringify({
      key: apiKey,
      links,
      ...config
    })
  });

  const data = await response.json();

  if (!response.ok || data.auto_shorten?.status !== 'sucesso') {
    console.warn('Auto Shorten falhou', data);
    return;
  }

  (data.auto_shorten?.replacements || []).forEach((link) => {
    document.querySelectorAll(`a[href="${link.original}"]`).forEach((item) => {
      item.href = link.shortened;
      item.rel = 'nofollow sponsored noopener';
    });
  });
})();
</script>

Snippet automatico para todos os links de download da pagina

<script>
(async function () {
  const apiKey = 'SUA_CHAVE';
  const candidates = [...document.querySelectorAll('a[href]')].filter((item) => {
    const href = item.href || '';
    return href.includes('/download') || href.endsWith('.zip') || href.endsWith('.apk');
  });

  const links = candidates.map((item) => item.href);
  if (links.length === 0) return;

  const response = await fetch('https://monetizzy.com/api/shorten/auto', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-KEY': apiKey
    },
    body: JSON.stringify({
      key: apiKey,
      domain: '1',
      type: 1,
      page_url: location.href,
      links,
      same_host_only: true,
      max_links: 40,
      alias_prefix: 'download'
    })
  });

  const data = await response.json();
  const map = new Map((data.auto_shorten?.replacements || []).map((link) => [link.original, link.shortened]));

  candidates.forEach((item) => {
    if (map.has(item.href)) {
      item.href = map.get(item.href);
      item.rel = 'nofollow sponsored noopener';
    }
  });
})();
</script>

Exemplo mais simples: encurtar automaticamente links do MediaFire

Use este modelo quando voce quer colar um unico JavaScript na pagina e deixar que ele encontre sozinho links de um site especifico, como mediafire.com. Basta trocar SUA_CHAVE, domain e, se quiser, adicionar outros dominios na lista hostsParaEncurtar.

<script>
(async function () {
  const apiKey = 'SUA_CHAVE';
  const domainId = '1';
  const tipo = 1;

  const hostsParaEncurtar = [
    'mediafire.com',
    'www.mediafire.com'
  ];

  const linksDaPagina = [...document.querySelectorAll('a[href]')];

  const linksParaEncurtar = linksDaPagina
    .filter((item) => {
      try {
        const url = new URL(item.href);
        return hostsParaEncurtar.includes(url.hostname);
      } catch (error) {
        return false;
      }
    })
    .map((item) => item.href);

  if (linksParaEncurtar.length === 0) return;

  const response = await fetch('https://monetizzy.com/api/shorten/auto', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'X-API-KEY': apiKey
    },
    body: JSON.stringify({
      key: apiKey,
      domain: domainId,
      type: tipo,
      links: linksParaEncurtar,
      include_hosts: hostsParaEncurtar,
      max_links: 100,
      alias_prefix: 'mediafire'
    })
  });

  const data = await response.json();
  const substituicoes = data.auto_shorten?.replacements || [];

  substituicoes.forEach((link) => {
    document.querySelectorAll(`a[href="${link.original}"]`).forEach((item) => {
      item.href = link.shortened;
      item.rel = 'nofollow sponsored noopener';
    });
  });
})();
</script>

Versao para varios sites de download

Para encurtar automaticamente links de varios dominios, mantenha o mesmo script e aumente apenas a lista hostsParaEncurtar.

const hostsParaEncurtar = [
  'mediafire.com',
  'www.mediafire.com',
  'mega.nz',
  'drive.google.com',
  'dropbox.com',
  'www.dropbox.com'
];

Motivos comuns em skipped

MotivoSignificado
invalid_urlA URL nao e valida ou esta relativa, como /download. Envie URLs absolutas com https://.
unsupported_schemeA URL nao usa http ou https.
different_hostsame_host_only esta ativo e a URL nao pertence ao host de page_url.
host_not_allowedO host nao esta em include_hosts.
host_excludedO host esta em exclude_hosts.
already_short_domainA URL ja pertence a um dominio encurtador ativo.
pattern_excludedA URL contem algum texto definido em exclude_patterns.
limit_reachedA chamada ultrapassou max_links.

Domínios

Retorna os domínios ativos que podem ser usados no parâmetro domain ao encurtar links.

GET/api/domains/list?key=SUA_CHAVE

Exemplo de requisição:

curl "https://monetizzy.com/api/domains/list?key=SUA_CHAVE"

Exemplo de resposta:

{
  "authentication": {
    "code": "NCXxhmZ8ropSWzDf5wUiYO",
    "status": "success",
    "description": "The key was successfully authenticated.",
    "user": {
      "id": "166235",
      "username": "johndoe"
    }
  },
  "domains": {
    "code": "EOr3FGZc3oqSw6VoqUGVyL",
    "status": "success",
    "list": [
      [
        "172345",
        "example1.com"
      ],
      [
        "562451",
        "example2.com"
      ],
      [
        "934462",
        "example3.com"
      ]
    ]
  }
}

Uso do Proxy

O proxy.monetizzy.com foi criado para permitir requisições seguras para a API do Monetizzy, evitando problemas de CORS e melhorando a segurança das comunicações entre o front-end e os endpoints da API.

Quando usar: use o proxy em aplicações front-end. Para back-end, prefira chamar a API direta.

Benefícios do proxy:

  • Permite chamadas para a API sem restrições de CORS.
  • Ajuda a evitar exposição direta da chave no navegador quando usado com uma camada segura.
  • Facilita a integração do Monetizzy com aplicações web.

Todas as requisições devem ser enviadas para https://proxy.monetizzy.com com a URL original e o payload nos parâmetros.

POSThttps://proxy.monetizzy.com
curl -X POST "https://proxy.monetizzy.com" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://monetizzy.com/api/shorten/link",
    "payload": {
      "key": "SUA_CHAVE",
      "link": "https://www.exemplo.com",
      "domain": "1",
      "type": 4
    }
  }'

Autenticação via Proxy

Autentica uma chave usando o proxy como intermediário da requisição.

POSThttps://proxy.monetizzy.com -> /api/auth
curl -X POST "https://proxy.monetizzy.com" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://monetizzy.com/api/auth",
    "payload": {
      "key": "SUA_CHAVE"
    }
  }'

Exemplo de resposta:

{
  "authentication": {
    "code": "NCXxhmZ8ropSWzDf5wUiYO",
    "status": "success",
    "description": "The key was successfully authenticated.",
    "user": {
      "id": "166235",
      "username": "johndoe"
    }
  }
}

Encurtar Link via Proxy

Cria um link encurtado enviando a requisição para o proxy, que repassa o payload para a API do Monetizzy.

POSThttps://proxy.monetizzy.com -> /api/shorten/link
curl -X POST "https://proxy.monetizzy.com" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://monetizzy.com/api/shorten/link",
    "payload": {
      "key": "SUA_CHAVE",
      "link": "https://www.exemplo.com",
      "domain": "1",
      "type": 4
    }
  }'

Exemplo de resposta:

{
  "authentication": {
    "code": "NCXxhmZ8ropSWzDf5wUiYO",
    "status": "success",
    "description": "The key was successfully authenticated.",
    "user": {
      "id": "166235",
      "username": "johndoe"
    }
  },
  "shorten": {
    "code": "t3sTjGk4XKTPBIqKB70sa7",
    "status": "success",
    "description": "The link has been shortened.",
    "link": "https://example1.com/aFtguIfIbPAv7321"
  }
}

Lista de Domínios via Proxy

Retorna a lista de domínios disponíveis usando o proxy como intermediário.

POSThttps://proxy.monetizzy.com -> /api/domains/list
curl -X POST "https://proxy.monetizzy.com" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://monetizzy.com/api/domains/list",
    "payload": {
      "key": "SUA_CHAVE"
    }
  }'

Exemplo de resposta:

{
  "authentication": {
    "code": "NCXxhmZ8ropSWzDf5wUiYO",
    "status": "success",
    "description": "The key was successfully authenticated.",
    "user": {
      "id": "166235",
      "username": "johndoe"
    }
  },
  "domains": {
    "code": "EOr3FGZc3oqSw6VoqUGVyL",
    "status": "success",
    "list": [
      [
        "172345",
        "example1.com"
      ],
      [
        "562451",
        "example2.com"
      ],
      [
        "934462",
        "example3.com"
      ]
    ]
  }
}

Pronto para integrar?

Com esses endpoints você já pode integrar a API do Monetizzy em sua aplicação. Use o proxy para requisições de front-end e a API direta para requisições feitas no back-end.