Content monitoring lets you discover and index social media posts and videos into your agent’s knowledge base. Start a one-time scrape or set up ongoing monitoring across TikTok, Instagram, and YouTube. Scraped content trains the agent’s understanding of trends, engagement patterns, and creator activity.
Accessing scraped data
There is no API to download raw scraped data directly. Instead, query the data through your agent:
Agent Chat — ask natural language questions like “what are the top performing videos about skincare this week?” via POST /v1/agent/run. The agent analyzes your indexed source data and returns insights.
Automation Pipelines — set up scheduled prompts that query your data automatically and populate Vidsheet rows with the results. See Pipelines for details.
Both approaches use the same LLM-powered search engine under the hood — your data is analyzed on demand, not exposed as a raw dump.
Not all platforms support all search types:
Platform Username Hashtag Keyword TikTok Yes Yes Yes Instagram Yes Yes No YouTube Yes Yes Yes
Item Cost Per video/post scraped $0.015 Per comment (when comment monitoring is enabled) $0.002
Costs are converted to credits using the standard credit formula.
Starts a social media content scrape or monitoring job. For one-time scrapes, the job transitions to completed after processing. For ongoing monitoring, the job stays in processing and scrapes on a recurring schedule.
POST /v1/user_jobs?agent_id={agent_id}
Parameter Type Required Description agent_idstring Yes The agent ID (query parameter). user_job[user_job_type]string Yes Must be "train_social". user_job[data]string (JSON) Yes JSON-stringified object containing the monitoring configuration (see Data fields below).
The user_job[data] value is a JSON string containing:
Field Type Required Description platformstring Yes Target platform: tiktok, instagram, or youtube. typestring Yes Search type: username, hashtag, or keyword. Must be supported by the chosen platform (see table above). valuestring Yes The search value. Usernames must start with @ (e.g. @creator). Hashtags must start with # (e.g. #skincare). Keywords are plain text. daysinteger No Filter to content from the last N days. One of: 0 (no filter), 1, 7, 30, 90, 180. countrystring No Two-letter country code (e.g. us, gb) to filter by region. max_resultsinteger No Maximum number of results to fetch per scrape (1–50). monitoringboolean No false (default) for a one-time scrape that completes after processing. true for ongoing scheduled monitoring.comment_monitoringboolean No true to also scrape comments (adds per-comment cost). Default false.
Status Description pendingJob created, queued for processing. processingScraping in progress. For monitoring jobs, stays here between scrape cycles. completedOne-time scrape finished (only when monitoring is false). failedScrape failed. Check failed_reason on the job.
Poll status via GET /v1/user_jobs/{id}?agent_id={agent_id}.
curl -X POST " https://api.gen.pro/v1/user_jobs?agent_id=your-agent-id " \
-H " X-API-Key: your-api-key " \
-H " Content-Type: multipart/form-data " \
-F ' user_job[user_job_type]=train_social ' \
-F ' user_job[data]={"platform":"instagram","type":"username","value":"@fashionbrand","days":30,"max_results":50,"monitoring":true} '
curl -X POST " https://api.gen.pro/v1/user_jobs?agent_id=your-agent-id " \
-H " X-API-Key: your-api-key " \
-H " Content-Type: multipart/form-data " \
-F ' user_job[user_job_type]=train_social ' \
-F ' user_job[data]={"platform":"youtube","type":"hashtag","value":"#cooking","max_results":50,"monitoring":false} '
curl -X POST " https://api.gen.pro/v1/user_jobs?agent_id=your-agent-id " \
-H " X-API-Key: your-api-key " \
-H " Content-Type: multipart/form-data " \
-F ' user_job[user_job_type]=train_social ' \
-F ' user_job[data]={"platform":"tiktok","type":"keyword","value":"ai tools","days":7,"country":"us","monitoring":true,"comment_monitoring":true} '
Status Error code Description 401unauthorizedMissing or invalid API key. 403permission_deniedYou do not have access to this agent. 422validation_errorInvalid platform, type, value format, or unsupported platform/type combination. 422no_active_credit_purchaseThe agent’s workspace has no active credit purchase.
Updates the configuration of an existing monitoring job. Only jobs with pending or processing status can be updated.
PUT /v1/user_jobs/{id}?agent_id={agent_id}
Parameter Type Required Description idinteger Yes The user job ID (path parameter). agent_idstring Yes The agent ID (query parameter). platformstring No Target platform: tiktok, instagram, or youtube. typestring No Search type: username, hashtag, or keyword. valuestring No The search value. daysinteger No Lookback window. One of: 0, 1, 7, 30, 90, 180. countrystring No Two-letter country code. max_resultsinteger No Maximum results per scrape (1–50). monitoringboolean No true for ongoing monitoring, false for one-time.comment_monitoringboolean No true to also scrape comments.
curl -X PUT " https://api.gen.pro/v1/user_jobs/12345?agent_id=your-agent-id " \
-H " X-API-Key: your-api-key " \
-H " Content-Type: multipart/form-data " \
-F ' platform=instagram ' \
-F ' value=@fashionbrand ' \
Status Error code Description 401unauthorizedMissing or invalid API key. 403permission_deniedYou do not have access to this agent. 404user_job_not_foundNo monitoring job exists with the given ID for this agent. 422job_status_invalidCan only update jobs with pending or processing status. 422validation_errorInvalid data fields.