{"openapi":"3.1.0","info":{"title":"StableSocial","description":"Pay-per-request access to social media data from TikTok, Instagram, Facebook, Reddit, and Lightreel. No auth, no subscriptions.","version":"1.0.0","x-guidance":"# StableSocial\n\nPay-per-request social data from TikTok, Instagram, Facebook, Reddit, and Lightreel. Use the OpenAPI schema for exact request fields.\n\n## Core Flow\n\nMake one paid POST. It returns `202 Accepted` with `jobId`, `pollUrl`, and usually `retryAfterSeconds`. Poll `GET /api/jobs/{jobId}` with SIWX from the same wallet. Do not repeat the paid POST while pending; poll every 3-5 seconds and back off.\n\n## Job Responses\n\n`pending` includes `retryAfterSeconds`; `finished` includes `data`; `failed` includes `error`. If the initial paid POST returns non-2xx, payment is not settled. If an accepted job later fails, treat `status: \"failed\"` as terminal.\n\n## Recovering Jobs\n\nUse `GET /api/jobs?limit=20&cursor=...` with SIWX to list the caller's durable jobs. Use this if the original 202 response was lost. Only the paying wallet can list or poll its jobs.\n\n## Resource Ordering\n\nSome resources depend on fresher parent data. Trigger and finish the parent first: profile before followers/following/posts; profile/posts before post comments when required; post comments before comment replies.\n\n## Pagination\n\nWhen a finished response includes `page_info.cursor` and `page_info.has_next_page`, request the next page by making a new paid POST with that cursor. Each page is a new job with its own `jobId`.\n\n## Lightreel\n\n- Lightreel POSTs run live UGC research and can take minutes. They return `202` with `jobId`, `pollUrl`, and `retryAfterSeconds`; poll the job with SIWX.\n- Prefer typed Lightreel routes over `/api/lightreel/chat` whenever one matches. The typed routes internally request structured fields, so finished job data is `{ answer: { ... }, conversationId }`.\n- Discovery/content routes: `/api/lightreel/top-hooks` for hooks/opening lines; `/video-search` for source TikToks/Reels, URLs, examples, breakout posts; `/creator-search` for UGC creators, influencers, emails/contact info; `/trends` for TikTok/Instagram/X trends and formats.\n- Strategy routes: `/api/lightreel/account-feedback` for account audits and underperforming accounts; `/competitor-strategy` for rival accounts and marketing strategy; `/creator-performance` for tracking creators and deciding what to brief next.\n- Creative production routes: `/api/lightreel/script-ideas` for UGC/ad scripts and creator prompts; `/video-ideas` for content angles; `/video-feedback` for drafts, hooks, pacing, retention, conversion; `/ugc-brief` for creator briefs and shot lists; `/content-calendar` for posting plans.\n- Monitoring route: `/api/lightreel/brand-mentions` for brand/product/competitor mentions, sentiment, and earned UGC.\n- Use `POST /api/lightreel/chat` only when no typed route fits. Body: `{ \"question\": string, \"conversation_id\"?: string, \"response_fields\"?: { ... } }`.\n- With `response_fields`, finished `answer` is an object containing only the requested top-level keys. Each field must be `type: \"string\"` or `type: \"array\"`; arrays are returned as arrays and typed routes ask Lightreel to format array items as compact strings.\n- Without `response_fields`, finished `answer` may be a plain string.\n- Pass `conversationId` as `conversation_id` in a new paid Lightreel request to continue the same conversation.\n- `GET /api/lightreel/chats` lists wallet-owned Lightreel chats created through StableSocial. `GET /api/lightreel/chat/{conversationId}` fetches a transcript. Both require SIWX from the paying wallet.\n\n## Auth\n\n- Paid POST endpoints require x402 or MPP payment.\n- Job polling and listing require SIWX wallet auth, not an API key.\n- Wrong-wallet polling returns 403. Missing or invalid SIWX returns 401.\n\n## Practical Agent Rule\n\nFor any user request, choose the smallest endpoint that matches the requested resource, make exactly one paid POST, poll the returned `pollUrl` until terminal, then return the finished data or failed error.","guidance":"# StableSocial\n\nPay-per-request social data from TikTok, Instagram, Facebook, Reddit, and Lightreel. Use the OpenAPI schema for exact request fields.\n\n## Core Flow\n\nMake one paid POST. It returns `202 Accepted` with `jobId`, `pollUrl`, and usually `retryAfterSeconds`. Poll `GET /api/jobs/{jobId}` with SIWX from the same wallet. Do not repeat the paid POST while pending; poll every 3-5 seconds and back off.\n\n## Job Responses\n\n`pending` includes `retryAfterSeconds`; `finished` includes `data`; `failed` includes `error`. If the initial paid POST returns non-2xx, payment is not settled. If an accepted job later fails, treat `status: \"failed\"` as terminal.\n\n## Recovering Jobs\n\nUse `GET /api/jobs?limit=20&cursor=...` with SIWX to list the caller's durable jobs. Use this if the original 202 response was lost. Only the paying wallet can list or poll its jobs.\n\n## Resource Ordering\n\nSome resources depend on fresher parent data. Trigger and finish the parent first: profile before followers/following/posts; profile/posts before post comments when required; post comments before comment replies.\n\n## Pagination\n\nWhen a finished response includes `page_info.cursor` and `page_info.has_next_page`, request the next page by making a new paid POST with that cursor. Each page is a new job with its own `jobId`.\n\n## Lightreel\n\n- Lightreel POSTs run live UGC research and can take minutes. They return `202` with `jobId`, `pollUrl`, and `retryAfterSeconds`; poll the job with SIWX.\n- Prefer typed Lightreel routes over `/api/lightreel/chat` whenever one matches. The typed routes internally request structured fields, so finished job data is `{ answer: { ... }, conversationId }`.\n- Discovery/content routes: `/api/lightreel/top-hooks` for hooks/opening lines; `/video-search` for source TikToks/Reels, URLs, examples, breakout posts; `/creator-search` for UGC creators, influencers, emails/contact info; `/trends` for TikTok/Instagram/X trends and formats.\n- Strategy routes: `/api/lightreel/account-feedback` for account audits and underperforming accounts; `/competitor-strategy` for rival accounts and marketing strategy; `/creator-performance` for tracking creators and deciding what to brief next.\n- Creative production routes: `/api/lightreel/script-ideas` for UGC/ad scripts and creator prompts; `/video-ideas` for content angles; `/video-feedback` for drafts, hooks, pacing, retention, conversion; `/ugc-brief` for creator briefs and shot lists; `/content-calendar` for posting plans.\n- Monitoring route: `/api/lightreel/brand-mentions` for brand/product/competitor mentions, sentiment, and earned UGC.\n- Use `POST /api/lightreel/chat` only when no typed route fits. Body: `{ \"question\": string, \"conversation_id\"?: string, \"response_fields\"?: { ... } }`.\n- With `response_fields`, finished `answer` is an object containing only the requested top-level keys. Each field must be `type: \"string\"` or `type: \"array\"`; arrays are returned as arrays and typed routes ask Lightreel to format array items as compact strings.\n- Without `response_fields`, finished `answer` may be a plain string.\n- Pass `conversationId` as `conversation_id` in a new paid Lightreel request to continue the same conversation.\n- `GET /api/lightreel/chats` lists wallet-owned Lightreel chats created through StableSocial. `GET /api/lightreel/chat/{conversationId}` fetches a transcript. Both require SIWX from the paying wallet.\n\n## Auth\n\n- Paid POST endpoints require x402 or MPP payment.\n- Job polling and listing require SIWX wallet auth, not an API key.\n- Wrong-wallet polling returns 403. Missing or invalid SIWX returns 401.\n\n## Practical Agent Rule\n\nFor any user request, choose the smallest endpoint that matches the requested resource, make exactly one paid POST, poll the returned `pollUrl` until terminal, then return the finished data or failed error."},"servers":[{"url":"https://stablesocial.dev"}],"tags":[{"name":"Facebook"},{"name":"Instagram"},{"name":"Jobs"},{"name":"Lightreel"},{"name":"Reddit"},{"name":"Tiktok"}],"paths":{"/api/instagram/highlights":{"post":{"operationId":"instagram_highlights","summary":"Instagram - Get user highlights","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"Instagram username"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/reddit/search":{"post":{"operationId":"reddit_search","summary":"Reddit - Search posts by keyword","tags":["Reddit"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_posts":{"default":50,"description":"Maximum posts to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/reddit/post":{"post":{"operationId":"reddit_post","summary":"Reddit - Get post details","tags":["Reddit"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","minLength":1,"description":"Reddit post ID"}},"required":["post_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/reddit/comment":{"post":{"operationId":"reddit_comment","summary":"Reddit - Get comment details","tags":["Reddit"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"comment_id":{"type":"string","minLength":1,"description":"Reddit comment ID"}},"required":["comment_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/reddit/post-comments":{"post":{"operationId":"reddit_post-comments","summary":"Reddit - Get comments on a post","tags":["Reddit"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","minLength":1,"description":"Reddit post ID"},"max_comments":{"default":50,"description":"Maximum number of comments","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["post_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/profile":{"post":{"operationId":"tiktok_profile","summary":"TikTok - Get user profile information","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"TikTok username (without @)"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/posts":{"post":{"operationId":"tiktok_posts","summary":"TikTok - Get user posts/videos","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"TikTok username"},"max_posts":{"default":50,"description":"Maximum number of posts to collect","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/post-comments":{"post":{"operationId":"tiktok_post-comments","summary":"TikTok - Get comments on a post","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_id":{"type":"string","minLength":1,"description":"TikTok profile username"},"post_id":{"type":"string","minLength":1,"description":"TikTok post/video ID"},"max_comments":{"default":50,"description":"Maximum number of comments","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["profile_id","post_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/comment-replies":{"post":{"operationId":"tiktok_comment-replies","summary":"TikTok - Get replies to a comment","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_id":{"type":"string","minLength":1,"description":"TikTok profile username"},"post_id":{"type":"string","minLength":1,"description":"TikTok post/video ID"},"comment_id":{"type":"string","minLength":1,"description":"TikTok comment ID"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["profile_id","post_id","comment_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/followers":{"post":{"operationId":"tiktok_followers","summary":"TikTok - Get user followers","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"TikTok username"},"max_followers":{"default":500,"description":"Maximum number of followers to collect from TikTok","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":100,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/following":{"post":{"operationId":"tiktok_following","summary":"TikTok - Get accounts user follows","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"TikTok username"},"max_page_size":{"default":100,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/search":{"post":{"operationId":"tiktok_search","summary":"TikTok - Search posts by keyword","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"sort_type":{"description":"Sort type","type":"string","enum":["relevance","like_count","date_posted"]},"date_posted":{"description":"Date filter","type":"string","enum":["all","past_day","past_week","past_month","past_half_year"]},"max_posts":{"default":50,"description":"Maximum posts to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/search-hashtag":{"post":{"operationId":"tiktok_search-hashtag","summary":"TikTok - Search posts by hashtag","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"hashtag":{"type":"string","minLength":1,"description":"Hashtag to search (without #)"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["hashtag"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/search-profiles":{"post":{"operationId":"tiktok_search-profiles","summary":"TikTok - Search user profiles by keyword","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/tiktok/search-music":{"post":{"operationId":"tiktok_search-music","summary":"TikTok - Search posts by music/sound","tags":["Tiktok"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"music_title":{"type":"string","minLength":1,"description":"Music/sound title"},"music_id":{"type":"string","minLength":1,"description":"Music/sound ID"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["music_title","music_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/profile":{"post":{"operationId":"instagram_profile","summary":"Instagram - Get user profile information","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"Instagram username (without @)"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/posts":{"post":{"operationId":"instagram_posts","summary":"Instagram - Get user posts","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"Instagram username"},"max_posts":{"default":50,"description":"Maximum number of posts to collect","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/post-comments":{"post":{"operationId":"instagram_post-comments","summary":"Instagram - Get comments on a post","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","minLength":1,"description":"Instagram post ID or shortcode"},"max_comments":{"default":50,"description":"Maximum number of comments","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["post_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/comment-replies":{"post":{"operationId":"instagram_comment-replies","summary":"Instagram - Get replies to a comment","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","minLength":1,"description":"Instagram post ID (needed to trigger reply loading)"},"comment_id":{"type":"string","minLength":1,"description":"Instagram comment ID"},"max_replies":{"default":50,"description":"Maximum replies to collect for the comment","type":"integer","minimum":1,"maximum":300},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["post_id","comment_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/followers":{"post":{"operationId":"instagram_followers","summary":"Instagram - Get user followers","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"Instagram username"},"max_followers":{"default":500,"description":"Maximum number of followers to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":100,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/following":{"post":{"operationId":"instagram_following","summary":"Instagram - Get accounts user follows","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"Instagram username"},"max_page_size":{"default":100,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/stories":{"post":{"operationId":"instagram_stories","summary":"Instagram - Get user stories","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"handle":{"type":"string","minLength":1,"description":"Instagram username"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["handle"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/search":{"post":{"operationId":"instagram_search","summary":"Instagram - Search posts by keyword","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_posts":{"default":50,"description":"Maximum posts to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/instagram/search-tags":{"post":{"operationId":"instagram_search-tags","summary":"Instagram - Search posts by tag/hashtag","tags":["Instagram"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tag":{"type":"string","minLength":1,"description":"Instagram tag/hashtag (without #)"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["tag"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/profile":{"post":{"operationId":"facebook_profile","summary":"Facebook - Get user/page profile information","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_id":{"type":"string","minLength":1,"description":"Facebook profile ID or username"}},"required":["profile_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/posts":{"post":{"operationId":"facebook_posts","summary":"Facebook - Get user/page posts","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_id":{"type":"string","minLength":1,"description":"Facebook profile ID or username"},"max_posts":{"default":50,"description":"Maximum number of posts to collect","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["profile_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/post-comments":{"post":{"operationId":"facebook_post-comments","summary":"Facebook - Get comments on a post","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","minLength":1,"description":"Facebook post ID"},"max_comments":{"default":50,"description":"Maximum number of comments","type":"integer","minimum":-9007199254740991,"maximum":300},"order_by":{"description":"Sort order","type":"string","enum":["date_desc","date_asc","id_desc"]},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["post_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/comment-replies":{"post":{"operationId":"facebook_comment-replies","summary":"Facebook - Get replies to a comment","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"post_id":{"type":"string","minLength":1,"description":"Facebook post ID (needed to trigger reply loading)"},"comment_id":{"type":"string","minLength":1,"description":"Facebook comment ID"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["post_id","comment_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/followers":{"post":{"operationId":"facebook_followers","summary":"Facebook - Get user/page followers","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_id":{"type":"string","minLength":1,"description":"Facebook profile ID or username"},"max_followers":{"default":500,"description":"Maximum number of followers to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":100,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["profile_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/following":{"post":{"operationId":"facebook_following","summary":"Facebook - Get accounts user/page follows","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profile_id":{"type":"string","minLength":1,"description":"Facebook profile ID or username"},"max_page_size":{"default":100,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["profile_id"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/search":{"post":{"operationId":"facebook_search","summary":"Facebook - Search posts by keyword","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_posts":{"default":50,"description":"Maximum posts to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/search-people":{"post":{"operationId":"facebook_search-people","summary":"Facebook - Search for people profiles","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/search-pages":{"post":{"operationId":"facebook_search-pages","summary":"Facebook - Search for page profiles","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/facebook/search-groups":{"post":{"operationId":"facebook_search-groups","summary":"Facebook - Search for group profiles","tags":["Facebook"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/reddit/search-profiles":{"post":{"operationId":"reddit_search-profiles","summary":"Reddit - Search user profiles by keyword","tags":["Reddit"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"keywords":{"type":"string","minLength":1,"description":"Search keywords"},"max_profiles":{"default":50,"description":"Maximum profiles to collect","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["keywords"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/reddit/subreddit":{"post":{"operationId":"reddit_subreddit","summary":"Reddit - Get subreddit posts","tags":["Reddit"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Subreddit name (without r/)"},"max_page_size":{"default":50,"description":"Results per page","type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"cursor":{"description":"Pagination cursor","type":"string"}},"required":["name"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"token":{"type":"string"}},"required":["jobId","status","pollUrl","token"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/chat":{"post":{"operationId":"lightreel_chat","summary":"Lightreel - Ask the UGC research agent a question. Returns a durable StableSocial job immediately; poll GET /api/jobs/{jobId}. Use response_fields for structured output.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"question":{"type":"string","minLength":1,"maxLength":10000,"description":"Question to ask the Lightreel UGC research agent"},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1},"response_fields":{"description":"Optional structured output request. Up to 5 fields, each with type string or array.","type":"object","propertyNames":{"type":"string","minLength":1,"maxLength":64},"additionalProperties":{"type":"object","properties":{"type":{"type":"string","enum":["string","array"],"description":"Requested output field type"},"description":{"type":"string","minLength":1,"maxLength":500,"description":"Description of the requested output field"}},"required":["type","description"]}}},"required":["question"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/top-hooks":{"post":{"operationId":"lightreel_top-hooks","summary":"Lightreel - Find top-performing UGC hooks, viral opening lines, ad hooks, creator hooks, and short-form video hook ideas for a topic, niche, product, or campaign.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"type":"string","minLength":1,"maxLength":500,"description":"Topic, product category, audience, niche, or campaign brief"},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"max_hooks":{"default":10,"description":"Maximum number of hooks to return","type":"integer","minimum":1,"maximum":25},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["topic"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/video-search":{"post":{"operationId":"lightreel_video-search","summary":"Lightreel - Search for UGC videos, TikTok/Instagram video examples, breakout posts, creator videos, ad examples, source URLs, and winning short-form content by topic, account, niche, or brief.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":1000,"description":"Video search brief, account, URL, topic, trend, or criteria"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"max_videos":{"default":10,"description":"Maximum number of videos to return","type":"integer","minimum":1,"maximum":50},"include_analysis":{"default":true,"description":"Whether to explain why each video is relevant or working","type":"boolean"},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["query"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/creator-search":{"post":{"operationId":"lightreel_creator-search","summary":"Lightreel - Find UGC creators, influencers, creator emails, public contact info, niche creator lists, and brand-fit creators by criteria, location, follower range, content style, or audience.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"criteria":{"type":"string","minLength":1,"maxLength":1000,"description":"Creator/influencer criteria, niche, audience, school, or brand fit"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"max_creators":{"default":20,"description":"Maximum number of creators to return","type":"integer","minimum":1,"maximum":50},"include_contact_info":{"default":true,"description":"Whether to include emails or public contact info when available","type":"boolean"},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["criteria"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/trends":{"post":{"operationId":"lightreel_trends","summary":"Lightreel - Research current TikTok, Instagram, X/Twitter, UGC, creator, social video, ad creative, and content trends by topic, niche, audience, sound, category, or market.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"topic":{"type":"string","minLength":1,"maxLength":500,"description":"Trend category, niche, audience, sound, content format, or market"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"max_trends":{"default":10,"description":"Maximum number of trends to return","type":"integer","minimum":1,"maximum":25},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["topic"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/account-feedback":{"post":{"operationId":"lightreel_account-feedback","summary":"Lightreel - Audit social accounts, improve underperforming accounts, diagnose why posts are not breaking through, get account feedback, growth gaps, competitor examples, and UGC strategy fixes.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"accounts":{"minItems":1,"maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"description":"Handles, account URLs, or creator profile URLs to audit"},"goal":{"description":"Desired outcome, e.g. improve hooks, drive app installs, find growth gaps","type":"string","minLength":1,"maxLength":500},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["accounts"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/competitor-strategy":{"post":{"operationId":"lightreel_competitor-strategy","summary":"Lightreel - See competitor strategies, reverse-engineer competitor UGC, compare winning hooks and formats, develop marketing strategy, and find what rival brands or accounts are doing on social video.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand_or_product":{"type":"string","minLength":1,"maxLength":500,"description":"Brand, product, account, category, or campaign to strategize for"},"competitors":{"default":[],"description":"Competitor account handles, URLs, brands, or products to compare","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"goal":{"description":"Marketing goal, e.g. app installs, creator sourcing, lower CAC, more views","type":"string","minLength":1,"maxLength":500},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["brand_or_product"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/script-ideas":{"post":{"operationId":"lightreel_script-ideas","summary":"Lightreel - Write UGC scripts, creator scripts, ad scripts, AI prompts, short-form video outlines, hooks, beats, captions, and script variations based on current social content patterns.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":1,"maxLength":1500,"description":"Product, campaign, audience, or creator brief to write scripts for"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"max_scripts":{"default":5,"description":"Maximum number of scripts or script outlines to return","type":"integer","minimum":1,"maximum":20},"tone":{"description":"Desired tone or creator style, e.g. chaotic GRWM, founder story, comedy","type":"string","minLength":1,"maxLength":200},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["brief"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/video-ideas":{"post":{"operationId":"lightreel_video-ideas","summary":"Lightreel - Generate UGC video ideas, TikTok ideas, Instagram Reel ideas, creator concepts, ad creative ideas, content angles, and social video concepts from live trend and example research.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brief":{"type":"string","minLength":1,"maxLength":1500,"description":"Product, category, trend, audience, or campaign brief for video ideas"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"max_ideas":{"default":10,"description":"Maximum number of video ideas to return","type":"integer","minimum":1,"maximum":30},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["brief"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/video-feedback":{"post":{"operationId":"lightreel_video-feedback","summary":"Lightreel - Give feedback on UGC videos, creator drafts, scripts, hooks, captions, Reels, TikToks, storyboards, and ad creatives based on what is working in live social content.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"content":{"type":"string","minLength":1,"maxLength":5000,"description":"Video URL, script, transcript, storyboard, or draft content to critique"},"goal":{"description":"Desired improvement, e.g. stronger hook, higher retention, better conversion","type":"string","minLength":1,"maxLength":500},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["content"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/ugc-brief":{"post":{"operationId":"lightreel_ugc-brief","summary":"Lightreel - Generate UGC briefs, creator briefs, campaign briefs, creative direction, hook lists, shot lists, talking points, and production notes grounded in current social trends.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"product_or_campaign":{"type":"string","minLength":1,"maxLength":1000,"description":"Product, brand, campaign, offer, or landing page context"},"audience":{"description":"Target customer, creator persona, or audience segment","type":"string","minLength":1,"maxLength":500},"goal":{"description":"Campaign goal, e.g. app installs, purchases, trial starts, awareness","type":"string","minLength":1,"maxLength":500},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["product_or_campaign"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/content-calendar":{"post":{"operationId":"lightreel_content-calendar","summary":"Lightreel - Plan content calendars, UGC calendars, TikTok calendars, Instagram Reel calendars, posting plans, weekly creative tests, and social media campaign schedules.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand_or_campaign":{"type":"string","minLength":1,"maxLength":1000,"description":"Brand, account, product, campaign, niche, or creator strategy brief"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"next 30 days","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"posting_frequency":{"default":"3-5 posts per week","description":"Desired publishing cadence","type":"string","minLength":1,"maxLength":120},"goal":{"description":"Calendar goal, e.g. test hooks, ship UGC ads, grow organic account","type":"string","minLength":1,"maxLength":500},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["brand_or_campaign"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/brand-mentions":{"post":{"operationId":"lightreel_brand-mentions","summary":"Lightreel - Monitor brand mentions, social mentions, product mentions, competitor mentions, creator posts, sentiment patterns, earned UGC, and discussion around a brand or campaign.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"brand":{"type":"string","minLength":1,"maxLength":300,"description":"Brand, product, app, artist, creator, or campaign to monitor"},"competitors":{"default":[],"description":"Optional competitor brands, products, or accounts to include","maxItems":10,"type":"array","items":{"type":"string","minLength":1,"maxLength":300}},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"max_mentions":{"default":20,"description":"Maximum mentions, examples, or posts to return","type":"integer","minimum":1,"maximum":50},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["brand"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/creator-performance":{"post":{"operationId":"lightreel_creator-performance","summary":"Lightreel - Track creator performance, analyze UGC creator accounts, compare creators, find which creator formats are working, and decide what content to repeat or brief next.","tags":["Lightreel"],"x-payment-info":{"price":{"mode":"fixed","currency":"USD","amount":"0.060000"},"protocols":[{"x402":{}},{"mpp":{"method":"tempo","intent":"charge","currency":"0x20c000000000000000000000b9537d11c60e8b50"}}]},"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"creators":{"minItems":1,"maxItems":20,"type":"array","items":{"type":"string","minLength":1,"maxLength":300},"description":"Creator handles, account URLs, profile URLs, or brand-managed accounts"},"platform":{"default":"any","description":"Social platform to focus on","type":"string","enum":["any","tiktok","instagram","twitter","x","youtube","facebook","reddit"]},"timeframe":{"default":"this week","description":"Time window to focus on, e.g. this week, last 30 days","type":"string","minLength":1,"maxLength":120},"goal":{"description":"Performance question, e.g. who is working, which formats to repeat","type":"string","minLength":1,"maxLength":500},"conversation_id":{"description":"Lightreel conversation ID returned by a prior chat response","type":"string","minLength":1}},"required":["creators"]}}}},"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string","const":"pending"},"pollUrl":{"type":"string","format":"uri"},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991}},"required":["jobId","status","pollUrl","retryAfterSeconds"],"additionalProperties":false}}}},"402":{"description":"Payment Required"}}}},"/api/lightreel/chats":{"get":{"operationId":"lightreel_chats","summary":"List durable wallet-owned Lightreel chats created through StableSocial. Requires SIWX wallet auth from the wallet that paid.","tags":["Lightreel"],"security":[{"siwx":[]}],"parameters":[{"in":"query","name":"limit","schema":{"default":20,"description":"Maximum wallet-owned Lightreel chats to return","type":"integer","minimum":1,"maximum":50},"description":"Maximum wallet-owned Lightreel chats to return"},{"in":"query","name":"cursor","schema":{"description":"Pagination cursor from a previous Lightreel chat list","type":"string"},"description":"Pagination cursor from a previous Lightreel chat list"}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"conversations":{"type":"array","items":{"type":"object","properties":{"jobId":{"type":"string"},"conversationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"question":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string"},"providerStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"pollUrl":{"type":"string","format":"uri"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["jobId","conversationId","question","status","providerStatus","pollUrl","createdAt","updatedAt","completedAt"],"additionalProperties":false}},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["conversations","nextCursor"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"}}}},"/api/lightreel/chat/{conversationId}":{"get":{"operationId":"lightreel_chat_transcript","summary":"Fetch a Lightreel transcript by conversationId. Requires SIWX wallet auth from the wallet that paid for the original StableSocial Lightreel job.","tags":["Lightreel"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"conversationId":{"type":"string"},"messages":{"type":"array","items":{"type":"object","properties":{"role":{"type":"string"},"question":{"type":"string"},"answer":{}},"additionalProperties":{}}}},"required":["conversationId","messages"],"additionalProperties":{}}}}},"402":{"description":"Authentication Required"}}}},"/api/jobs":{"get":{"operationId":"jobs","summary":"List durable StableSocial jobs, or poll a legacy token. Requires SIWX wallet auth from the paying wallet.","tags":["Jobs"],"security":[{"siwx":[]}],"parameters":[{"in":"query","name":"token","schema":{"description":"Legacy signed JWT job token from a 202 response","type":"string","minLength":1},"description":"Legacy signed JWT job token from a 202 response"},{"in":"query","name":"limit","schema":{"default":20,"description":"Maximum jobs to return when listing durable jobs","type":"integer","minimum":1,"maximum":100},"description":"Maximum jobs to return when listing durable jobs"},{"in":"query","name":"cursor","schema":{"description":"Pagination cursor from a previous durable job list response","type":"string"},"description":"Pagination cursor from a previous durable job list response"},{"in":"query","name":"status","schema":{"description":"Optional durable job status filter","type":"string","enum":["pending","finished","failed"]},"description":"Optional durable job status filter"}],"responses":{"200":{"description":"Successful response"},"402":{"description":"Authentication Required"}}}},"/api/jobs/{jobId}":{"get":{"operationId":"jobs_status","summary":"Poll a durable StableSocial job by jobId. Requires SIWX wallet auth from the wallet that paid for the job.","tags":["Jobs"],"security":[{"siwx":[]}],"responses":{"200":{"description":"Successful response","content":{"application/json":{"schema":{"type":"object","properties":{"jobId":{"type":"string"},"provider":{"type":"string"},"endpoint":{"type":"string"},"input":{},"status":{"type":"string"},"providerStatus":{"anyOf":[{"type":"string"},{"type":"null"}]},"pollUrl":{"type":"string","format":"uri"},"data":{},"error":{"anyOf":[{"type":"string"},{"type":"null"}]},"retryAfterSeconds":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string"},"updatedAt":{"type":"string"},"completedAt":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["jobId","provider","endpoint","status","providerStatus","pollUrl","createdAt","updatedAt"],"additionalProperties":false}}}},"402":{"description":"Authentication Required"}}}}},"components":{"securitySchemes":{"siwx":{"type":"apiKey","in":"header","name":"SIGN-IN-WITH-X"}}}}