Referência da API

Personas

Uma persona é um tipo de comprador que você quer alcançar, como tipsters ou donos de agência. O Gemlead encontra leads para cada persona ativa e os pontua com base na descrição dela. As fontes dela definem onde o Gemlead procura.

Um dono com várias contas do X pode compartilhar uma persona entre elas. Elas trabalham com as mesmas fontes, configurações e leads, cada uma com as próprias campanhas, e um lead vai para uma só conta do X. O compartilhamento da persona define quais contas do X a compartilham.

O objeto persona

Um tipo de comprador que você quer alcançar. O Gemlead procura leads que combinam com cada persona ativa e os pontua com base nela.

Atributos

  • idstring
    Identificador único da persona.
  • objectstring
    Sempre persona.
  • namestring
    O nome curto da persona, como Tipsters.
  • descriptionstring
    Quem é esse comprador, nas suas palavras. O scoring se baseia nesse texto.
  • marketstring
    Indica se você vende para empresas ou para consumidores.
    b2bb2c
  • statusstring
    Indica se o Gemlead está procurando leads para esta persona.
    activepaused
  • websitestring ou null
    O site do que você vende para esta persona.
  • statsobject
    As contagens desde a criação da persona e as de hoje, no fuso horário do seu perfil.
  • sharingobject
    As contas do X do dono que compartilham a persona. Veja o compartilhamento da persona.
  • created_atstring
    Quando a persona foi criada, em ISO 8601.
  • updated_atstring
    Quando a persona mudou pela última vez, em ISO 8601.
O objeto persona
{
  "id": "lvWBPnytpS",
  "object": "persona",
  "name": "Tipsters",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "website": "https://example.com",
  "stats": {
    "leads_found": 18420,
    "leads_scored": 17960,
    "hot_leads": 2134,
    "avg_score": 41,
    "today": {
      "leads_found": 312,
      "hot_leads": 38,
      "dms_sent": 25,
      "replies": 4
    }
  },
  "sharing": {
    "home_account": {
      "id": "a9PzK2vRtM",
      "username": "acme"
    },
    "shared_with": [
      {
        "id": "Hq4TnW8cLm",
        "username": "acme_sales"
      }
    ]
  },
  "created_at": "2026-09-14T09:21:05.300Z",
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Listar personas

GET/v1/personasScope readMCPlist_personas

Retorna suas personas na ordem da sua página Personas.

Parâmetros de consulta

  • limitinteger
    Quantos objetos retornar, de 1 a 100. O padrão é 25.
  • cursorstring
    O next_cursor da página anterior, para obter a página seguinte. Veja Paginação.

Retorno

Uma lista de objetos persona.

GET/v1/personas
curl https://gemlead.ai/api/v1/personas \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "object": "list",
  "data": [
    {
      "id": "lvWBPnytpS",
      "object": "persona",
      "name": "Tipsters",
      "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
      "market": "b2c",
      "status": "active",
      "website": "https://example.com",
      "stats": {
        "leads_found": 18420,
        "leads_scored": 17960,
        "hot_leads": 2134,
        "avg_score": 41,
        "today": {
          "leads_found": 312,
          "hot_leads": 38,
          "dms_sent": 25,
          "replies": 4
        }
      },
      "sharing": {
        "home_account": {
          "id": "a9PzK2vRtM",
          "username": "acme"
        },
        "shared_with": [
          {
            "id": "Hq4TnW8cLm",
            "username": "acme_sales"
          }
        ]
      },
      "created_at": "2026-09-14T09:21:05.300Z",
      "updated_at": "2026-11-06T07:45:12.904Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

Obter uma persona

GET/v1/personas/:idScope readMCPget_persona

Retorna uma persona com as estatísticas dela.

Parâmetros de caminho

  • idstringObrigatório
    O ID da persona.

Retorno

Um objeto persona.

Erros

GET/v1/personas/:id
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "lvWBPnytpS",
  "object": "persona",
  "name": "Tipsters",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "website": "https://example.com",
  "stats": {
    "leads_found": 18420,
    "leads_scored": 17960,
    "hot_leads": 2134,
    "avg_score": 41,
    "today": {
      "leads_found": 312,
      "hot_leads": 38,
      "dms_sent": 25,
      "replies": 4
    }
  },
  "sharing": {
    "home_account": {
      "id": "a9PzK2vRtM",
      "username": "acme"
    },
    "shared_with": [
      {
        "id": "Hq4TnW8cLm",
        "username": "acme_sales"
      }
    ]
  },
  "created_at": "2026-09-14T09:21:05.300Z",
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Criar uma persona

POST/v1/personasScope writeMCPcreate_persona

Cria uma persona e começa a encontrar os leads dela na hora. O scoring usa até 2 créditos por lead: 1 pela primeira triagem, mais 1 pelo score aprofundado quando o lead passa, até daily_scoring_limit leads por dia. Adicione fontes agora ou depois com Adicionar uma fonte.

Parâmetros do corpo

  • namestringObrigatório
    O nome da persona, de uma a três palavras como Ghostwriters, com até 100 caracteres.
  • websitestring
    O site do seu produto, com até 500 caracteres. A IA que pontua os leads lê esse site.
  • descriptionstringObrigatório
    Quem é esse comprador, em palavras simples. A IA pontua cada lead de 0 a 100 com base nesse texto, então ele é o que mais importa. Ele pode incluir suas próprias regras de scoring. Até 12 000 caracteres.
  • marketstring
    b2b quando quem compra são empresas, b2c quando são pessoas comprando para si mesmas. O padrão é b2b.
    b2bb2c
  • keywordsarray de strings
    Palavras num perfil ou nos posts dele que indicam um bom fit. Até 100, cada uma com até 100 caracteres.
  • competitorsarray de strings
    Produtos parecidos com o seu, quem usa um deles é um bom fit. Até 100.
  • avoidarray de strings
    Quem deve receber um score baixo, como agencies ou students. Até 100.
  • min_followersinteger
    Perfis com menos seguidores não são pontuados, de 0 a 10 000 000. O padrão é 100.
  • include_closed_inboxesboolean
    Pontua também as pessoas com DMs fechadas, uma campanha chega até elas com um comentário. O padrão é true.
  • auto_expandboolean
    Deixa o Gemlead adicionar fontes sozinho a partir dos melhores leads quando as outras se esgotam. O padrão é false.
  • auto_expand_directionstring
    Para onde a expansão automática vai depois, em palavras simples como more US founders. Até 500 caracteres.
  • daily_scoring_limitinteger
    O máximo de leads pontuados por dia para esta persona, com até 2 créditos por lead: 1 pela primeira triagem, mais 1 pelo score aprofundado quando o lead passa. De 100 a 20 000. Por padrão, o ritmo do seu plano, 3 300 por dia no Starter e 10 000 no Business.
  • sourcesarray de objects
    Até 20 fontes iniciais. Contas de investidores, aceleradoras e mídia são recusadas, pois não trazem compradores.

Retorno

O novo objeto persona.

Erros

POST/v1/personas
curl -X POST https://gemlead.ai/api/v1/personas \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Tipsters",
    "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
    "market": "b2c",
    "keywords": ["tipster", "betting tips"],
    "sources": [
      {
        "username": "pickswithmike"
      }
    ]
  }'
Resposta200
{
  "id": "lvWBPnytpS",
  "object": "persona",
  "name": "Tipsters",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "website": "https://example.com",
  "stats": {
    "leads_found": 18420,
    "leads_scored": 17960,
    "hot_leads": 2134,
    "avg_score": 41,
    "today": {
      "leads_found": 312,
      "hot_leads": 38,
      "dms_sent": 25,
      "replies": 4
    }
  },
  "sharing": {
    "home_account": {
      "id": "a9PzK2vRtM",
      "username": "acme"
    },
    "shared_with": [
      {
        "id": "Hq4TnW8cLm",
        "username": "acme_sales"
      }
    ]
  },
  "created_at": "2026-09-14T09:21:05.300Z",
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Ativar uma persona

POST/v1/personas/:persona_id/activateScope writeMCPupdate_persona

Reativa uma persona pausada. As fontes dela voltam a ser lidas e os leads dela, pontuados.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Retorno

O objeto persona.

Erros

POST/v1/personas/:persona_id/activate
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/activate \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "lvWBPnytpS",
  "object": "persona",
  "name": "Tipsters",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "website": "https://example.com",
  "stats": {
    "leads_found": 18420,
    "leads_scored": 17960,
    "hot_leads": 2134,
    "avg_score": 41,
    "today": {
      "leads_found": 312,
      "hot_leads": 38,
      "dms_sent": 25,
      "replies": 4
    }
  },
  "sharing": {
    "home_account": {
      "id": "a9PzK2vRtM",
      "username": "acme"
    },
    "shared_with": [
      {
        "id": "Hq4TnW8cLm",
        "username": "acme_sales"
      }
    ]
  },
  "created_at": "2026-09-14T09:21:05.300Z",
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Pausar uma persona

POST/v1/personas/:persona_id/pauseScope writeMCPupdate_persona

Pausa uma persona. O Gemlead para de ler as fontes dela e de pontuar os leads dela, e os leads continuam lá.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Retorno

O objeto persona, com o status em paused.

Erros

POST/v1/personas/:persona_id/pause
curl -X POST \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/pause \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "lvWBPnytpS",
  "object": "persona",
  "name": "Tipsters",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "paused",
  "website": "https://example.com",
  "stats": {
    "leads_found": 18420,
    "leads_scored": 17960,
    "hot_leads": 2134,
    "avg_score": 41,
    "today": {
      "leads_found": 312,
      "hot_leads": 38,
      "dms_sent": 25,
      "replies": 4
    }
  },
  "sharing": {
    "home_account": {
      "id": "a9PzK2vRtM",
      "username": "acme"
    },
    "shared_with": [
      {
        "id": "Hq4TnW8cLm",
        "username": "acme_sales"
      }
    ]
  },
  "created_at": "2026-09-14T09:21:05.300Z",
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Excluir uma persona

DELETE/v1/personas/:persona_idScope writeMCPdelete_persona

Exclui uma persona com as fontes dela e os leads que nenhuma campanha trabalhou. As campanhas dela são arquivadas. Essa ação não pode ser desfeita.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Retorno

Um objeto com o id da persona, deleted igual a true e as contagens de archived_campaigns e deleted_sources. Os leads dela são excluídos em segundo plano, então deleted_leads é null e eles ainda podem aparecer em Listar leads por alguns minutos.

Erros

DELETE/v1/personas/:persona_id
curl -X DELETE https://gemlead.ai/api/v1/personas/lvWBPnytpS \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "id": "lvWBPnytpS",
  "object": "persona",
  "deleted": true,
  "archived_campaigns": 1,
  "deleted_sources": 6,
  "deleted_leads": null
}

Reordenar personas

POST/v1/personas/reorderScope writeMCPreorder_personas

Define a ordem das suas personas, como o app as lista. Envie cada persona uma vez.

Parâmetros do corpo

  • persona_idsarray de stringsObrigatório
    Todos os IDs de persona da conta, na nova ordem.

Retorno

Uma lista de objetos persona na nova ordem.

Erros

POST/v1/personas/reorder
curl -X POST https://gemlead.ai/api/v1/personas/reorder \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "persona_ids": ["lvWBPnytpS", "pQ8nX2rTjk"]
  }'
Resposta200
{
  "object": "list",
  "data": [
    {
      "id": "lvWBPnytpS",
      "object": "persona",
      "name": "Tipsters",
      "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
      "market": "b2c",
      "status": "active",
      "website": "https://example.com",
      "stats": {
        "leads_found": 18420,
        "leads_scored": 17960,
        "hot_leads": 2134,
        "avg_score": 41,
        "today": {
          "leads_found": 312,
          "hot_leads": 38,
          "dms_sent": 25,
          "replies": 4
        }
      },
      "sharing": {
        "home_account": {
          "id": "a9PzK2vRtM",
          "username": "acme"
        },
        "shared_with": [
          {
            "id": "Hq4TnW8cLm",
            "username": "acme_sales"
          }
        ]
      },
      "created_at": "2026-09-14T09:21:05.300Z",
      "updated_at": "2026-11-06T07:45:12.904Z"
    }
  ],
  "has_more": false,
  "next_cursor": null
}

O objeto persona settings

Tudo o que define quais leads uma persona encontra e como a IA pontua esses leads, como na página da persona no app.

Atributos

  • objectstring
    Sempre persona_settings.
  • persona_idstring
    O ID da persona.
  • namestring
    O nome da persona, de uma a três palavras como Ghostwriters.
  • websitestring ou null
    O site do seu produto. A IA que pontua os leads lê esse site.
  • descriptionstring ou null
    Quem é esse comprador, em palavras simples. A IA pontua cada lead de 0 a 100 com base nesse texto, então ele é o que mais importa. Ele pode incluir suas próprias regras de scoring.
  • marketstring
    b2b quando quem compra são empresas, b2c quando são pessoas comprando para si mesmas.
    b2bb2c
  • keywordsarray de strings
    Palavras num perfil ou nos posts dele que indicam um bom fit.
  • competitorsarray de strings
    Produtos parecidos com o seu. Quem usa um deles é um bom fit.
  • avoidarray de strings
    Quem deve receber um score baixo, como agencies ou students.
  • min_followersinteger
    Perfis com menos seguidores não são pontuados.
  • include_closed_inboxesboolean
    Indica se as pessoas com DMs fechadas também são pontuadas. Uma campanha chega até elas com um comentário.
  • auto_expandboolean
    Indica se o Gemlead adiciona fontes sozinho a partir dos melhores leads quando as outras se esgotam.
  • auto_expand_directionstring ou null
    Para onde a expansão automática vai depois, em palavras simples, como more US founders.
  • daily_scoring_limitinteger
    O máximo de leads pontuados por dia para esta persona, com até 2 créditos por lead: 1 pela primeira triagem, mais 1 pelo score aprofundado quando o lead passa.
  • statusstring
    Indica se o Gemlead está encontrando e pontuando leads para ela.
    activepaused
  • search_queriesarray de strings
  • competitor_accountsarray de strings
    As contas concorrentes dela, usernames do X sem o @.
  • updated_atstring
    Quando a persona mudou pela última vez, em ISO 8601.
O objeto persona settings
{
  "object": "persona_settings",
  "persona_id": "lvWBPnytpS",
  "name": "Tipsters",
  "website": "https://example.com",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "keywords": ["tipster", "betting tips", "trading signals"],
  "competitors": ["Patreon", "Whop"],
  "avoid": ["betting brands", "news accounts"],
  "min_followers": 500,
  "include_closed_inboxes": true,
  "auto_expand": false,
  "auto_expand_direction": null,
  "daily_scoring_limit": 3300,
  "search_queries": ["paid discord picks", "vip tips telegram"],
  "competitor_accounts": ["whop"],
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Obter as configurações de uma persona

GET/v1/personas/:persona_id/settingsScope readMCPget_persona_settings

Retorna todas as configurações de uma persona, com as buscas por palavra-chave e as contas concorrentes dela.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Retorno

Um objeto persona settings.

Erros

GET/v1/personas/:persona_id/settings
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/settings \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "object": "persona_settings",
  "persona_id": "lvWBPnytpS",
  "name": "Tipsters",
  "website": "https://example.com",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "keywords": ["tipster", "betting tips", "trading signals"],
  "competitors": ["Patreon", "Whop"],
  "avoid": ["betting brands", "news accounts"],
  "min_followers": 500,
  "include_closed_inboxes": true,
  "auto_expand": false,
  "auto_expand_direction": null,
  "daily_scoring_limit": 3300,
  "search_queries": ["paid discord picks", "vip tips telegram"],
  "competitor_accounts": ["whop"],
  "updated_at": "2026-11-06T07:45:12.904Z"
}

Atualizar as configurações de uma persona

PATCH/v1/personas/:persona_id/settingsScope writeMCPupdate_persona

Altera as configurações que você envia e mantém as outras. Uma lista enviada substitui a lista inteira, então envie keywords com a palavra nova junto das outras para manter todas.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Parâmetros do corpo

  • namestring
    O nome da persona, de uma a três palavras como Ghostwriters, com até 100 caracteres.
  • websitestring
    O site do seu produto, com até 500 caracteres. A IA que pontua os leads lê esse site.
  • descriptionstring
    Quem é esse comprador, em palavras simples. A IA pontua cada lead de 0 a 100 com base nesse texto, então ele é o que mais importa. Ele pode incluir suas próprias regras de scoring. Até 12 000 caracteres.
  • marketstring
    b2b quando quem compra são empresas, b2c quando são pessoas comprando para si mesmas. O padrão é b2b.
    b2bb2c
  • keywordsarray de strings
    Palavras num perfil ou nos posts dele que indicam um bom fit. Até 100, cada uma com até 100 caracteres.
  • competitorsarray de strings
    Produtos parecidos com o seu, quem usa um deles é um bom fit. Até 100.
  • avoidarray de strings
    Quem deve receber um score baixo, como agencies ou students. Até 100.
  • min_followersinteger
    Perfis com menos seguidores não são pontuados, de 0 a 10 000 000. O padrão é 100.
  • include_closed_inboxesboolean
    Pontua também as pessoas com DMs fechadas, uma campanha chega até elas com um comentário. O padrão é true.
  • auto_expandboolean
    Deixa o Gemlead adicionar fontes sozinho a partir dos melhores leads quando as outras se esgotam. O padrão é false.
  • auto_expand_directionstring
    Para onde a expansão automática vai depois, em palavras simples como more US founders. Até 500 caracteres.
  • daily_scoring_limitinteger
    O máximo de leads pontuados por dia para esta persona, com até 2 créditos por lead: 1 pela primeira triagem, mais 1 pelo score aprofundado quando o lead passa. De 100 a 20 000 para cada conta do X que compartilha a persona.

Retorno

O objeto persona settings atualizado.

Erros

PATCH/v1/personas/:persona_id/settings
curl -X PATCH \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/settings \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "min_followers": 500,
    "avoid": ["betting brands", "news accounts"]
  }'
Resposta200
{
  "object": "persona_settings",
  "persona_id": "lvWBPnytpS",
  "name": "Tipsters",
  "website": "https://example.com",
  "description": "Sports and trading tipsters who sell picks or signals to a paying community.",
  "market": "b2c",
  "status": "active",
  "keywords": ["tipster", "betting tips", "trading signals"],
  "competitors": ["Patreon", "Whop"],
  "avoid": ["betting brands", "news accounts"],
  "min_followers": 500,
  "include_closed_inboxes": true,
  "auto_expand": false,
  "auto_expand_direction": null,
  "daily_scoring_limit": 3300,
  "search_queries": ["paid discord picks", "vip tips telegram"],
  "competitor_accounts": ["whop"],
  "updated_at": "2026-11-06T07:45:12.904Z"
}

O objeto persona sharing

As contas do X de um mesmo dono que trabalham com a mesma persona. Elas compartilham as fontes, as configurações, os leads e a lista de exclusão dela, e cada uma roda as próprias campanhas nela. Um lead vai para uma só conta do X, indicada no locked_to dele.

Atributos

  • objectstring
    Sempre persona_sharing.
  • persona_idstring
    O ID da persona.
  • home_accountobject ou null
    A conta do X em que a persona foi criada. As fontes e os leads da persona ficam lá.
  • shared_witharray de objects
    As outras contas do X que compartilham a persona. Vazio quando ela não é compartilhada.
  • available_accountsarray de objects
    As outras contas do X do dono com as quais a persona pode ser compartilhada. Sempre vazio para um membro da equipe, que não pode mudar o compartilhamento.
  • daily_scoring_limitinteger
    O máximo de leads pontuados por dia para a persona, para o grupo todo. Pode chegar a 20 000 para cada conta do X que compartilha a persona.
O objeto persona sharing
{
  "object": "persona_sharing",
  "persona_id": "lvWBPnytpS",
  "home_account": {
    "id": "a9PzK2vRtM",
    "username": "acme"
  },
  "shared_with": [
    {
      "id": "Hq4TnW8cLm",
      "username": "acme_sales"
    }
  ],
  "available_accounts": [
    {
      "id": "Rb7YsK3dQp",
      "username": "acme_founder"
    }
  ],
  "daily_scoring_limit": 3300
}

Obter o compartilhamento de uma persona

GET/v1/personas/:persona_id/sharingScope readMCPget_persona_sharing

Retorna quais contas do X do dono compartilham uma persona, e as outras com as quais ela pode ser compartilhada.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Retorno

Um objeto persona sharing.

Erros

GET/v1/personas/:persona_id/sharing
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/sharing \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "object": "persona_sharing",
  "persona_id": "lvWBPnytpS",
  "home_account": {
    "id": "a9PzK2vRtM",
    "username": "acme"
  },
  "shared_with": [
    {
      "id": "Hq4TnW8cLm",
      "username": "acme_sales"
    }
  ],
  "available_accounts": [
    {
      "id": "Rb7YsK3dQp",
      "username": "acme_founder"
    }
  ],
  "daily_scoring_limit": 3300
}

Atualizar o compartilhamento de uma persona

PUT/v1/personas/:persona_id/sharingScope writeMCPupdate_persona_sharing

Define quais outras contas do X do dono compartilham uma persona, a partir de qualquer conta do X do grupo, como Compartilhada com faz no app. Envie a lista inteira, ou uma vazia para parar de compartilhar. O daily_scoring_limit acompanha o tamanho do grupo, no mesmo ritmo para cada conta do X. Só as chaves do dono podem fazer isso.

Parâmetros de caminho

  • persona_idstringObrigatório
    O ID da persona.

Parâmetros do corpo

  • account_idsarray de stringsObrigatório
    Todas as outras contas do X do dono que compartilham a persona, até 20. A conta de origem sempre fica com ela.

Retorno

O objeto persona sharing atualizado.

Erros

  • Falta um parâmetro obrigatório. param diz qual.
  • Um parâmetro tem um valor que a API não aceita. param diz qual.
  • O corpo tem um campo que este endpoint não aceita.
  • A chave é de um membro da equipe. Só o dono compartilha uma persona.
  • Nenhuma persona com este ID, ou uma conta do X que não é do dono. param diz qual.
  • Uma conta do X que você tira ainda tem campanhas na persona. Exclua as campanhas primeiro.
PUT/v1/personas/:persona_id/sharing
curl -X PUT \
  https://gemlead.ai/api/v1/personas/lvWBPnytpS/sharing \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "account_ids": ["Hq4TnW8cLm", "Rb7YsK3dQp"]
  }'
Resposta200
{
  "object": "persona_sharing",
  "persona_id": "lvWBPnytpS",
  "home_account": {
    "id": "a9PzK2vRtM",
    "username": "acme"
  },
  "shared_with": [
    {
      "id": "Hq4TnW8cLm",
      "username": "acme_sales"
    },
    {
      "id": "Rb7YsK3dQp",
      "username": "acme_founder"
    }
  ],
  "available_accounts": [],
  "daily_scoring_limit": 5000
}

O objeto persona suggestion

Uma persona que a IA escreveu para você a partir de um nome e do seu produto, pronta para ser criada como está ou editada antes.

Atributos

  • objectstring
    Sempre persona_suggestion.
  • statusstring
    pending enquanto a IA escreve, depois ready ou error. none antes do primeiro pedido.
    pendingreadyerrornone
  • persona_namestring ou null
    O nome pedido.
  • suggestionobject ou null
    Quando ready, os campos description, keywords, competitors e avoid da persona, os mesmos de Criar uma persona.
  • generated_atstring ou null
    Quando ela foi escrita, em ISO 8601.
  • errorstring ou null
    O que deu errado, quando status é error.
O objeto persona suggestion
{
  "object": "persona_suggestion",
  "status": "ready",
  "persona_name": "Tipsters",
  "suggestion": {
    "description": "Sports and trading tipsters who sell picks or signals to a paying community on Discord or Telegram.",
    "keywords": ["tipster", "vip picks", "trading signals"],
    "competitors": ["Patreon", "Whop"],
    "avoid": ["betting brands", "sports media"]
  },
  "generated_at": "2026-11-06T07:45:12.904Z",
  "error": null
}

Sugerir uma persona

POST/v1/persona_suggestionsScope writeMCPsuggest_persona

Pede à IA que escreva uma persona a partir de um nome e do que você vende, ou que reescreva uma descrição. Leva alguns segundos, então a resposta é pending. Leia o resultado com Obter a sugestão de persona.

Parâmetros do corpo

  • persona_namestringObrigatório
    A persona a escrever, de uma a três palavras como Ghostwriters.
  • websitestring
    O site do seu produto. O padrão é o do seu perfil do X.
  • briefstring
    O que você vende e para quem, com as suas palavras, até 1 000 caracteres.
  • current_descriptionstring
    Uma descrição a reescrever, com instruction.
  • instructionstring
    Como alterar current_description, como shorter ou only US agencies. Até 2 000 caracteres.

Retorno

Um objeto persona suggestion, com o status em pending.

Erros

POST/v1/persona_suggestions
curl -X POST https://gemlead.ai/api/v1/persona_suggestions \
  -H "Authorization: Bearer $GEMLEAD_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "persona_name": "Tipsters",
    "brief": "A checkout for paid Discord and Telegram groups."
  }'
Resposta202
{
  "object": "persona_suggestion",
  "status": "pending",
  "persona_name": "Tipsters",
  "suggestion": null,
  "generated_at": null,
  "error": null
}

Obter a sugestão de persona

GET/v1/persona_suggestions/latestScope readMCPget_persona_suggestion

Retorna a última sugestão de persona da conta. Consulte de novo a cada poucos segundos enquanto ela estiver pending.

Retorno

Um objeto persona suggestion.

GET/v1/persona_suggestions/latest
curl https://gemlead.ai/api/v1/persona_suggestions/latest \
  -H "Authorization: Bearer $GEMLEAD_API_KEY"
Resposta200
{
  "object": "persona_suggestion",
  "status": "ready",
  "persona_name": "Tipsters",
  "suggestion": {
    "description": "Sports and trading tipsters who sell picks or signals to a paying community on Discord or Telegram.",
    "keywords": ["tipster", "vip picks", "trading signals"],
    "competitors": ["Patreon", "Whop"],
    "avoid": ["betting brands", "sports media"]
  },
  "generated_at": "2026-11-06T07:45:12.904Z",
  "error": null
}