API reference
Personas
A persona is one type of buyer you want to reach, like tipsters or agency owners. Gemlead finds leads for every active persona and scores them against its description. Its sources decide where Gemlead looks.
An owner with several X accounts can share a persona between them. They work from the same sources, settings and leads, each with its own campaigns, and a lead goes to one X account only. Persona sharing sets which X accounts share it.
- GET/v1/
personas - GET/v1/
personas/ :id - POST/v1/
personas - POST/v1/
personas/ :persona_id/ activate - POST/v1/
personas/ :persona_id/ pause - DELETE/v1/
personas/ :persona_id - POST/v1/
personas/ reorder - GET/v1/
personas/ :persona_id/ settings - PATCH/v1/
personas/ :persona_id/ settings - GET/v1/
personas/ :persona_id/ sharing - PUT/v1/
personas/ :persona_id/ sharing - POST/v1/
persona_suggestions - GET/v1/
persona_suggestions/ latest
The persona object
A type of buyer you want to reach. Gemlead looks for leads that match each active persona and scores them against it.
Attributes
- idstringUnique identifier for the persona.
- objectstringAlways
persona. - namestringThe persona's short name, like
Tipsters. - descriptionstringWho this buyer is, in your words. Scoring reads it.
- marketstringWhether you sell to businesses or to consumers.
b2bb2c - statusstringWhether Gemlead is looking for leads for this persona.
activepaused - websitestring or nullThe website of what you sell to this persona.
- statsobjectCounts since the persona was created, and for today in your profile's time zone.
- sharingobjectThe X accounts of the owner that share the persona. See persona sharing.
- created_atstringWhen the persona was created, ISO 8601.
- updated_atstringWhen the persona last changed, ISO 8601.
{
"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"
}List personas
Returns your personas in the order of your Personas page.
Query parameters
- limitintegerHow many objects to return, from 1 to 100. Defaults to 25.
- cursorstringThe
next_cursorof the previous page, to get the page after it. See Pagination.
Returns
A list of persona objects.
curl https://gemlead.ai/api/v1/personas \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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
}Retrieve a persona
Returns one persona with its stats.
Path parameters
- idstringRequiredThe persona's ID.
Returns
Errors
- No persona with this ID on the key's account.
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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"
}Create a persona
Creates a persona and starts finding its leads right away. Scoring uses up to 2 credits a lead: 1 for the first pass, 1 more for the deep score when it passes, up to daily_scoring_limit leads a day. Add sources now or later with Add a source.
Body parameters
- namestringRequiredThe persona's name, one to three words like
Ghostwriters, up to 100 characters. - websitestringYour product's website, up to 500 characters. The AI that scores leads reads it.
- descriptionstringRequiredWho this buyer is, in plain words. The AI scores every lead from 0 to 100 against it, so it matters most. It can hold your own scoring rules. Up to 12 000 characters.
- marketstring
b2bwhen businesses buy,b2cwhen people buy for themselves. Defaultb2b.b2bb2c - keywordsarray of stringsWords in a profile or its posts that signal a fit. Up to 100, each up to 100 characters.
- competitorsarray of stringsProducts like yours, someone who uses one is a fit. Up to 100.
- avoidarray of stringsWho to score low, like
agenciesorstudents. Up to 100. - min_followersintegerProfiles with fewer followers are not scored, 0 to 10 000 000. Default 100.
- include_closed_inboxesbooleanScore people with closed DMs too, a campaign reaches them with a comment. Default
true. - auto_expandbooleanLet Gemlead add sources by itself from the best leads when the others run dry. Default
false. - auto_expand_directionstringWhere auto expand goes next, in plain words like
more US founders. Up to 500 characters. - daily_scoring_limitintegerThe most leads scored a day for this persona, up to 2 credits a lead: 1 for the first pass, 1 more for the deep score when it passes. 100 to 20 000. By default your plan's pace, 3 300 a day on Starter and 10 000 on Business.
- sourcesarray of objectsUp to 20 starting sources. Investor, accelerator and media accounts are refused, they bring no buyers.
Returns
The new persona object.
Errors
- A required parameter is missing.
paramnames it. - A parameter has a value the API does not accept.
paramnames it. - The body has a field this endpoint does not take.
- The account has 100 personas already.
- A starting source is refused, like an investor or a media account.
paramissources.
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"
}
]
}'{
"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"
}Activate a persona
Starts a paused persona again. Its sources are read and its leads scored.
Path parameters
- persona_idstringRequiredThe persona's ID.
Returns
The persona object.
Errors
- No persona with this ID on the key's account.
curl -X POST \
https://gemlead.ai/api/v1/personas/lvWBPnytpS/activate \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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"
}Pause a persona
Pauses a persona. Gemlead stops reading its sources and scoring its leads, and its leads stay.
Path parameters
- persona_idstringRequiredThe persona's ID.
Returns
The persona object, its status at paused.
Errors
- No persona with this ID on the key's account.
curl -X POST \
https://gemlead.ai/api/v1/personas/lvWBPnytpS/pause \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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"
}Delete a persona
Deletes a persona with its sources and the leads no campaign worked on. Its campaigns are archived. This cannot be undone.
Path parameters
- persona_idstringRequiredThe persona's ID.
Returns
An object with the persona's id, deleted set to true, and the counts of archived_campaigns and deleted_sources. Its leads are deleted in the background, so deleted_leads is null and they can still show in List leads for a few minutes.
Errors
- No persona with this ID on the key's account.
curl -X DELETE https://gemlead.ai/api/v1/personas/lvWBPnytpS \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"id": "lvWBPnytpS",
"object": "persona",
"deleted": true,
"archived_campaigns": 1,
"deleted_sources": 6,
"deleted_leads": null
}Reorder personas
Sets the order of your personas, as the app lists them. Send every persona once.
Body parameters
- persona_idsarray of stringsRequiredEvery persona ID of the account, in the new order.
Returns
A list of persona objects in the new order.
Errors
- A required parameter is missing.
paramnames it. - A parameter has a value the API does not accept.
paramnames it. - An ID is not one of the account's personas.
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"]
}'{
"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
}The persona settings object
Everything that decides which leads a persona finds and how the AI scores them, as the persona's page in the app edits it.
Attributes
- objectstringAlways
persona_settings. - persona_idstringThe persona's ID.
- namestringThe persona's name, one to three words like
Ghostwriters. - websitestring or nullYour product's website. The AI that scores leads reads it.
- descriptionstring or nullWho this buyer is, in plain words. The AI scores every lead from 0 to 100 against it, so it matters most. It can hold your own scoring rules.
- marketstring
b2bwhen businesses buy,b2cwhen people buy for themselves.b2bb2c - keywordsarray of stringsWords in a profile or its posts that signal a fit.
- competitorsarray of stringsProducts like yours. Someone who uses one is a fit.
- avoidarray of stringsWho to score low, like
agenciesorstudents. - min_followersintegerProfiles with fewer followers are not scored.
- include_closed_inboxesbooleanWhether people with closed DMs are scored too. A campaign reaches them with a comment.
- auto_expandbooleanWhether Gemlead adds sources by itself from the best leads when the others run dry.
- auto_expand_directionstring or nullWhere auto expand goes next, in plain words, like
more US founders. - daily_scoring_limitintegerThe most leads scored a day for this persona, up to 2 credits a lead: 1 for the first pass, 1 more for the deep score when it passes.
- statusstringWhether Gemlead is finding and scoring leads for it.
activepaused - search_queriesarray of stringsIts keyword searches.
- competitor_accountsarray of stringsIts competitor accounts, X usernames without the @.
- updated_atstringWhen the persona last changed, ISO 8601.
{
"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"
}Retrieve persona settings
Returns every setting of a persona, with its keyword searches and competitor accounts.
Path parameters
- persona_idstringRequiredThe persona's ID.
Returns
Errors
- No persona with this ID on the key's account.
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/settings \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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"
}Update persona settings
Changes the settings you send and keeps the others. A list you send replaces the whole list, so send keywords with the new word added to keep the others.
Path parameters
- persona_idstringRequiredThe persona's ID.
Body parameters
- namestringThe persona's name, one to three words like
Ghostwriters, up to 100 characters. - websitestringYour product's website, up to 500 characters. The AI that scores leads reads it.
- descriptionstringWho this buyer is, in plain words. The AI scores every lead from 0 to 100 against it, so it matters most. It can hold your own scoring rules. Up to 12 000 characters.
- marketstring
b2bwhen businesses buy,b2cwhen people buy for themselves. Defaultb2b.b2bb2c - keywordsarray of stringsWords in a profile or its posts that signal a fit. Up to 100, each up to 100 characters.
- competitorsarray of stringsProducts like yours, someone who uses one is a fit. Up to 100.
- avoidarray of stringsWho to score low, like
agenciesorstudents. Up to 100. - min_followersintegerProfiles with fewer followers are not scored, 0 to 10 000 000. Default 100.
- include_closed_inboxesbooleanScore people with closed DMs too, a campaign reaches them with a comment. Default
true. - auto_expandbooleanLet Gemlead add sources by itself from the best leads when the others run dry. Default
false. - auto_expand_directionstringWhere auto expand goes next, in plain words like
more US founders. Up to 500 characters. - daily_scoring_limitintegerThe most leads scored a day for this persona, up to 2 credits a lead: 1 for the first pass, 1 more for the deep score when it passes. 100 to 20 000 for each X account that shares the persona.
Returns
The updated persona settings object.
Errors
- No persona with this ID on the key's account.
- A parameter has a value the API does not accept.
paramnames it. - The body has a field this endpoint does not take.
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"]
}'{
"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"
}The persona sharing object
The X accounts of one owner that work from the same persona. They share its sources, settings, leads and exclusion list, and each runs its own campaigns on it. A lead goes to one X account only, shown by its locked_to.
Attributes
- objectstringAlways
persona_sharing. - persona_idstringThe persona's ID.
- home_accountobject or nullThe X account the persona was created on. Its sources and its leads live there.
- shared_witharray of objectsThe other X accounts that share the persona. Empty when it is not shared.
- available_accountsarray of objectsThe owner's other X accounts the persona can be shared with. Always empty for a team member, who cannot change the sharing.
- daily_scoring_limitintegerThe most leads scored a day for the persona, for the whole group. It can go up to 20 000 for each X account that shares the persona.
{
"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
}Retrieve persona sharing
Returns which X accounts of the owner share a persona, and the others it can be shared with.
Path parameters
- persona_idstringRequiredThe persona's ID.
Returns
Errors
- No persona with this ID on the key's account.
curl https://gemlead.ai/api/v1/personas/lvWBPnytpS/sharing \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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
}Update persona sharing
Sets which other X accounts of the owner share a persona, from any X account of the group, as Shared with does in the app. Send the whole list, or an empty one to stop sharing. The daily_scoring_limit follows the size of the group, the same pace for each X account. Only the owner's keys can do it.
Path parameters
- persona_idstringRequiredThe persona's ID.
Body parameters
- account_idsarray of stringsRequiredEvery other X account of the owner that shares the persona, up to 20. Its home account always keeps it.
Returns
The updated persona sharing object.
Errors
- A required parameter is missing.
paramnames it. - A parameter has a value the API does not accept.
paramnames it. - The body has a field this endpoint does not take.
- 403forbiddenThe key belongs to a team member. Only the owner shares a persona.
- No persona with this ID, or an X account that is not the owner's.
paramnames it. - An X account you take out still has campaigns on the persona. Delete them first.
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"]
}'{
"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
}The persona suggestion object
A persona the AI wrote for you from a name and your product, ready to create as is or to edit first.
Attributes
- objectstringAlways
persona_suggestion. - statusstring
pendingwhile the AI writes, thenreadyorerror.nonebefore the first request.pendingreadyerrornone - persona_namestring or nullThe name it was asked for.
- suggestionobject or nullOnce
ready, the persona'sdescription,keywords,competitorsandavoid, the fields of Create a persona. - generated_atstring or nullWhen it was written, ISO 8601.
- errorstring or nullWhat went wrong, when
statusiserror.
{
"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
}Suggest a persona
Asks the AI to write a persona from a name and what you sell, or to rewrite a description. It takes a few seconds, so the answer is pending. Read the result with Retrieve the persona suggestion.
Body parameters
- persona_namestringRequiredThe persona to write, one to three words like
Ghostwriters. - websitestringYour product's website. Default the one on your X profile.
- briefstringWhat you sell and to whom, in your words, up to 1 000 characters.
- current_descriptionstringA description to rewrite, with
instruction. - instructionstringHow to change
current_description, likeshorteroronly US agencies. Up to 2 000 characters.
Returns
A persona suggestion object, its status at pending.
Errors
- A required parameter is missing.
paramnames it. - A parameter has a value the API does not accept.
paramnames it. - The body has a field this endpoint does not take.
- X or a Gemlead service did not answer. Nothing changed, try again in a minute.
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."
}'{
"object": "persona_suggestion",
"status": "pending",
"persona_name": "Tipsters",
"suggestion": null,
"generated_at": null,
"error": null
}Retrieve the persona suggestion
Returns the account's last persona suggestion. Ask again every few seconds while it is pending.
Returns
curl https://gemlead.ai/api/v1/persona_suggestions/latest \
-H "Authorization: Bearer $GEMLEAD_API_KEY"{
"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
}