{"openapi":"3.1.0","externalDocs":{"url":"https://trigify.io","description":"Find more info here"},"info":{"version":"0.0.1","title":"Trigify API"},"components":{"securitySchemes":{"AuthorizationApiKey":{"type":"apiKey","name":"x-api-key","in":"header"}},"schemas":{"ProfilePicture":{"type":"object","properties":{"width":{"type":"number","description":"Profile picture width"},"height":{"type":"number","description":"Profile picture height"},"url":{"type":"string","description":"Profile picture URL"}},"required":["width","height","url"]},"Author":{"type":"object","properties":{"id":{"type":"number","description":"Author ID"},"firstName":{"type":"string","description":"Author first name"},"lastName":{"type":"string","description":"Author last name"},"headline":{"type":"string","description":"Author headline/bio"},"username":{"type":"string","description":"Author LinkedIn username"},"url":{"type":"string","description":"Author LinkedIn profile URL"},"profilePictures":{"type":"array","items":{"$ref":"#/components/schemas/ProfilePicture"},"description":"Author profile pictures"},"urn":{"type":"string","description":"Author LinkedIn URN"}}},"Video":{"type":"object","properties":{"url":{"type":"string","description":"Video URL"},"poster":{"type":"string","description":"Video poster URL"},"duration":{"type":"number","description":"Video duration in seconds"}},"required":["url","poster","duration"]},"Company":{"type":"object","properties":{"name":{"type":"string","description":"Company name"},"url":{"type":"string","description":"Company LinkedIn URL"},"urn":{"type":"string","description":"Company LinkedIn URN"}}},"CoverPage":{"type":"object","properties":{"width":{"type":"number","description":"Cover page width"},"height":{"type":"number","description":"Cover page height"},"imageUrls":{"type":"array","items":{"type":"string"},"description":"Cover page image URLs"}},"required":["width","height","imageUrls"]},"Document":{"type":"object","properties":{"title":{"type":"string","description":"Document title"},"urn":{"type":"string","description":"Document URN"},"TranscribedDocumentUrl":{"type":"string","description":"Transcribed document URL"},"TranscribedDocumentUrlExpiresAt":{"type":"number","description":"Transcribed document URL expiration timestamp"},"manifestUrlExpiresAt":{"type":"number","description":"Manifest URL expiration timestamp"},"manifestUrl":{"type":"string","description":"Manifest URL"},"scanRequiredForDownload":{"type":"boolean","description":"Whether scan is required for download"},"totalPageCount":{"type":"number","description":"Total page count"},"coverPages":{"type":"array","items":{"$ref":"#/components/schemas/CoverPage"},"description":"Cover pages"}},"description":"Document information (if applicable)"},"Article":{"type":"object","properties":{}},"Image":{"type":"object","properties":{"url":{"type":"string","description":"Image URL"}},"required":["url"]},"ResharedPostCompany":{"type":"object","properties":{"name":{"type":"string","description":"Company name"},"url":{"type":"string","description":"Company URL"},"urn":{"type":"string","description":"Company URN"},"companyLogo":{"type":"array","items":{"$ref":"#/components/schemas/ProfilePicture"},"description":"Company logo images"}},"required":["name","url","urn","companyLogo"],"description":"Reshared post company"},"ResharedPost":{"type":"object","properties":{"text":{"type":"string","description":"Reshared post text"},"author":{"allOf":[{"$ref":"#/components/schemas/Article"},{"description":"Reshared post author"}]},"video":{"type":"array","items":{"$ref":"#/components/schemas/Video"},"description":"Reshared post videos"},"company":{"$ref":"#/components/schemas/ResharedPostCompany"},"document":{"allOf":[{"$ref":"#/components/schemas/Article"},{"description":"Reshared post document"}]},"article":{"allOf":[{"$ref":"#/components/schemas/Article"},{"description":"Reshared post article"}]},"image":{"type":"array","items":{"$ref":"#/components/schemas/Image"},"description":"Reshared post images"}},"required":["text","author","company","document","article"],"description":"Reshared post information (if applicable)"},"LinkedInPost":{"type":"object","properties":{"text":{"type":"string","description":"The text content of the post"},"totalReactionCount":{"type":"number","description":"Total number of reactions on the post"},"likeCount":{"type":"number","description":"Number of likes on the post"},"entityType":{"type":"string","enum":["post","comment"],"description":"Type of entity (post or comment)"},"empathyCount":{"type":"number","description":"Number of empathy reactions"},"commentsCount":{"type":"number","description":"Number of comments on the post"},"postUrl":{"type":"string","description":"URL of the LinkedIn post"},"postedAt":{"type":"string","description":"Time when the post was created (relative)"},"postedDate":{"type":"string","description":"Formatted date when the post was created"},"postedDateTimestamp":{"type":"number","description":"Timestamp when the post was created"},"urn":{"type":"string","description":"LinkedIn URN for the post"},"author":{"$ref":"#/components/schemas/Author"},"video":{"type":"array","items":{"$ref":"#/components/schemas/Video"},"description":"Videos in the post"},"company":{"$ref":"#/components/schemas/Company"},"document":{"$ref":"#/components/schemas/Document"},"article":{"$ref":"#/components/schemas/Article"},"praiseCount":{"type":"number","description":"Number of praise reactions"},"appreciationCount":{"type":"number","description":"Number of appreciation reactions"},"InterestCount":{"type":"number","description":"Number of interest reactions"},"image":{"type":"array","items":{"$ref":"#/components/schemas/Image"},"description":"Images in the post"},"repostsCount":{"type":"number","description":"Number of reposts"},"funnyCount":{"type":"number","description":"Number of funny reactions"},"resharedPost":{"$ref":"#/components/schemas/ResharedPost"},"reposted":{"type":"boolean","description":"Whether this post is a repost"}},"required":["text","totalReactionCount","likeCount","entityType","postUrl","postedAt","postedDate","postedDateTimestamp","urn","author","company","article"]},"GetProfilePostsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/LinkedInPost"}},"paginationToken":{"type":["string","null"],"description":"Token for fetching the next page"}},"required":["message","success","data","paginationToken"]},"ProspectData":{"type":"object","properties":{"gender":{"type":"string","description":"Gender"},"job_title_levels":{"type":"array","items":{"type":"string"},"description":"Job title levels"},"open_to_work":{"type":"boolean","description":"Whether the person is open to work"},"premium":{"type":"boolean","description":"Whether the person has LinkedIn Premium"},"influencer":{"type":"boolean","description":"Whether the person is a LinkedIn influencer"},"languages":{"type":"array","items":{"type":"string"},"description":"Languages spoken"},"job_title_role":{"type":"string","description":"Job title role"},"job_title_sub_role":{"type":"string","description":"Job title sub-role"},"summary":{"type":"string","description":"LinkedIn summary/about section"},"follower_count":{"type":["number","null"],"description":"Number of LinkedIn followers"},"connection_count":{"type":["number","null"],"description":"Number of LinkedIn connections"},"avatar":{"type":"string","description":"Profile picture URL"},"first_name":{"type":"string","description":"First name"},"last_name":{"type":"string","description":"Last name"},"full_name":{"type":"string","description":"Full name"},"job_company_name":{"type":"string","description":"Current company name"},"job_title":{"type":"string","description":"Current job title"},"job_company_website":{"type":"string","description":"Current company website"},"industry":{"type":"string","description":"Industry"},"location_name":{"type":"string","description":"Location name"},"location_country":{"type":"string","description":"Location country"},"linkedin_url":{"type":"string","description":"LinkedIn profile URL"},"linkedin_urn":{"type":"string","description":"LinkedIn URN"}},"required":["gender","job_title_levels","open_to_work","premium","influencer","languages","job_title_role","job_title_sub_role","summary","follower_count","connection_count","avatar","first_name","last_name","full_name","job_company_name","job_title","job_company_website","industry","location_name","location_country","linkedin_url","linkedin_urn"]},"ExperienceItem":{"type":"object","properties":{"company_name":{"type":"string","description":"Company name"},"job_title":{"type":"string","description":"Job title at the company"},"location":{"type":"string","description":"Location of the job"},"start_date":{"type":"string","description":"Start date (ISO string)"},"end_date":{"type":"string","description":"End date (ISO string)"},"company_logo":{"type":"string","description":"Company logo URL"}},"required":["company_name","job_title","location","start_date","end_date"]},"EnrichedProfileData":{"type":["object","null"],"properties":{"prospect":{"$ref":"#/components/schemas/ProspectData"},"experience":{"type":"array","items":{"$ref":"#/components/schemas/ExperienceItem"},"description":"Work experience history"}},"required":["prospect","experience"]},"EnrichProfileResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/EnrichedProfileData"}},"required":["message","success","data"]},"BulkTrackedProfileResult":{"type":"object","properties":{"profile_url":{"type":"string","description":"Canonical LinkedIn profile URL"},"status":{"type":"string","enum":["created","existing"],"description":"Whether the tracked profile was created/revived by this request or already existed."},"webhook_status":{"type":"string","enum":["created","updated","unchanged","none","failed"],"description":"Webhook action taken for this profile during the request."}},"required":["profile_url","status","webhook_status"]},"BulkTrackProfilesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/BulkTrackedProfileResult"}}},"required":["message","success","data"]},"BulkTrackedProfile":{"type":"object","properties":{"profile_url":{"type":"string","minLength":1,"description":"LinkedIn person profile URL to track. Accepts canonical or shorthand LinkedIn /in/ URLs.","example":"https://www.linkedin.com/in/jane-doe"},"webhook_url":{"type":"string","format":"uri","description":"Optional HTTPS webhook URL that receives engagement results for this tracked profile.","example":"https://example.com/webhooks/trigify-engagement"}},"required":["profile_url"]},"BulkTrackProfilesRequest":{"type":"object","properties":{"profiles":{"type":"array","items":{"$ref":"#/components/schemas/BulkTrackedProfile"},"minItems":1,"maxItems":100,"description":"Tracked LinkedIn profiles to create or refresh (max 100)."}},"required":["profiles"]},"TrackedProfileEngagementResult":{"type":"object","properties":{"post_url":{"type":["string","null"],"description":"Tracked post URL"},"posted_date":{"type":["string","null"],"description":"Tracked post publish date (ISO 8601)"},"post_text":{"type":["string","null"],"description":"Tracked post text"},"engagement":{"type":"object","properties":{"type":{"type":["string","null"],"description":"Engagement type"},"text":{"type":["string","null"],"description":"Engagement text, if comment"},"engaged_at":{"type":["string","null"],"description":"Engagement timestamp (ISO 8601)"}},"required":["type","text","engaged_at"],"description":"Latest matching engagement for the prospect"},"prospect":{"type":"object","properties":{"full_name":{"type":["string","null"],"description":"Prospect full name"},"linkedin_url":{"type":["string","null"],"description":"Prospect LinkedIn URL"},"job_title":{"type":["string","null"],"description":"Prospect job title"},"company":{"type":["string","null"],"description":"Prospect company name"}},"required":["full_name","linkedin_url","job_title","company"],"description":"Prospect details"}},"required":["post_url","posted_date","post_text","engagement","prospect"]},"ProfileEngagementPagination":{"type":"object","properties":{"page":{"type":"integer","description":"Current page number"},"page_size":{"type":"integer","description":"Items per page"},"total_count":{"type":"integer","description":"Total number of matching prospects"},"total_pages":{"type":"integer","description":"Total number of pages"}},"required":["page","page_size","total_count","total_pages"]},"GetProfileEngagementResultsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TrackedProfileEngagementResult"}},"pagination":{"$ref":"#/components/schemas/ProfileEngagementPagination"}},"required":["message","success","data","pagination"]},"GetProfileEngagementResultsRequest":{"type":"object","properties":{"profile_url":{"type":"string","minLength":1,"description":"LinkedIn person profile URL to resolve within the authenticated organisation.","example":"https://www.linkedin.com/in/jane-doe"},"page":{"type":"integer","minimum":1,"default":1,"description":"Page number"},"page_size":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Items per page"}},"required":["profile_url"]},"GetProfilePostEngagementResultsRequest":{"type":"object","properties":{"profile_url":{"type":"string","minLength":1,"description":"LinkedIn person profile URL to resolve within the authenticated organisation.","example":"https://www.linkedin.com/in/jane-doe"},"post_url":{"type":"string","description":"Tracked LinkedIn post URL for the requested monitored profile.","example":"https://www.linkedin.com/feed/update/urn:li:activity:7356241888074958848/"},"page":{"type":"integer","minimum":1,"default":1,"description":"Page number"},"page_size":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Items per page"}},"required":["profile_url","post_url"]},"RemoveTrackedProfileResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"profile_url":{"type":"string","description":"Canonical LinkedIn profile URL that was removed."},"removed":{"type":"boolean","enum":[true],"description":"Whether the tracked profile was archived successfully."},"webhook_removed":{"type":"boolean","description":"Whether an active webhook configuration was removed."}},"required":["profile_url","removed","webhook_removed"]}},"required":["message","success","data"]},"RemoveTrackedProfileRequest":{"type":"object","properties":{"profile_url":{"type":"string","minLength":1,"description":"LinkedIn person profile URL to resolve within the authenticated organisation.","example":"https://www.linkedin.com/in/jane-doe"}},"required":["profile_url"]},"CompanyPost":{"type":"object","properties":{"text":{"type":"string","description":"The text content of the post"},"totalReactionCount":{"type":"number","description":"Total number of reactions on the post"},"likeCount":{"type":"number","description":"Number of likes on the post"},"entityType":{"type":"string","enum":["post","comment"],"description":"Type of entity (post or comment)"},"empathyCount":{"type":"number","description":"Number of empathy reactions"},"commentsCount":{"type":"number","description":"Number of comments on the post"},"postUrl":{"type":"string","description":"URL of the LinkedIn post"},"postedAt":{"type":"string","description":"Time when the post was created (relative)"},"postedDate":{"type":"string","description":"Formatted date when the post was created"},"postedDateTimestamp":{"type":"number","description":"Timestamp when the post was created"},"urn":{"type":"string","description":"LinkedIn URN for the post"},"author":{"$ref":"#/components/schemas/Author"},"video":{"type":"array","items":{"$ref":"#/components/schemas/Video"},"description":"Videos in the post"},"company":{"$ref":"#/components/schemas/Company"},"document":{"$ref":"#/components/schemas/Document"},"article":{"$ref":"#/components/schemas/Article"},"praiseCount":{"type":"number","description":"Number of praise reactions"},"appreciationCount":{"type":"number","description":"Number of appreciation reactions"},"InterestCount":{"type":"number","description":"Number of interest reactions"},"image":{"type":"array","items":{"$ref":"#/components/schemas/Image"},"description":"Images in the post"},"repostsCount":{"type":"number","description":"Number of reposts"},"funnyCount":{"type":"number","description":"Number of funny reactions"},"resharedPost":{"$ref":"#/components/schemas/ResharedPost"},"reposted":{"type":"boolean","description":"Whether this post is a repost"}},"required":["text","totalReactionCount","likeCount","entityType","postUrl","postedAt","postedDate","postedDateTimestamp","urn","author","company","article"]},"GetCompanyPostsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CompanyPost"}}},"required":["message","success","data"]},"CommentAuthor":{"type":"object","properties":{"name":{"type":"string","description":"Author's full name"},"urn":{"type":"string","description":"Author's LinkedIn URN"},"id":{"type":"string","description":"Author's LinkedIn ID"},"username":{"type":"string","description":"Author's LinkedIn username"},"linkedinUrl":{"type":"string","description":"Author's LinkedIn profile URL"},"title":{"type":"string","description":"Author's professional title"}},"required":["name","urn","id","username","linkedinUrl","title"]},"TotalSocialActivityCounts":{"type":"object","properties":{"numComments":{"type":"number","description":"Number of comments"},"likeCount":{"type":"number","description":"Number of likes"},"appreciationCount":{"type":"number","description":"Number of appreciation reactions"},"empathyCount":{"type":"number","description":"Number of empathy reactions"},"InterestCount":{"type":"number","description":"Number of interest reactions"},"praiseCount":{"type":"number","description":"Number of praise reactions"},"funnyCount":{"type":"number","description":"Number of funny reactions"},"maybeCount":{"type":"number","description":"Number of maybe reactions"},"totalReactionCount":{"type":"number","description":"Total number of reactions"},"numShares":{"type":"number","description":"Number of shares"}},"required":["numComments","likeCount","appreciationCount","empathyCount","InterestCount","praiseCount","funnyCount","maybeCount","totalReactionCount","numShares"]},"ReplyAuthor":{"type":"object","properties":{"name":{"type":"string","description":"Reply author's full name"},"urn":{"type":"string","description":"Reply author's LinkedIn URN"},"username":{"type":"string","description":"Reply author's LinkedIn username"},"linkedinUrl":{"type":"string","description":"Reply author's LinkedIn profile URL"},"title":{"type":"string","description":"Reply author's professional title"}},"required":["name","urn","username","linkedinUrl","title"]},"Reply":{"type":"object","properties":{"isPinned":{"type":"boolean","description":"Whether the reply is pinned"},"isEdited":{"type":"boolean","description":"Whether the reply has been edited"},"urn":{"type":"string","description":"Reply URN"},"createdAt":{"type":"number","description":"Creation timestamp"},"createdAtString":{"type":"string","description":"Creation date as string"},"permalink":{"type":"string","description":"Permalink to the reply"},"text":{"type":"string","description":"Reply text content"},"author":{"$ref":"#/components/schemas/ReplyAuthor"},"totalSocialActivityCounts":{"$ref":"#/components/schemas/TotalSocialActivityCounts"}},"required":["isPinned","isEdited","urn","createdAt","createdAtString","permalink","text","author","totalSocialActivityCounts"]},"Comment":{"type":"object","properties":{"isPinned":{"type":"boolean","description":"Whether the comment is pinned"},"isEdited":{"type":"boolean","description":"Whether the comment has been edited"},"threadUrn":{"type":"string","description":"Thread URN for the comment"},"urn":{"type":"string","description":"Comment URN"},"createdAt":{"type":"number","description":"Creation timestamp"},"createdAtString":{"anyOf":[{"type":"string"},{"type":"string"}],"description":"Creation date"},"permalink":{"type":"string","description":"Permalink to the comment"},"text":{"type":"string","description":"Comment text content"},"author":{"$ref":"#/components/schemas/CommentAuthor"},"totalSocialActivityCounts":{"$ref":"#/components/schemas/TotalSocialActivityCounts"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/Reply"},"description":"Replies to this comment"}},"required":["isPinned","isEdited","threadUrn","urn","createdAt","createdAtString","permalink","text","author","totalSocialActivityCounts"]},"CompanyPostCommentsData":{"type":"object","properties":{"comments":{"type":"array","items":{"$ref":"#/components/schemas/Comment"},"description":"List of comments"},"total":{"type":"number","description":"Total number of comments"},"totalPage":{"type":"number","description":"Total number of pages"},"currentPage":{"type":"number","description":"Current page number"}},"required":["comments","total","totalPage","currentPage"]},"GetCompanyPostCommentsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/CompanyPostCommentsData"}},"required":["message","success","data"]},"CompanyData":{"type":["object","null"],"properties":{"linkedin_company_id":{"type":["string","null"],"description":"LinkedIn company ID"},"linkedin_url":{"type":["string","null"],"description":"LinkedIn company URL"},"name":{"type":["string","null"],"description":"Company name"},"domain":{"type":"string","description":"Company domain/website"},"size":{"type":["string","null"],"description":"Company size range"},"industry":{"type":["string","null"],"description":"Industry"},"location":{"type":["string","null"],"description":"Company location"},"company_logo":{"type":["string","null"],"description":"Company logo URL"},"city":{"type":["string","null"],"description":"City"},"country":{"type":["string","null"],"description":"Country"},"description":{"type":["string","null"],"description":"Company description"},"employees_count":{"type":["string","null"],"description":"Number of employees"},"state":{"type":["string","null"],"description":"State/region"},"revenue":{"type":["string","null"],"description":"Annual revenue"},"total_funding":{"type":["string","null"],"description":"Total funding amount"},"monthly_visitors":{"type":["string","null"],"description":"Monthly website visitors"},"technologies":{"type":"array","items":{"type":"string"},"description":"Technologies used by the company"},"annual_growth_rate":{"type":["string","null"],"description":"Annual growth rate"}},"required":["linkedin_company_id","linkedin_url","name","domain","size","industry","location","company_logo","city","country","description","employees_count","state","revenue","total_funding","monthly_visitors","technologies","annual_growth_rate"]},"EnrichCompanyResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/CompanyData"}},"required":["message","success","data"]},"EngagementItem":{"type":"object","properties":{"urn":{"type":"string","description":"LinkedIn URN for the user"},"fullName":{"type":"string","description":"Full name of the user who engaged"},"profileType":{"type":"string","description":"Type of LinkedIn profile"},"profileUrl":{"type":"string","description":"LinkedIn profile URL of the user"},"reactionType":{"type":"string","description":"Type of reaction (LIKE, LOVE, etc.)"},"profilePicture":{"type":["array","null"],"items":{"$ref":"#/components/schemas/ProfilePicture"},"description":"Profile pictures of the user"},"headline":{"type":"string","description":"Professional headline of the user"}},"required":["urn","fullName","profileType","profileUrl","reactionType","profilePicture","headline"]},"PostEngagementsData":{"type":"object","properties":{"currentPage":{"type":"number","description":"Current page number"},"items":{"type":"array","items":{"$ref":"#/components/schemas/EngagementItem"},"description":"List of engagements"},"total":{"type":"number","description":"Total number of engagements"},"totalPages":{"type":"number","description":"Total number of pages"}},"required":["currentPage","items","total","totalPages"]},"GetPostEngagementsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/PostEngagementsData"}},"required":["message","success","data"]},"PostCommentsData":{"type":"object","properties":{"comments":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/Comment"},{"properties":{"isPinned":{"type":"boolean","description":"Whether the comment is pinned"},"isEdited":{"type":"boolean","description":"Whether the comment has been edited"},"threadUrn":{"type":"string","description":"Thread URN for the comment"},"urn":{"type":"string","description":"Comment URN"},"createdAt":{"type":"number","description":"Creation timestamp"},"createdAtString":{"anyOf":[{"type":"string"},{"type":"string"}],"description":"Creation date"},"permalink":{"type":"string","description":"Permalink to the comment"},"text":{"type":"string","description":"Comment text content"},"author":{"$ref":"#/components/schemas/CommentAuthor"},"totalSocialActivityCounts":{"$ref":"#/components/schemas/TotalSocialActivityCounts"},"replies":{"type":"array","items":{"$ref":"#/components/schemas/Reply"},"description":"Replies to this comment"},"previousCursor":{"type":["string","null"],"description":"Cursor to fetch more replies for this comment via POST /v1/post/comments/replies"}}}]},"description":"List of comments"},"total":{"type":"number","description":"Total number of comments"},"totalPage":{"type":"number","description":"Total number of pages"},"currentPage":{"type":"number","description":"Current page number"}},"required":["comments","total","totalPage","currentPage"]},"GetPostCommentsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/PostCommentsData"}},"required":["message","success","data"]},"PostCommentRepliesData":{"type":"object","properties":{"replies":{"type":"array","items":{"$ref":"#/components/schemas/Reply"},"description":"Replies returned for the requested comment"},"count":{"type":"number","description":"Number of replies returned in this response"},"previousCursor":{"type":["string","null"],"description":"Cursor to request the next page of replies when the upstream provider returns one"},"hasMore":{"type":"boolean","description":"Whether another page of replies is available"}},"required":["replies","count","previousCursor","hasMore"]},"GetPostCommentRepliesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/PostCommentRepliesData"}},"required":["message","success","data"]},"GetPostByUrlResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":["object","null"],"properties":{"urn":{"type":"string","description":"LinkedIn post URN"},"text":{"type":["string","null"],"description":"Post text content"},"postUrl":{"type":"string","description":"LinkedIn post URL"},"postedAt":{"type":"string","description":"When the post was published"},"postedDate":{"type":["string","null"],"description":"Posted date in ISO format"},"postedDateTimestamp":{"type":["number","null"],"description":"Posted date as timestamp"},"likeCount":{"type":["integer","null"],"minimum":0,"description":"Number of likes"},"commentsCount":{"type":["integer","null"],"minimum":0,"description":"Number of comments"},"repostsCount":{"type":["integer","null"],"minimum":0,"description":"Number of reposts"},"appreciationCount":{"type":["integer","null"],"minimum":0,"description":"Number of appreciation reactions"},"empathyCount":{"type":["integer","null"],"minimum":0,"description":"Number of empathy reactions"},"funnyCount":{"type":["integer","null"],"minimum":0,"description":"Number of funny reactions"},"interestCount":{"type":["integer","null"],"minimum":0,"description":"Number of interest reactions"},"praiseCount":{"type":["integer","null"],"minimum":0,"description":"Number of praise reactions"},"reposted":{"type":["boolean","null"],"description":"Whether this is a repost"},"author":{"type":["object","null"],"properties":{"firstName":{"type":["string","null"],"description":"Author first name"},"lastName":{"type":["string","null"],"description":"Author last name"},"headline":{"type":["string","null"],"description":"Author headline"},"profilePictures":{"type":["array","null"],"items":{"type":"object","properties":{"url":{"type":"string","description":"Profile picture URL"}},"required":["url"]},"description":"Author profile pictures"},"url":{"type":["string","null"],"description":"Author LinkedIn profile URL"},"username":{"type":["string","null"],"description":"Author username"}},"required":["firstName","lastName","headline","profilePictures","url","username"],"description":"Post author information"},"company":{"type":["object","null"],"properties":{"name":{"type":["string","null"],"description":"Company name"},"linkedinUrl":{"type":["string","null"],"description":"Company LinkedIn URL"},"logo":{"type":["string","null"],"description":"Company logo URL"}},"required":["name","linkedinUrl","logo"],"description":"Company information if applicable"}},"required":["urn","text","postUrl","postedAt","postedDate","postedDateTimestamp","likeCount","commentsCount","repostsCount","appreciationCount","empathyCount","funnyCount","interestCount","praiseCount","reposted","author","company"]}},"required":["message","success","data"]},"Search":{"type":["object","null"],"properties":{"id":{"type":"string","description":"Unique search ID"},"name":{"type":"string","description":"Search name"},"status":{"type":"string","description":"Search status: active, paused, running, completed"},"created_at":{"type":"string","description":"ISO 8601 creation timestamp"},"updated_at":{"type":"string","description":"ISO 8601 last update timestamp"},"last_result_at":{"type":["string","null"],"description":"ISO 8601 timestamp of last result"},"total_results":{"type":"number","description":"Total number of results collected"},"query":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"keywords_and":{"type":"array","items":{"type":"string"}},"keywords_not":{"type":"array","items":{"type":"string"}},"monitoring_type":{"type":["string","null"]},"publication":{"type":["string","null"]},"profile_url":{"type":["string","null"]},"podcast_id":{"type":"string"},"podcast_name":{"type":"string"}},"required":["keywords","monitoring_type"],"description":"Search query configuration"},"filters":{"type":"object","properties":{"time_frame":{"type":["string","null"]},"max_results":{"type":["number","null"]},"frequency":{"type":["string","null"]},"job_titles":{"type":"array","items":{"type":"string"}},"search_type":{"type":["string","null"]},"content_type":{"type":["string","null"]},"linkedin_sort_by":{"type":["string","null"]},"mentions_member":{"type":"array","items":{"type":"string"}},"mentions_organization":{"type":"array","items":{"type":"number"}}},"required":["time_frame","max_results","frequency"],"description":"Search filters"}},"required":["id","name","status","created_at","last_result_at","total_results","query"]},"CreateSearchResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Search"},"credits_charged":{"type":"number","description":"Credits charged for this operation"}},"required":["message","success","data","credits_charged"]},"CreateSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search"},"query":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"default":[],"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"monitoring_type":{"type":"string","enum":["linkedin-posts","reddit-posts","substack-posts","substack-profile","substack-notes","youtube-videos","podcast-keywords","podcast-episodes","twitter-posts","linkedin-profile","twitter-profile","youtube-channel","hackernews-stories","dailydev-posts","subreddit-posts","tiktok-videos","tiktok-profile","github-issues","github-discussions","bluesky-posts","bluesky-profile","threads-posts","threads-profile","threads-mentions","newsapi-ai-posts"],"description":"Type of content to monitor"},"profile_url":{"type":"string","format":"uri","description":"Profile/channel URL — required for profile monitoring types"},"publication":{"type":"string","minLength":1,"maxLength":255,"description":"Substack publication filter (substack-posts/substack-profile only)"},"podcast_id":{"type":"string","description":"Podscan podcast ID — required for podcast-episodes"},"podcast_name":{"type":"string","description":"Podcast name — required for podcast-episodes"},"podcast_image_url":{"type":"string","description":"Podcast image URL"},"podcast_description":{"type":"string","description":"Podcast description"},"dailydev_tags":{"type":"array","items":{"type":"string"},"description":"Daily.dev tags to follow"},"dailydev_tags_block":{"type":"array","items":{"type":"string"},"description":"Daily.dev tags to block"},"dailydev_sources_follow":{"type":"array","items":{"type":"string"},"description":"Daily.dev sources to follow"},"dailydev_sources_block":{"type":"array","items":{"type":"string"},"description":"Daily.dev sources to block"},"dailydev_search_mode":{"type":"string","enum":["keyword-search","smart-recommendations","tag-based-feed","source-based-feed","popular-by-tags","most-discussed","custom-feed"],"description":"Daily.dev search strategy"},"dailydev_blocked_words":{"type":"array","items":{"type":"string"},"description":"Words to filter from Daily.dev results"},"dailydev_blocked_content_types":{"type":"array","items":{"type":"string"},"description":"Content types to block (e.g. listicle, tutorial)"},"dailydev_source_id":{"type":"string","description":"Daily.dev source ID (source-based-feed only)"},"dailydev_feed_id":{"type":"string","description":"Daily.dev custom feed ID (custom-feed only)"},"dailydev_order_by":{"type":"string","enum":["DATE","UPVOTES","DOWNVOTES","COMMENTS","CLICKS"],"description":"Sort order for Daily.dev feed results"},"dailydev_min_upvotes":{"type":"number","description":"Minimum upvotes filter"},"dailydev_min_views":{"type":"number","description":"Minimum views filter"},"dailydev_disable_engagement_filter":{"type":"boolean","description":"Disable Daily.dev engagement quality filter"},"dailydev_discussed_period":{"type":"number","description":"Discussion period in days (most-discussed only)"},"github_repos":{"type":"array","items":{"type":"string"},"description":"GitHub repos to monitor (e.g. facebook/react)"}},"required":["monitoring_type"]},"filters":{"type":"object","properties":{"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search"},"max_results":{"type":"number","minimum":1,"maximum":500,"description":"Maximum results per run"},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"],"description":"How often to run the search"},"job_titles":{"type":"array","items":{"type":"string"},"description":"Filter by job titles"},"search_type":{"type":"string","enum":["Top","Latest","Videos","Photos"],"description":"Twitter result type filter (twitter-posts only): Top, Latest, Videos, Photos"},"content_type":{"type":"string","description":"Content type filter. For linkedin-posts: videos, photos, liveVideos, collaborativeArticles, documents. For substack types: publication name/subdomain."},"linkedin_sort_by":{"type":"string","enum":["date_posted","relevance"],"description":"LinkedIn sort order (linkedin-posts only): date_posted (default), relevance"},"mentions_member":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Filter LinkedIn posts mentioning specific member URNs. Combined with mentions_organization, at most 10 entries."},"mentions_organization":{"type":"array","items":{"type":"integer"},"maxItems":10,"description":"Filter LinkedIn posts mentioning specific organization IDs. Combined with mentions_member, at most 10 entries."},"twitter_language":{"type":"string","description":"Twitter language filter (e.g. 'en')"},"exclude_retweets":{"type":"boolean","description":"Exclude retweets (twitter-posts only)"},"exclude_replies":{"type":"boolean","description":"Exclude replies (twitter-posts only)"},"verified_only":{"type":"boolean","description":"Only verified accounts (twitter-posts only)"},"has_media":{"type":["string","null"],"enum":["any","images","video"],"description":"Filter by media type (twitter-posts only)"},"has_links":{"type":"boolean","description":"Filter posts with links (twitter-posts only)"},"from_users":{"type":"array","items":{"type":"string"},"description":"Filter by specific Twitter usernames"},"to_user":{"type":"string","description":"Filter replies to a specific user"},"url_contains":{"type":"string","description":"Filter posts containing specific URL text"},"place_country":{"type":"string","description":"Filter by country code (e.g. 'US')"},"retweets_of":{"type":"string","description":"Filter retweets of a specific user"},"conversation_id":{"type":"string","description":"Filter by conversation ID"},"list_id":{"type":"string","description":"Filter by Twitter list ID"},"context_annotation":{"type":"string","description":"Filter by context annotation"},"use_full_archive":{"type":"boolean","description":"Use full-archive search (requires elevated access)"}}},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","query"]},"SearchSummary":{"type":"object","properties":{"id":{"type":"string","description":"Unique search ID"},"name":{"type":"string","description":"Search name"},"status":{"type":"string","description":"Search status"},"monitoring_type":{"type":["string","null"],"description":"Monitoring type"},"created_at":{"type":"string","description":"ISO 8601 creation timestamp"},"last_result_at":{"type":["string","null"],"description":"ISO 8601 timestamp of last result"},"total_results":{"type":"number","description":"Total number of results"}},"required":["id","name","status","monitoring_type","created_at","last_result_at","total_results"]},"Pagination":{"type":"object","properties":{"has_more":{"type":"boolean","description":"Whether more results are available"},"next_cursor":{"type":["string","null"],"description":"Cursor for next page"}},"required":["has_more","next_cursor"]},"ListSearchesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["message","success","data","pagination"]},"SearchLimits":{"type":"object","properties":{"limit":{"type":["number","null"],"description":"Maximum saved searches allowed on the current plan. null = unlimited."},"unlimited":{"type":"boolean","description":"Whether the plan allows unlimited saved searches."},"used":{"type":"number","description":"Current number of active saved searches counting toward the limit."},"remaining":{"type":["number","null"],"description":"Remaining saved searches before the limit is reached. null = unlimited."}},"required":["limit","unlimited","used","remaining"]},"SearchLimitsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SearchLimits"}},"required":["message","success","data"]},"GetSearchResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":["object","null"],"properties":{"id":{"type":"string","description":"Unique search ID"},"name":{"type":"string","description":"Search name"},"status":{"type":"string","description":"Search status: active, paused, running, completed"},"created_at":{"type":"string","description":"ISO 8601 creation timestamp"},"updated_at":{"type":"string","description":"ISO 8601 last update timestamp"},"last_result_at":{"type":["string","null"],"description":"ISO 8601 timestamp of last result"},"total_results":{"type":"number","description":"Total number of results collected"},"query":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"}},"keywords_and":{"type":"array","items":{"type":"string"}},"keywords_not":{"type":"array","items":{"type":"string"}},"monitoring_type":{"type":["string","null"]},"publication":{"type":["string","null"]},"profile_url":{"type":["string","null"]},"podcast_id":{"type":"string"},"podcast_name":{"type":"string"}},"required":["keywords","monitoring_type"],"description":"Search query configuration"},"filters":{"type":"object","properties":{"time_frame":{"type":["string","null"]},"max_results":{"type":["number","null"]},"frequency":{"type":["string","null"]},"job_titles":{"type":"array","items":{"type":"string"}},"search_type":{"type":["string","null"]},"content_type":{"type":["string","null"]},"linkedin_sort_by":{"type":["string","null"]},"mentions_member":{"type":"array","items":{"type":"string"}},"mentions_organization":{"type":"array","items":{"type":"number"}}},"required":["time_frame","max_results","frequency"],"description":"Search filters"},"stats":{"type":"object","properties":{"results_today":{"type":"number","description":"Results collected today"},"results_this_week":{"type":"number","description":"Results collected this week"}},"required":["results_today","results_this_week"],"description":"Search statistics"}},"required":["id","name","status","created_at","last_result_at","total_results","query"]}},"required":["message","success","data"]},"SearchResult":{"type":"object","properties":{"id":{"type":"string","description":"Result ID"},"source":{"type":"string","description":"Source platform: linkedin, twitter, reddit, youtube, podcast"},"author":{"type":"object","properties":{"name":{"type":["string","null"],"description":"Author name"},"username":{"type":["string","null"],"description":"Author username/handle"},"profile_url":{"type":["string","null"],"description":"Author profile URL"},"followers":{"type":["number","null"],"description":"Follower count"},"avatar":{"type":["string","null"],"description":"Avatar URL"}},"required":["name","username","profile_url","followers","avatar"]},"content":{"type":"object","properties":{"text":{"type":["string","null"],"description":"Post text content"},"url":{"type":["string","null"],"description":"Original post URL"},"media":{"type":"array","items":{"type":"string"},"description":"Media URLs"}},"required":["text","url"]},"engagement":{"type":"object","properties":{"likes":{"type":["number","null"],"description":"Like/reaction count"},"comments":{"type":["number","null"],"description":"Comment count"},"shares":{"type":["number","null"],"description":"Share/repost count"}},"required":["likes","comments","shares"]},"published_at":{"type":["string","null"],"description":"ISO 8601 publish timestamp"},"collected_at":{"type":"string","description":"ISO 8601 collection timestamp"}},"required":["id","source","author","content","engagement","published_at","collected_at"]},"GetSearchResultsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"}},"pagination":{"type":"object","properties":{"has_more":{"type":"boolean","description":"Whether more results are available"},"next_cursor":{"type":["string","null"],"description":"Cursor for next page"},"total_count":{"type":"number","description":"Approximate total results (based on search stats, may not reflect current filters)"}},"required":["has_more","next_cursor"]},"meta":{"type":"object","properties":{"search_id":{"type":"string","description":"Search ID"},"from":{"type":["string","null"],"description":"Query start date filter"}},"required":["search_id"]}},"required":["message","success","data","pagination","meta"]},"UpdateSearchResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Search"}},"required":["message","success","data"]},"UpdateSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Updated name"},"status":{"type":"string","enum":["active","paused"],"description":"Updated status"},"query":{"type":"object","properties":{"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Updated keywords (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Updated keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Updated keywords to exclude"}},"description":"Update the keyword query. Applies to keyword-based searches; profile and podcast-episode monitors are entity-based and ignore keywords. New keywords take effect on the next scheduled run."},"filters":{"type":"object","properties":{"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":1,"maximum":500,"description":"Maximum results per run (1-500)"},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"job_titles":{"type":"array","items":{"type":"string"},"description":"Filter by job titles (linkedin-posts only, maximum 6)"},"mentions_member":{"type":"array","items":{"type":"string"},"maxItems":10},"mentions_organization":{"type":"array","items":{"type":"integer"},"maxItems":10}},"description":"Updated filters"}}},"DeleteSearchResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"id":{"type":"string","description":"Deleted search ID"},"deleted":{"type":"boolean","enum":[true],"description":"Deletion confirmed"}},"required":["id","deleted"]}},"required":["message","success","data"]},"PodcastResult":{"type":"object","properties":{"id":{"type":"string","description":"Podcast ID (use for podcast_id when creating a podcast-episodes search)"},"name":{"type":"string","description":"Podcast name"},"description":{"type":["string","null"],"description":"Podcast description"},"image_url":{"type":["string","null"],"description":"Podcast cover image URL"},"author":{"type":["string","null"],"description":"Podcast author/publisher"},"episode_count":{"type":["number","null"],"description":"Total number of episodes"},"audience_size":{"type":["number","null"],"description":"Estimated audience size"}},"required":["id","name","description","image_url","author","episode_count","audience_size"]},"SearchPodcastsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/PodcastResult"}}},"required":["message","success","data"]},"SearchPodcastsRequest":{"type":"object","properties":{"query":{"type":"string","minLength":1,"maxLength":255,"description":"Podcast name to search for"},"limit":{"type":"number","minimum":1,"maximum":20,"default":5,"description":"Max results (default 5, max 20)"}},"required":["query"]},"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean","enum":[false],"description":"Always false for error responses"},"error":{"type":"object","properties":{"code":{"type":"string","description":"Machine-readable error code (e.g. VALIDATION_ERROR, INVALID_API_KEY, RATE_LIMITED)"},"message":{"type":"string","description":"Human-readable error message"},"details":{"type":"object","additionalProperties":{},"description":"Structured error details (e.g. field-level validation errors)"},"suggestion":{"type":"string","description":"Actionable suggestion for resolving the error"},"retryAfterSeconds":{"type":"number","description":"How long to wait before retrying, in seconds (rate-limited responses)"}},"required":["code","message"]},"message":{"type":"string","description":"Flat copy of error.message for backwards compatibility. Use error.message in new clients."}},"required":["success","error"]},"CreateTwitterPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"default":[],"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"search_type":{"type":"string","enum":["Top","Latest","Videos","Photos"],"description":"Twitter result type filter: Top, Latest, Videos, Photos"},"twitter_language":{"type":"string","description":"Twitter language filter (e.g. 'en')"},"exclude_retweets":{"type":"boolean","description":"Exclude retweets"},"exclude_replies":{"type":"boolean","description":"Exclude replies"},"verified_only":{"type":"boolean","description":"Only verified accounts"},"has_media":{"type":["string","null"],"enum":["any","images","video"],"description":"Filter by media type"},"has_links":{"type":"boolean","description":"Filter posts with links"},"from_users":{"type":"array","items":{"type":"string"},"description":"Filter by specific Twitter usernames"},"to_user":{"type":"string","description":"Filter replies to a specific user"},"url_contains":{"type":"string","description":"Filter posts containing specific URL text"},"place_country":{"type":"string","description":"Filter by country code (e.g. 'US')"},"retweets_of":{"type":"string","description":"Filter retweets of a specific user"},"conversation_id":{"type":"string","description":"Filter by conversation ID"},"list_id":{"type":"string","description":"Filter by Twitter list ID"},"context_annotation":{"type":"string","description":"Filter by context annotation"},"use_full_archive":{"type":"boolean","description":"Use full-archive search (requires elevated access)"},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name"]},"CreateLinkedInPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":6,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"job_titles":{"type":"array","items":{"type":"string"},"description":"Filter by job titles (linkedin-posts only, maximum 6)"},"content_type":{"type":"string","enum":["videos","photos","liveVideos","collaborativeArticles","documents"],"description":"LinkedIn content type filter: videos, photos, liveVideos, collaborativeArticles, documents"},"linkedin_sort_by":{"type":"string","enum":["date_posted","relevance"],"description":"LinkedIn sort order: date_posted, relevance"},"mentions_member":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Filter posts mentioning specific member URNs. Combined with mentions_organization, at most 10 entries."},"mentions_organization":{"type":"array","items":{"type":"integer"},"maxItems":10,"description":"Filter posts mentioning specific organization IDs. Combined with mentions_member, at most 10 entries."},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateRedditPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateSubredditPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"subreddit":{"type":"string","minLength":1,"description":"Subreddit name to monitor (e.g. 'machinelearning', 'programming'). Do not include the r/ prefix."},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Optional keywords to filter posts within the subreddit (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","subreddit"]},"CreateYouTubeVideosSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateSubstackPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"default":[],"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"publication":{"type":"string","minLength":1,"maxLength":255,"description":"Substack publication filter (name, subdomain, or URL). At least keywords or publication must be provided."},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name"]},"CreateSubstackNotesSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"author_handle":{"type":"string","minLength":1,"maxLength":255,"description":"Substack author handle (e.g. @username or username)"},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Keywords to search for in notes (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","author_handle"]},"CreatePodcastKeywordsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateHackerNewsStoriesSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":6,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateNewsApiAiPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"source_uris":{"type":"array","items":{"type":"string"},"description":"Restrict to publisher domains (e.g. ['bbc.com', 'reuters.com']). Empty / omitted = all publishers."},"exclude_source_uris":{"type":"array","items":{"type":"string"},"description":"Block articles from these publisher domains. Applied as defence-in-depth even if the provider mis-matches."},"source_location_uri":{"type":"string","description":"Restrict to publishers based in this country. Wikidata-style URI (e.g. 'http://en.wikipedia.org/wiki/United_Kingdom')."},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateDailyDevPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"description":"Keywords to search for (OR logic). Required for keyword-search and smart-recommendations modes"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"tags":{"type":"array","items":{"type":"string"},"description":"Daily.dev tags to follow"},"tags_block":{"type":"array","items":{"type":"string"},"description":"Daily.dev tags to block"},"sources_follow":{"type":"array","items":{"type":"string"},"description":"Daily.dev source handles to follow"},"sources_block":{"type":"array","items":{"type":"string"},"description":"Daily.dev source handles to block"},"search_mode":{"type":"string","enum":["keyword-search","smart-recommendations","tag-based-feed","source-based-feed","popular-by-tags","most-discussed"],"description":"Search mode (default: keyword-search)"},"source_id":{"type":"string","description":"Daily.dev source ID (required for source-based-feed mode)"},"order_by":{"type":"string","enum":["DATE","UPVOTES","DOWNVOTES","COMMENTS","CLICKS"],"description":"Sort order for results"},"min_upvotes":{"type":"integer","minimum":0,"description":"Minimum upvotes filter"},"min_views":{"type":"integer","minimum":0,"description":"Minimum views filter"},"disable_engagement_filter":{"type":"boolean","description":"Disable the default engagement quality filter"},"blocked_words":{"type":"array","items":{"type":"string"},"description":"Words to filter from results"},"blocked_content_types":{"type":"array","items":{"type":"string"},"description":"Content types to block (e.g. video)"},"discussed_period":{"type":"integer","minimum":1,"description":"Discussion period in days (most-discussed mode only)"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name"]},"CreateTikTokVideosSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Keywords to monitor. TikTok's search API has no boolean operators — each keyword runs as an independent search and results are merged (unioned by video id). The `keywords_not` list then prunes."},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Legacy field. Entries here are merged into `keywords` and behave identically (no AND logic — TikTok's API does not support it)."},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Exclude videos whose caption or hashtags contain any of these terms."},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","all-time"],"description":"Lookback window. `past-year` is not supported for TikTok (the upstream search caps at 180 days)."},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"country":{"type":"string","minLength":2,"maxLength":2,"description":"Two-letter country code (ISO 3166-1 alpha-2)"},"match_exactly":{"type":"boolean","description":"When true, each keyword's search requires an exact-substring match of the keyword in the video caption. Otherwise TikTok's default fuzzy ranking applies."},"sorting":{"type":"string","enum":["0","1","2"],"description":"Sort order: 0 = relevance (default), 1 = most liked, 2 = most recent"},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateGitHubIssuesSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"default":[],"description":"Keywords to search for (OR logic). Omit to monitor repos without keyword filtering."},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"github_repos":{"type":"array","items":{"type":"string","pattern":"^[^/]+\\/[^/]+$"},"description":"Repositories to search in 'owner/repo' format. Omit to search all of public GitHub."},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name"]},"CreateGitHubDiscussionsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"maxItems":10,"default":[],"description":"Keywords to search for (OR logic). Omit to monitor repos without keyword filtering."},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"github_repos":{"type":"array","items":{"type":"string","pattern":"^[^/]+\\/[^/]+$"},"description":"Repositories to search in 'owner/repo' format. Omit to search all of public GitHub."},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name"]},"CreateBlueskyPostsSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"keywords":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":10,"description":"Keywords to search for (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Keywords that must all be present (AND logic)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Keywords to exclude"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","keywords"]},"CreateTwitterProfileSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"profile_url":{"type":"string","format":"uri","description":"Twitter/X profile URL (e.g. https://x.com/username)"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","profile_url"]},"CreateLinkedInProfileSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"profile_url":{"type":"string","format":"uri","description":"LinkedIn profile or company URL (e.g. https://linkedin.com/in/username or https://linkedin.com/company/name)"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","profile_url"]},"CreateYouTubeChannelSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"profile_url":{"type":"string","format":"uri","description":"YouTube channel URL"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","profile_url"]},"CreateSubstackProfileSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"profile_url":{"type":"string","format":"uri","description":"Substack publication URL"},"publication":{"type":"string","minLength":1,"maxLength":255,"description":"Substack publication name, subdomain, or URL. At least profile_url or publication required."},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name"]},"CreateTikTokProfileSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"profile_url":{"type":"string","description":"TikTok profile URL (e.g. https://www.tiktok.com/@handle) or @handle"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","profile_url"]},"CreateBlueskyProfileSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"profile_url":{"type":"string","format":"uri","description":"Bluesky profile URL (e.g. https://bsky.app/profile/username.bsky.social)"},"keywords":{"type":"array","items":{"type":"string"},"description":"Optional keywords to filter profile posts (OR logic)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"Optional AND keywords"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"Optional NOT keywords"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time period to search: past-24h, past-week, past-month, past-6-months, past-year, all-time"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","profile_url"]},"CreatePodcastEpisodesSearchRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Name for the search (1-255 characters)"},"podcast_id":{"type":"string","minLength":1,"description":"Podscan podcast ID (use /podcasts/search to find this)"},"podcast_name":{"type":"string","minLength":1,"description":"Podcast name"},"podcast_image_url":{"type":"string","description":"Podcast image URL"},"podcast_description":{"type":"string","description":"Podcast description"},"max_results":{"type":"number","minimum":10,"maximum":100},"frequency":{"type":"string","enum":["hourly","every-12h","daily","weekly","monthly","quarterly"]},"webhook_url":{"type":"string","format":"uri","description":"Webhook URL to receive new results as they are found. Each result is delivered with the same schema returned by GET /v1/searches/:id/results. Supported for every search source (keyword, profile, and podcast monitors)."}},"required":["name","podcast_id","podcast_name"]},"PreviewSearchResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SearchResult"},"description":"Sample posts matching the supplied filters"},"meta":{"type":"object","properties":{"count":{"type":"number","description":"Number of preview items returned"},"total_available":{"type":["number","null"],"description":"Approximate total matches reported by the provider (null when unknown)"},"monitoring_type":{"type":"string","description":"Monitoring type the preview was run against (e.g. 'twitter-posts')"}},"required":["count","total_available","monitoring_type"]}},"required":["message","success","data","meta"]},"SocialSignalApiEventType":{"type":"string","enum":["changed_role","changed_company","became_hiring","liked_competitor_content","liked_tracked_company_content","liked_tracked_person_content","commented_on_tracked_content","posted_about_tracked_topic","engaged_with_tracked_topic","competitor_engagement","buying_window","influence","company_started_hiring","company_jobs_count_increased","company_posted_relevant_initiative","expansion"]},"SocialSignalsApiSubscriptionConfig":{"type":"object","properties":{"version":{"type":"number","enum":[1],"default":1},"lookbackWindowMs":{"type":"integer","exclusiveMinimum":0,"maximum":2592000000},"cadence":{"type":"string","enum":["hourly","daily","weekly"]},"signals":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["changed_role"]},"config":{"type":"object","properties":{}}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["changed_company"]},"config":{"type":"object","properties":{}}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["became_hiring"]},"config":{"type":"object","properties":{"jobKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"locations":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["jobKeywords","locations"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["liked_competitor_content"]},"config":{"type":"object","properties":{"competitorCompanyUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["competitorCompanyUrls"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["liked_tracked_company_content"]},"config":{"type":"object","properties":{"trackedCompanyUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["trackedCompanyUrls"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["liked_tracked_person_content"]},"config":{"type":"object","properties":{"trackedPersonUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["trackedPersonUrls"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["commented_on_tracked_content"]},"config":{"type":"object","properties":{"trackedPostUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["trackedPostUrls"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["posted_about_tracked_topic"]},"config":{"type":"object","properties":{"topicKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["topicKeywords"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["engaged_with_tracked_topic"]},"config":{"type":"object","properties":{"topicKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["topicKeywords"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["competitor_engagement"]},"config":{"type":"object","properties":{"competitorCompanyUrls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["competitorCompanyUrls"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["buying_window"]},"config":{"type":"object","properties":{"topicKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"jobKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["topicKeywords","jobKeywords"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["influence"]},"config":{"type":"object","properties":{"topicKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["topicKeywords"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["company_started_hiring"]},"config":{"type":"object","properties":{"jobKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"locations":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["jobKeywords","locations"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["company_jobs_count_increased"]},"config":{"type":"object","properties":{"jobKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1},"locations":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["jobKeywords","locations"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["company_posted_relevant_initiative"]},"config":{"type":"object","properties":{"initiativeKeywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["initiativeKeywords"]}},"required":["type","config"]},{"type":"object","properties":{"type":{"type":"string","enum":["expansion"]},"config":{"type":"object","properties":{"locations":{"type":"array","items":{"type":"string","minLength":1},"minItems":1}},"required":["locations"]}},"required":["type","config"]}]},"minItems":1}},"required":["signals"]},"SocialSignalApiSubscriptionStatus":{"type":"string","enum":["ACTIVE","PAUSED","STOPPED"]},"SocialSignalApiMutableSubscriptionStatus":{"type":"string","enum":["ACTIVE","PAUSED"]},"SocialSignalsCreditBillingModel":{"type":"string","enum":["per_successful_check"]},"SocialSignalMetadataResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"signal_definitions":{"type":"array","items":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"label":{"type":"string"},"category":{"type":"string"},"required_fields":{"type":"array","items":{"type":"string"}}},"required":["type","label","category","required_fields"]}},"default_config":{"$ref":"#/components/schemas/SocialSignalsApiSubscriptionConfig"},"subscription_statuses":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalApiSubscriptionStatus"}},"mutable_subscription_statuses":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalApiMutableSubscriptionStatus"}},"billing_model":{"$ref":"#/components/schemas/SocialSignalsCreditBillingModel"},"billing_notice":{"type":"string"}},"required":["signal_definitions","default_config","subscription_statuses","mutable_subscription_statuses","billing_model","billing_notice"]}},"required":["message","success","data"]},"SocialSignalLimits":{"type":"object","properties":{"tier":{"type":["string","null"]},"max_profiles":{"type":["integer","null"]},"max_signals":{"type":["integer","null"]},"current_profile_count":{"type":"integer"},"remaining_profile_count":{"type":["integer","null"]},"can_use_hourly_cadence":{"type":"boolean"}},"required":["tier","max_profiles","max_signals","current_profile_count","remaining_profile_count","can_use_hourly_cadence"]},"GetSocialSignalLimitsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalLimits"}},"required":["message","success","data"]},"SocialSignalStatus":{"type":"object","properties":{"active_subscription_count":{"type":"integer"},"paused_subscription_count":{"type":"integer"},"total_count":{"type":"integer"},"enriched_count":{"type":"integer"},"has_active_subscriptions":{"type":"boolean"},"last_run_at":{"type":["string","null"],"format":"date-time"},"next_run_at":{"type":["string","null"],"format":"date-time"}},"required":["active_subscription_count","paused_subscription_count","total_count","enriched_count","has_active_subscriptions","last_run_at","next_run_at"]},"GetSocialSignalStatusResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalStatus"}},"required":["message","success","data"]},"SocialSignalApiTargetType":{"type":"string","enum":["LINKEDIN_PROFILE","LINKEDIN_COMPANY"]},"SocialSignalApiSubscription":{"type":"object","properties":{"id":{"type":"string","description":"Social Signals subscription ID"},"target_id":{"type":"string","description":"Canonical target ID"},"canonical_url":{"type":"string","format":"uri","description":"Canonical LinkedIn URL for the monitored target"},"linkedin_slug":{"type":"string","description":"Canonical LinkedIn profile or company slug"},"target_type":{"$ref":"#/components/schemas/SocialSignalApiTargetType"},"status":{"$ref":"#/components/schemas/SocialSignalApiSubscriptionStatus"},"config":{"description":"Persisted Social Signals subscription configuration"},"created":{"type":"string","format":"date-time","description":"Subscription creation timestamp"},"updated":{"type":"string","format":"date-time","description":"Subscription last update timestamp"},"paused_at":{"type":["string","null"],"format":"date-time","description":"Timestamp when the subscription was paused"},"stopped_at":{"type":["string","null"],"format":"date-time","description":"Timestamp when the subscription was stopped"},"last_checked_at":{"type":["string","null"],"format":"date-time","description":"Most recent target check timestamp"},"next_check_at":{"type":["string","null"],"format":"date-time","description":"Next scheduled target check timestamp"}},"required":["id","target_id","canonical_url","linkedin_slug","target_type","status","created","updated","paused_at","stopped_at","last_checked_at","next_check_at"]},"CreateSocialSignalSubscriptionsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalApiSubscription"}}},"required":["message","success","data"]},"CreateSocialSignalSubscriptionItem":{"type":"object","properties":{"linkedin_url":{"type":"string","minLength":1,"description":"LinkedIn profile or company URL to monitor","example":"https://www.linkedin.com/in/jane-doe"},"config":{"$ref":"#/components/schemas/SocialSignalsApiSubscriptionConfig"}},"required":["linkedin_url"]},"CreateSocialSignalSubscriptionsRequest":{"type":"object","properties":{"subscriptions":{"type":"array","items":{"$ref":"#/components/schemas/CreateSocialSignalSubscriptionItem"},"minItems":1,"maxItems":100}},"required":["subscriptions"]},"ListSocialSignalSubscriptionsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalApiSubscription"}}},"required":["message","success","data"]},"BulkStopSocialSignalSubscriptionsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalApiSubscription"}}},"required":["message","success","data"]},"BulkStopSocialSignalSubscriptionsRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":100,"description":"Social Signals subscription IDs to stop."}},"required":["ids"]},"GetSocialSignalSubscriptionResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalApiSubscription"}},"required":["message","success","data"]},"UpdateSocialSignalSubscriptionResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalApiSubscription"}},"required":["message","success","data"]},"UpdateSocialSignalSubscriptionRequest":{"type":"object","properties":{"config":{"$ref":"#/components/schemas/SocialSignalsApiSubscriptionConfig"},"status":{"$ref":"#/components/schemas/SocialSignalApiMutableSubscriptionStatus"}}},"StopSocialSignalSubscriptionResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalApiSubscription"}},"required":["message","success","data"]},"SocialSignalsCreditEstimateBreakdown":{"type":"object","properties":{"signalType":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"label":{"type":"string"},"targetCount":{"type":"number"},"inputUnits":{"type":"number"},"baseCheckCreditsPerTarget":{"type":"number"},"variableMinCreditsPerTarget":{"type":"number"},"variableMaxCreditsPerTarget":{"type":"number"},"minCreditsPerTarget":{"type":"number"},"maxCreditsPerTarget":{"type":"number"},"dailyMinCredits":{"type":"number"},"dailyMaxCredits":{"type":"number"},"variableCostKind":{"type":"string","enum":["none","enrichment","ai","enrichment_and_ai"]}},"required":["signalType","label","targetCount","inputUnits","baseCheckCreditsPerTarget","variableMinCreditsPerTarget","variableMaxCreditsPerTarget","minCreditsPerTarget","maxCreditsPerTarget","dailyMinCredits","dailyMaxCredits","variableCostKind"]},"SocialSignalsCreditEstimate":{"type":"object","properties":{"targetCount":{"type":"number"},"signalCount":{"type":"number"},"dailyMinCredits":{"type":"number"},"dailyMaxCredits":{"type":"number"},"perTargetMinCredits":{"type":"number"},"perTargetMaxCredits":{"type":"number"},"breakdown":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalsCreditEstimateBreakdown"}},"billingModel":{"allOf":[{"$ref":"#/components/schemas/SocialSignalsCreditBillingModel"},{"description":"How Social Signals credits are charged. Constant value highlights that billing is per successful check."}]},"billingNotice":{"type":"string","description":"Human-readable explanation that credits are charged per successful check, not only when a signal fires."}},"required":["targetCount","signalCount","dailyMinCredits","dailyMaxCredits","perTargetMinCredits","perTargetMaxCredits","breakdown","billingModel","billingNotice"]},"EstimateSocialSignalsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalsCreditEstimate"}},"required":["message","success","data"]},"EstimateSocialSignalsRequest":{"type":"object","properties":{"target_count":{"type":"integer","minimum":1,"maximum":1000,"description":"Number of monitored Social Signals targets to estimate. Ignored when target_urls is provided. Defaults to 1."},"target_urls":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"maxItems":1000,"description":"LinkedIn profile or company URLs to estimate. When provided, duplicates are removed and the deduplicated count drives the estimate."},"config":{"$ref":"#/components/schemas/SocialSignalsApiSubscriptionConfig"}},"required":["config"]},"SocialSignalApiSeverity":{"type":"string","enum":["LOW","MEDIUM","HIGH"]},"SocialSignalResult":{"type":"object","properties":{"id":{"type":"string","description":"Social Signals result ID"},"created":{"type":"string","format":"date-time","description":"Result creation timestamp"},"updated":{"type":"string","format":"date-time","description":"Result last update timestamp"},"subscription_id":{"type":"string","description":"Social Signals subscription ID"},"target_id":{"type":"string","description":"Social Signals target ID"},"check_run_id":{"type":"string","description":"Social Signals check run ID"},"signal_type":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"event_key":{"type":"string","description":"Stable idempotency key for the result"},"billing_window":{"type":"string","format":"date-time","description":"Billing window for this result"},"signal_date":{"type":"string","format":"date-time","description":"Timestamp when the signal occurred"},"reason":{"type":"string","description":"Human-readable reason the signal fired"},"score":{"type":"integer","description":"Signal score"},"severity":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"evidence":{"description":"Evidence that produced this signal"},"scoring_inputs":{"description":"Inputs used to score this signal"},"target_type":{"$ref":"#/components/schemas/SocialSignalApiTargetType"},"target_canonical_url":{"type":"string","format":"uri","description":"Canonical LinkedIn target URL"},"target_display_name":{"type":["string","null"],"description":"Target display name when available"},"target_linkedin_slug":{"type":"string","description":"Canonical LinkedIn profile or company slug"},"check_type":{"type":"string","description":"Social Signals check type that produced this result"},"endpoint":{"type":"string","description":"Provider endpoint used for the check"},"execution_key":{"type":"string","description":"Execution key for the check run"},"raw_payload_ref":{"type":["string","null"],"description":"Reference to raw provider payload when stored"}},"required":["id","created","updated","subscription_id","target_id","check_run_id","signal_type","event_key","billing_window","signal_date","reason","score","severity","target_type","target_canonical_url","target_display_name","target_linkedin_slug","check_type","endpoint","execution_key","raw_payload_ref"]},"SocialSignalApiInsightType":{"type":"string","enum":["TOPIC_MOMENTUM","ENGAGEMENT_HABIT","COMPETITOR_AFFINITY","BUYING_RESEARCH","INFLUENCE_SURGE","SIGNAL_CLUSTER","SEMANTIC_TOPIC_CLUSTER","CROSS_TARGET_MOMENTUM","MARKET_CONTEXT_ALIGNMENT","ENGAGED_AUTHOR_CLUSTER","UNCONFIGURED_BUYING_THEME","PERSONA_SHIFT"]},"SocialSignalApiInsightEvidenceScope":{"type":"string","enum":["ORG_SPECIFIC","TARGET_GLOBAL","NETWORK_BASELINE"]},"SocialSignalInsightEvidenceRef":{"type":"object","properties":{"ref":{"type":"string"},"kind":{"type":"string"},"label":{"type":"string"},"url":{"type":["string","null"]},"date":{"type":["string","null"]},"targetId":{"type":["string","null"]},"source":{"type":["string","null"]},"searchId":{"type":["string","null"]},"similarityScore":{"type":["number","null"]},"supportingContext":{"type":["string","null"]}},"required":["ref","kind","label"],"additionalProperties":{}},"SocialSignalInsight":{"type":"object","properties":{"id":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"activity_date":{"type":"string","format":"date-time"},"organisation_id":{"type":["string","null"]},"user_id":{"type":["string","null"]},"target_id":{"type":"string"},"insight_type":{"$ref":"#/components/schemas/SocialSignalApiInsightType"},"evidence_scope":{"$ref":"#/components/schemas/SocialSignalApiInsightEvidenceScope"},"scope_key":{"type":"string"},"window_start":{"type":"string","format":"date-time"},"window_end":{"type":"string","format":"date-time"},"title":{"type":"string"},"summary":{"type":"string"},"confidence_score":{"type":"integer"},"severity":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"evidence":{},"evidence_refs":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalInsightEvidenceRef"}},"reasoning":{"type":["string","null"]},"dedupe_key":{"type":"string"},"prompt_version":{"type":"string"},"model_id":{"type":["string","null"]},"fallback_used":{"type":"boolean"},"token_usage":{},"raw_output":{},"generated_at":{"type":"string","format":"date-time"}},"required":["id","created","updated","activity_date","organisation_id","user_id","target_id","insight_type","evidence_scope","scope_key","window_start","window_end","title","summary","confidence_score","severity","evidence_refs","reasoning","dedupe_key","prompt_version","model_id","fallback_used","generated_at"]},"SocialSignalProfileSummary":{"type":["object","null"],"properties":{"full_name":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"headline":{"type":["string","null"]},"location":{"type":["string","null"]},"is_hiring":{"type":["boolean","null"]},"current_position":{"type":["object","null"],"properties":{"title":{"type":["string","null"]},"company_name":{"type":["string","null"]},"company_url":{"type":["string","null"]},"location":{"type":["string","null"]}},"required":["title","company_name","company_url","location"]}},"required":["full_name","avatar_url","headline","location","is_hiring","current_position"]},"SocialSignalFeedItem":{"type":"object","properties":{"item_type":{"type":"string","enum":["SIGNAL","INSIGHT"]},"id":{"type":"string"},"activity_date":{"type":"string","format":"date-time"},"signal":{"$ref":"#/components/schemas/SocialSignalResult"},"insight":{"$ref":"#/components/schemas/SocialSignalInsight"},"target_type":{"$ref":"#/components/schemas/SocialSignalApiTargetType"},"target_canonical_url":{"type":"string","format":"uri"},"target_display_name":{"type":["string","null"]},"target_linkedin_slug":{"type":"string"},"target_profile":{"$ref":"#/components/schemas/SocialSignalProfileSummary"}},"required":["item_type","id","activity_date"]},"ListSocialSignalFeedResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalFeedItem"}},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_count":{"type":"integer"},"has_next_page":{"type":"boolean"}},"required":["items","page","page_size","total_count","has_next_page"]}},"required":["message","success","data"]},"SocialSignalApiFeedContentType":{"type":"string","enum":["all","signals","insights"],"default":"all"},"SocialSignalTargetLatestSignal":{"type":["object","null"],"properties":{"id":{"type":"string"},"signal_type":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"severity":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"score":{"type":"integer"},"reason":{"type":"string"},"signal_date":{"type":"string","format":"date-time"}},"required":["id","signal_type","severity","score","reason","signal_date"]},"SocialSignalTargetRow":{"type":"object","properties":{"subscription_id":{"type":"string"},"subscription_status":{"$ref":"#/components/schemas/SocialSignalApiSubscriptionStatus"},"subscription_created":{"type":"string","format":"date-time"},"target_id":{"type":"string"},"target_type":{"$ref":"#/components/schemas/SocialSignalApiTargetType"},"canonical_url":{"type":"string","format":"uri"},"linkedin_slug":{"type":"string"},"display_name":{"type":["string","null"]},"metadata":{},"is_enriched":{"type":"boolean"},"profile":{"$ref":"#/components/schemas/SocialSignalProfileSummary"},"latest_signal":{"$ref":"#/components/schemas/SocialSignalTargetLatestSignal"}},"required":["subscription_id","subscription_status","subscription_created","target_id","target_type","canonical_url","linkedin_slug","display_name","is_enriched","profile","latest_signal"]},"ListSocialSignalTargetsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalTargetRow"}},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_count":{"type":"integer"},"has_next_page":{"type":"boolean"},"enriched_count":{"type":"integer"}},"required":["items","page","page_size","total_count","has_next_page","enriched_count"]}},"required":["message","success","data"]},"SocialSignalEnrichedProfile":{"type":["object","null"],"properties":{"prospect_id":{"type":"string"},"full_name":{"type":["string","null"]},"avatar_url":{"type":["string","null"]},"headline":{"type":["string","null"]},"location":{"type":["string","null"]},"linkedin_url":{"type":["string","null"]},"current_position":{"type":"object","properties":{"title":{"type":["string","null"]},"company_name":{"type":["string","null"]},"company_url":{"type":["string","null"]},"location":{"type":["string","null"]}},"required":["title","company_name","company_url","location"]},"experience":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"company":{"type":["string","null"]},"company_logo":{"type":["string","null"]},"company_url":{"type":["string","null"]},"location":{"type":["string","null"]},"started_at":{"type":["string","null"],"format":"date-time"},"ended_at":{"type":["string","null"],"format":"date-time"},"is_current":{"type":"boolean"}},"required":["id","title","company","company_logo","company_url","location","started_at","ended_at","is_current"]}}},"required":["prospect_id","full_name","avatar_url","headline","location","linkedin_url","current_position","experience"]},"SocialSignalApiExecutableCheckType":{"type":"string","enum":["profile_details","profile_posts","profile_likes","profile_comments","company_details","company_posts","company_jobs","company_hiring_team","company_employee_count","post_reactions","post_comments","post_reposts","search_posts"]},"SocialSignalTargetTimelineItem":{"type":"object","properties":{"id":{"type":"string"},"signal_type":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"severity":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"score":{"type":"integer"},"reason":{"type":"string"},"signal_date":{"type":"string","format":"date-time"},"check_type":{"$ref":"#/components/schemas/SocialSignalApiExecutableCheckType"}},"required":["id","signal_type","severity","score","reason","signal_date","check_type"]},"SocialSignalTargetProfileResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"subscription":{"type":"object","properties":{"id":{"type":"string"},"status":{"$ref":"#/components/schemas/SocialSignalApiSubscriptionStatus"},"created_at":{"type":"string","format":"date-time"}},"required":["id","status","created_at"]},"target":{"type":"object","properties":{"id":{"type":"string"},"target_type":{"$ref":"#/components/schemas/SocialSignalApiTargetType"},"canonical_url":{"type":"string","format":"uri"},"linkedin_slug":{"type":"string"},"display_name":{"type":["string","null"]},"prospect_id":{"type":["string","null"]},"last_checked_at":{"type":["string","null"],"format":"date-time"},"next_check_at":{"type":["string","null"],"format":"date-time"},"is_enriched":{"type":"boolean"}},"required":["id","target_type","canonical_url","linkedin_slug","display_name","prospect_id","last_checked_at","next_check_at","is_enriched"]},"profile":{"$ref":"#/components/schemas/SocialSignalProfileSummary"},"enriched_profile":{"$ref":"#/components/schemas/SocialSignalEnrichedProfile"},"profile_finished_at":{"type":["string","null"],"format":"date-time"},"recent_signals":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalTargetTimelineItem"}},"total_signal_count":{"type":"integer"}},"required":["subscription","target","profile","enriched_profile","profile_finished_at","recent_signals","total_signal_count"]}},"required":["message","success","data"]},"ListSocialSignalTargetInsightsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalInsight"}}},"required":["message","success","data"]},"SocialSignalCheckRun":{"type":"object","properties":{"id":{"type":"string"},"created":{"type":"string","format":"date-time"},"updated":{"type":"string","format":"date-time"},"target_id":{"type":"string"},"check_type":{"$ref":"#/components/schemas/SocialSignalApiExecutableCheckType"},"status":{"type":"string","enum":["RUNNING","SUCCEEDED","FAILED_RETRYABLE","FAILED_NON_RETRYABLE","SKIPPED"]},"endpoint":{"type":"string"},"execution_key":{"type":"string"},"billing_window":{"type":"string","format":"date-time"},"idempotency_key":{"type":"string"},"started_at":{"type":"string","format":"date-time"},"finished_at":{"type":["string","null"],"format":"date-time"},"duration_ms":{"type":["integer","null"]},"attempt_count":{"type":"integer"},"raw_payload_ref":{"type":["string","null"]},"evidence":{},"failure_type":{"type":["string","null"],"enum":["RETRYABLE_PROVIDER","NON_RETRYABLE_PROVIDER","TARGET_NOT_FOUND","UNSUPPORTED_CHECK"]},"error_message":{"type":["string","null"]},"retry_after_ms":{"type":["integer","null"]}},"required":["id","created","updated","target_id","check_type","status","endpoint","execution_key","billing_window","idempotency_key","started_at","finished_at","duration_ms","attempt_count","raw_payload_ref","failure_type","error_message","retry_after_ms"]},"ListSocialSignalCheckRunsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalCheckRun"}}},"required":["message","success","data"]},"ListSocialSignalResultsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/SocialSignalResult"}},"page":{"type":"integer"},"page_size":{"type":"integer"},"total_count":{"type":"integer"},"has_next_page":{"type":"boolean"}},"required":["items","page","page_size","total_count","has_next_page"]}},"required":["message","success","data"]},"GetSocialSignalResultResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/SocialSignalResult"}},"required":["message","success","data"]},"TopicSearch":{"type":["object","null"],"properties":{"id":{"type":"string","description":"Topic search ID"},"name":{"type":"string","description":"Topic search name"},"status":{"type":"string","enum":["ACTIVE","PAUSED","STOPPED","EXPIRED"],"description":"Topic search status"},"keywords":{"type":"array","items":{"type":"string"},"description":"Primary keywords"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"AND keywords (all must match)"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"NOT keywords (excluded)"},"job_titles":{"type":"array","items":{"type":"string"},"description":"Job title filters"},"time_frame":{"type":["string","null"],"enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time frame filter"},"max_results":{"type":["number","null"],"description":"Maximum results per run"},"content_type":{"type":["string","null"],"enum":["posts","videos","photos","liveVideos","collaborativeArticles","documents"],"description":"Content type filter"},"sort_by":{"type":["string","null"],"enum":["date_posted","relevance"],"description":"Sort order"},"expires_at":{"type":"string","description":"Expiration date (ISO 8601)"},"last_run":{"type":["string","null"],"description":"Last discovery run (ISO 8601)"},"new_items":{"type":"boolean","description":"Whether new items were found in last run"},"number_of_new_items":{"type":"number","description":"Number of new items in last run"},"created":{"type":"string","description":"Created at (ISO 8601)"},"updated":{"type":"string","description":"Updated at (ISO 8601)"}},"required":["id","name","status","keywords","keywords_and","keywords_not","job_titles","time_frame","max_results","content_type","sort_by","expires_at","last_run","new_items","number_of_new_items","created","updated"]},"CreateTopicResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/TopicSearch"},"credits_charged":{"type":"number","description":"Credits charged for this operation"}},"required":["message","success","data","credits_charged"]},"CreateTopicRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Topic search name"},"keywords":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Primary keywords (at least 1)"},"keywords_and":{"type":"array","items":{"type":"string"},"description":"AND keywords"},"keywords_not":{"type":"array","items":{"type":"string"},"description":"NOT keywords"},"job_titles":{"type":"array","items":{"type":"string"},"description":"Job title filters"},"time_frame":{"type":"string","enum":["past-24h","past-week","past-month","past-6-months","past-year","all-time"],"description":"Time frame filter"},"max_results":{"type":"integer","minimum":1,"maximum":500,"description":"Max results per run"},"content_type":{"type":"string","enum":["posts","videos","photos","liveVideos","collaborativeArticles","documents"],"description":"Content type filter"},"sort_by":{"type":"string","enum":["date_posted","relevance"],"description":"Sort order (default: date_posted)"}},"required":["name","keywords"]},"TopicPagination":{"type":"object","properties":{"page":{"type":"number","description":"Current page"},"page_size":{"type":"number","description":"Items per page"},"total_count":{"type":"number","description":"Total number of items"},"total_pages":{"type":"number","description":"Total number of pages"}},"required":["page","page_size","total_count","total_pages"]},"ListTopicsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/TopicSearch"},{"type":"object"}]}},"pagination":{"$ref":"#/components/schemas/TopicPagination"}},"required":["message","success","data","pagination"]},"GetTopicResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/TopicSearch"}},"required":["message","success","data"]},"TopicCreditIntervalBreakdown":{"type":"object","properties":{"interval":{"type":["integer","null"],"description":"Social topics scrape interval for the billed engagement (0, 1, 3, 5, or null when unavailable)"},"credits":{"type":"number","description":"Credits allocated to this interval bucket"},"billed_engagements_count":{"type":"integer","description":"Number of billed engagements linked to this topic for the interval bucket"}},"required":["interval","credits","billed_engagements_count"]},"TopicCreditSummary":{"type":"object","properties":{"total_credits":{"type":"number","description":"Total allocated credits for the topic in the summary period"},"new_post_credits":{"type":"number","description":"Allocated credits from newly discovered posts"},"engagement_credits":{"type":"number","description":"Allocated credits from billed engagements"},"billed_posts_count":{"type":"integer","description":"Unique billed posts linked to the topic"},"billed_engagements_count":{"type":"integer","description":"Unique billed engagements linked to the topic"},"last_charged_at":{"type":["string","null"],"description":"Most recent billed receipt timestamp (ISO 8601)"},"engagement_credits_by_interval":{"type":"array","items":{"$ref":"#/components/schemas/TopicCreditIntervalBreakdown"},"description":"Allocated engagement credits broken down by social topic backfill interval"}},"required":["total_credits","new_post_credits","engagement_credits","billed_posts_count","billed_engagements_count","last_charged_at","engagement_credits_by_interval"]},"GetTopicCreditSummaryResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"period":{"type":"object","properties":{"from":{"type":"string","description":"Summary period start (ISO 8601)"},"to":{"type":"string","description":"Summary period end (ISO 8601)"},"source":{"type":"string","enum":["billing_period","month_fallback"],"description":"How the summary period was determined"}},"required":["from","to","source"]},"allocation_method":{"type":"string","enum":["split_evenly"],"description":"How shared billed receipts are allocated across matching topic searches"},"data":{"$ref":"#/components/schemas/TopicCreditSummary"}},"required":["message","success","period","allocation_method","data"]},"UpdateTopicResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/TopicSearch"}},"required":["message","success","data"]},"UpdateTopicRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"New name"},"status":{"type":"string","enum":["ACTIVE","PAUSED","STOPPED"],"description":"New status (ACTIVE to resume, PAUSED to pause, STOPPED to stop permanently)"}}},"DeleteTopicResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"id":{"type":"string","description":"Deleted topic search ID"},"deleted":{"type":"boolean","enum":[true],"description":"Deletion confirmed"}},"required":["id","deleted"]}},"required":["message","success","data"]},"TopicEngager":{"type":"object","properties":{"id":{"type":"string","description":"Engager record ID"},"prospect_id":{"type":"string","description":"Prospect ID"},"linkedin_post_id":{"type":"string","description":"LinkedIn post ID"},"discovery_interval":{"type":"number","description":"Day interval when discovered (0, 1, 3, or 5)"},"created":{"type":"string","description":"Discovery timestamp (ISO 8601)"},"prospect":{"type":"object","properties":{"full_name":{"type":["string","null"],"description":"Prospect full name"},"linkedin_url":{"type":["string","null"],"description":"LinkedIn profile URL"},"job_title":{"type":["string","null"],"description":"Job title"},"company":{"type":["string","null"],"description":"Company name"}},"required":["full_name","linkedin_url","job_title","company"],"description":"Prospect details"},"engagement":{"type":"object","properties":{"type":{"type":["string","null"],"description":"Engagement type (like, comment, etc.)"},"text":{"type":["string","null"],"description":"Engagement text (comment content)"}},"required":["type","text"],"description":"Engagement details"}},"required":["id","prospect_id","linkedin_post_id","discovery_interval","created","prospect","engagement"]},"GetTopicEngagementsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopicEngager"}},"pagination":{"$ref":"#/components/schemas/TopicPagination"}},"required":["message","success","data","pagination"]},"GetTopicPostEngagementsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/TopicEngager"}},"pagination":{"$ref":"#/components/schemas/TopicPagination"}},"required":["message","success","data","pagination"]},"Usage":{"type":"object","properties":{"period":{"type":"object","properties":{"from":{"type":"string","description":"Period start (ISO 8601)"},"to":{"type":"string","description":"Period end (ISO 8601)"}},"required":["from","to"]},"credits":{"type":"object","properties":{"total_consumed":{"type":"number","description":"Total credits consumed in period"},"by_feature":{"type":"object","additionalProperties":{"type":"number"},"description":"Credits consumed by feature type"}},"required":["total_consumed","by_feature"]},"monitors":{"type":"object","properties":{"active":{"type":"number","description":"Currently active monitors"},"total":{"type":"number","description":"Total monitors (including paused)"}},"required":["active","total"]},"results":{"type":"object","properties":{"total_collected":{"type":"number","description":"Total results collected in period"}},"required":["total_collected"]}},"required":["period","credits","monitors","results"]},"GetUsageResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Usage"}},"required":["message","success","data"]},"XPostCommentItem":{"type":"object","properties":{"tweetId":{"type":"string","description":"Reply tweet ID"},"text":{"type":"string","description":"Reply text content"},"authorId":{"type":"string","description":"Author user ID"},"authorUsername":{"type":"string","description":"Author X handle"},"authorName":{"type":"string","description":"Author display name"},"authorProfileImageUrl":{"type":["string","null"],"description":"Author profile image URL"},"createdAt":{"type":["string","null"],"description":"Reply creation timestamp"},"likes":{"type":"number","description":"Number of likes"},"retweets":{"type":"number","description":"Number of retweets"},"replies":{"type":"number","description":"Number of replies"}},"required":["tweetId","text","authorId","authorUsername","authorName","authorProfileImageUrl","createdAt","likes","retweets","replies"]},"GetXPostCommentsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/XPostCommentItem"},"description":"List of replies to the post"},"total":{"type":"number","description":"Total number of comments fetched"}},"required":["items","total"]}},"required":["message","success","data"]},"XPostEngagementItem":{"type":"object","properties":{"userId":{"type":"string","description":"User ID who engaged with the post"},"username":{"type":"string","description":"X handle of the user who engaged"},"name":{"type":"string","description":"Display name of the user who engaged"},"profileImageUrl":{"type":["string","null"],"description":"Profile image URL of the user"},"verified":{"type":"boolean","description":"Whether the user is verified"},"description":{"type":["string","null"],"description":"Bio/description of the user"}},"required":["userId","username","name","profileImageUrl","verified","description"]},"GetXPostEngagementsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/XPostEngagementItem"},"description":"List of users who engaged with the post"},"total":{"type":"number","description":"Total number of engagements fetched"}},"required":["items","total"]}},"required":["message","success","data"]},"XUserProfile":{"type":"object","properties":{"id":{"type":"string","description":"X user ID"},"name":{"type":"string","description":"Display name"},"username":{"type":"string","description":"X handle"},"bio":{"type":["string","null"],"description":"User bio/description"},"verified":{"type":"boolean","description":"Whether the user is verified"},"profileImageUrl":{"type":["string","null"],"description":"Profile image URL"},"followerCount":{"type":"number","description":"Number of followers"},"followingCount":{"type":"number","description":"Number of accounts followed"},"tweetCount":{"type":"number","description":"Total number of tweets"},"location":{"type":["string","null"],"description":"User location"},"url":{"type":["string","null"],"description":"User website URL"}},"required":["id","name","username","bio","verified","profileImageUrl","followerCount","followingCount","tweetCount","location","url"]},"EnrichXUserResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/XUserProfile"}},"required":["message","success","data"]},"OrgListItem":{"type":"object","properties":{"id":{"type":"string","description":"Organisation ID"},"name":{"type":"string","description":"Organisation name"},"slug":{"type":"string","description":"Organisation slug"},"role":{"type":"string","enum":["owner","member"],"description":"User's role in this org"}},"required":["id","name","slug","role"]},"ListOrgsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/OrgListItem"}},"active_org_id":{"type":"string","description":"Currently active organisation ID"}},"required":["items","active_org_id"]}},"required":["message","success","data"]},"Organisation":{"type":"object","properties":{"id":{"type":"string","description":"Organisation ID"},"user_id":{"type":"string","description":"Authenticated user ID"},"name":{"type":"string","description":"Organisation name"},"slug":{"type":"string","description":"Organisation slug"},"website":{"type":["string","null"],"description":"Organisation website"},"subscription":{"type":["object","null"],"properties":{"plan":{"type":["string","null"],"description":"Subscription plan name"},"status":{"type":["string","null"],"description":"Subscription status"},"current_period_end":{"type":["string","null"],"description":"Current period end (ISO 8601)"}},"required":["plan","status","current_period_end"],"description":"Subscription details"},"member_count":{"type":"number","description":"Number of organisation members"},"created":{"type":"string","description":"Creation timestamp (ISO 8601)"}},"required":["id","user_id","name","slug","website","subscription","member_count","created"]},"GetOrgResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Organisation"}},"required":["message","success","data"]},"RateLimit":{"type":"object","properties":{"tier":{"type":"string","enum":["LIGHT","ENTERPRISE"],"description":"Rate-limit tier applied to this API key"},"limit":{"type":"number","description":"Maximum number of requests allowed per window"},"window_seconds":{"type":"number","description":"Length of the rate-limit window in seconds"}},"required":["tier","limit","window_seconds"]},"Account":{"type":"object","properties":{"user_id":{"type":"string","description":"Authenticated user ID"},"organisation_id":{"type":["string","null"],"description":"Active organisation ID"},"test_mode":{"type":"boolean","description":"Whether the API key is in test mode"},"permissions":{"type":"array","items":{"type":"string"},"description":"Permissions granted to the API key"},"subscription":{"type":["object","null"],"properties":{"plan":{"type":["string","null"],"description":"Subscription plan name"},"status":{"type":["string","null"],"description":"Subscription status"},"current_period_end":{"type":["string","null"],"description":"Current period end (ISO 8601)"}},"required":["plan","status","current_period_end"],"description":"Subscription details"},"rate_limit":{"$ref":"#/components/schemas/RateLimit"}},"required":["user_id","organisation_id","test_mode","permissions","subscription","rate_limit"]},"GetAccountResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Account"}},"required":["message","success","data"]},"CreditBalance":{"type":"object","properties":{"balance":{"type":"string","description":"Credits used in the current billing period"},"used":{"type":"string","description":"Credits used in the current billing period (alias for balance)"},"limit":{"type":"string","description":"Plan credit allowance for the current billing period"},"remaining":{"type":"string","description":"Credits still available (limit - used, clamped to 0)"},"subscription_plan":{"type":["string","null"],"description":"Active subscription plan"},"next_reset":{"type":["string","null"],"description":"Next credit reset date (ISO 8601)"}},"required":["balance","used","limit","remaining","subscription_plan","next_reset"]},"GetCreditBalanceResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/CreditBalance"}},"required":["message","success","data"]},"CreditUsageRecord":{"type":"object","properties":{"id":{"type":"string","description":"Receipt ID"},"credits":{"type":"string","description":"Credits consumed"},"action":{"type":"string","description":"Action that consumed credits"},"feature":{"type":["string","null"],"description":"Feature category"},"created":{"type":"string","description":"Timestamp (ISO 8601)"},"workflow_id":{"type":["string","null"],"description":"Associated workflow ID"},"saved_search_id":{"type":["string","null"],"description":"Associated saved search ID"}},"required":["id","credits","action","feature","created","workflow_id","saved_search_id"]},"GetCreditUsageResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CreditUsageRecord"}},"pagination":{"allOf":[{"$ref":"#/components/schemas/Pagination"},{"properties":{"total":{"type":"number","description":"Total number of records matching the query"},"limit":{"type":"number","description":"Max records returned"},"offset":{"type":"number","description":"Number of records skipped"}},"required":["total","limit","offset"]}]}},"required":["message","success","data","pagination"]},"CreditBreakdown":{"type":"object","properties":{"feature":{"type":"string","description":"Feature name"},"total_credits":{"type":"string","description":"Total credits consumed by this feature"},"count":{"type":"number","description":"Number of operations"}},"required":["feature","total_credits","count"]},"GetCreditBreakdownResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/CreditBreakdown"}}},"required":["message","success","data"]},"WorkflowTable":{"type":"object","properties":{"id":{"type":"string","description":"Workflow table ID"},"name":{"type":"string","description":"Table name"},"description":{"type":"string","description":"Table description"},"created":{"type":"string","description":"Creation timestamp (ISO 8601)"}},"required":["id","name","description","created"]},"CreateWorkflowTableResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/WorkflowTable"}},"required":["message","success","data"]},"CreateWorkflowTableBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"description":"Table name"},"description":{"type":"string","default":"","description":"Table description"}},"required":["name"]},"ListWorkflowTablesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowTable"}}},"required":["message","success","data"]},"Workflow":{"type":"object","properties":{"id":{"type":"string","description":"Workflow ID"},"name":{"type":"string","description":"Workflow name"},"description":{"type":"string","description":"Workflow description"},"workflow":{"description":"Workflow definition (JSON)"},"enabled":{"type":"boolean","description":"Whether the workflow is enabled"},"status":{"type":"string","description":"Workflow status (DRAFT or PUBLISHED)"},"social_saved_search_id":{"type":["string","null"],"description":"Linked saved search ID"},"created":{"type":"string","description":"Creation timestamp (ISO 8601)"},"updated":{"type":"string","description":"Last update timestamp (ISO 8601)"}},"required":["id","name","description","enabled","status","social_saved_search_id","created","updated"]},"CreateWorkflowResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Workflow"}},"required":["message","success","data"]},"CreateWorkflowBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Workflow name"},"description":{"type":"string","default":"","description":"Workflow description"},"workflow":{"type":"object","additionalProperties":{},"description":"Workflow definition (JSON)"},"search_id":{"type":"string","description":"Linked saved search ID"},"enabled":{"type":"boolean","default":false,"description":"Enable workflow"},"status":{"type":"string","enum":["DRAFT","PUBLISHED"],"default":"DRAFT","description":"Initial status"}},"required":["name","workflow"]},"ListWorkflowsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workflow"}},"has_more":{"type":"boolean"},"total":{"type":"number"}},"required":["items","has_more","total"]}},"required":["message","success","data"]},"ActionInputField":{"type":"object","properties":{"name":{"type":"string","description":"Input field name"},"title":{"type":"string","description":"Human-readable title"},"required":{"type":"boolean","description":"Whether this field is required"},"type":{"type":"string","description":"Field type hint"}},"required":["name","title","required","type"]},"WorkflowAction":{"type":"object","properties":{"kind":{"type":"string","description":"Action kind identifier"},"name":{"type":"string","description":"Human-readable name"},"description":{"type":"string","description":"Short description"},"creditCost":{"type":"number","description":"Credits consumed per execution"},"category":{"type":"string","description":"Action category"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/ActionInputField"},"description":"Input fields"},"outputs":{"description":"Output schema"}},"required":["kind","name","inputs"]},"ListActionsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowAction"}},"total":{"type":"number"}},"required":["items","total"]}},"required":["message","success","data"]},"WorkflowExample":{"type":"object","properties":{"name":{"type":"string","description":"Example name"},"description":{"type":"string","description":"What this example demonstrates"},"category":{"type":"string","description":"Example category"},"workflow":{"type":"object","additionalProperties":{},"description":"Full workflow definition (JSON)"}},"required":["name","description","category","workflow"]},"ListExamplesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowExample"}},"total":{"type":"number"}},"required":["items","total"]}},"required":["message","success","data"]},"WorkflowTrigger":{"type":"object","properties":{"kind":{"type":"string","description":"Trigger kind identifier"},"name":{"type":"string","description":"Human-readable name"},"description":{"type":"string","description":"Short description"},"agentDescription":{"type":"string","description":"Detailed usage guidance for agents configuring this trigger"},"creditCost":{"type":"number","description":"Credits consumed per execution"},"icon":{"type":"string","description":"Icon identifier"},"inputs":{"type":"array","items":{"$ref":"#/components/schemas/ActionInputField"},"description":"Configurable input fields"},"outputs":{"description":"Output schema available to downstream actions"}},"required":["kind","name","inputs"]},"ListTriggersResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkflowTrigger"}},"total":{"type":"number"}},"required":["items","total"]}},"required":["message","success","data"]},"GetWorkflowResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Workflow"}},"required":["message","success","data"]},"UpdateWorkflowResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/Workflow"}},"required":["message","success","data"]},"UpdateWorkflowBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Workflow name"},"description":{"type":"string","description":"Workflow description"},"workflow":{"type":"object","additionalProperties":{},"description":"Workflow definition (JSON)"},"enabled":{"type":"boolean","description":"Enable/disable workflow"},"status":{"type":"string","enum":["DRAFT","PUBLISHED"],"description":"Workflow status"}}},"DeleteWorkflowResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"deleted":{"type":"boolean"},"id":{"type":"string"}},"required":["deleted","id"]}},"required":["message","success","data"]},"WorkflowDraft":{"type":"object","properties":{"id":{"type":"string","description":"Draft ID"},"workflow_id":{"type":"string","description":"Parent workflow ID"},"name":{"type":"string","description":"Draft name"},"description":{"type":"string","description":"Draft description"},"workflow":{"description":"Draft workflow definition (JSON)"},"last_modified":{"type":"string","description":"Last modified timestamp (ISO 8601)"},"is_synced":{"type":"boolean","description":"Whether draft is synced with live"},"created":{"type":"string","description":"Creation timestamp (ISO 8601)"}},"required":["id","workflow_id","name","description","last_modified","is_synced","created"]},"UpsertDraftResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/WorkflowDraft"}},"required":["message","success","data"]},"UpsertDraftBody":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255,"description":"Draft name"},"description":{"type":"string","default":"","description":"Draft description"},"workflow":{"type":"object","additionalProperties":{},"description":"Draft workflow definition (JSON)"}},"required":["name","workflow"]},"GetDraftResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/WorkflowDraft"}},"required":["message","success","data"]},"DeleteDraftResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"deleted":{"type":"boolean"},"workflow_id":{"type":"string"}},"required":["deleted","workflow_id"]}},"required":["message","success","data"]},"TestWorkflowResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"test_run_id":{"type":"string"},"workflow_id":{"type":"string"},"trigger_type":{"type":"string"},"trigger_post_source":{"type":"string","enum":["search","synthetic","override"],"description":"Where the test trigger post came from: 'search' = a real recent post from the linked saved search (live reads will resolve), 'synthetic' = a placeholder because the search has no indexed posts yet (engagement reads against it will fail — wait for the search to populate and re-test), 'override' = caller-supplied post_url."}},"required":["test_run_id","workflow_id","trigger_type"]}},"required":["message","success","data"]},"TestWorkflowBody":{"type":"object","properties":{"overrides":{"type":"object","properties":{"author_url":{"type":"string"},"text":{"type":"string"},"likes":{"type":"number"},"comments":{"type":"number"},"post_url":{"type":"string"},"date_posted":{"type":"string"},"source":{"type":"string"},"signal_type":{"type":"string","enum":["changed_role","changed_company","became_hiring","liked_competitor_content","liked_tracked_company_content","liked_tracked_person_content","commented_on_tracked_content","posted_about_tracked_topic","engaged_with_tracked_topic","competitor_engagement","buying_window","influence","company_started_hiring","company_jobs_count_increased","company_posted_relevant_initiative","expansion"],"description":"Signal type for social-signal-detected trigger tests"},"severity":{"type":"string","enum":["LOW","MEDIUM","HIGH"],"description":"Signal severity for social-signal-detected trigger tests"}},"description":"Test data overrides"},"test_config":{"type":"object","properties":{"mode":{"type":"string","enum":["real_with_override"],"default":"real_with_override"},"strict_data_validation":{"type":"boolean","default":true},"action_mocks":{"type":"object","additionalProperties":{"type":"object","properties":{"enabled":{"type":"boolean"},"output":{}},"required":["enabled"]}}},"description":"Test configuration"}}},"ExecutionSummary":{"type":"object","properties":{"run_id":{"type":"string","description":"Execution run ID"},"status":{"type":"string","description":"Execution status"},"started_at":{"type":"string","description":"Start timestamp (ISO 8601)"},"ended_at":{"type":["string","null"],"description":"End timestamp (ISO 8601)"},"duration_ms":{"type":["number","null"],"description":"Duration in milliseconds"},"error":{"type":["string","null"],"description":"Error message if failed"},"event_name":{"type":"string","description":"Trigger event name"},"created":{"type":"string","description":"Creation timestamp (ISO 8601)"}},"required":["run_id","status","started_at","ended_at","duration_ms","error","event_name","created"]},"ListExecutionsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ExecutionSummary"}},"page":{"type":"number"},"page_size":{"type":"number"},"total":{"type":"number"},"has_more":{"type":"boolean"}},"required":["items","page","page_size","total","has_more"]}},"required":["message","success","data"]},"ExecutionColumnConfig":{"type":"object","properties":{"id":{"type":"string","description":"Column identifier"},"stepId":{"type":"string","description":"Step ID this column maps from"},"fieldPath":{"type":"string","description":"Nested field path within the step output"},"label":{"type":"string","description":"Display label for the mapped column"}},"required":["id","stepId","fieldPath","label"]},"ExecutionStep":{"type":"object","properties":{"step_id":{"type":"string","description":"Step identifier"},"step_name":{"type":["string","null"],"description":"Human-readable step name"},"operation":{"type":"string","description":"Action kind / operation"},"status":{"type":"string","description":"Step status"},"started_at":{"type":"string","description":"Step start timestamp (ISO 8601)"},"ended_at":{"type":["string","null"],"description":"Step end timestamp (ISO 8601)"},"duration_ms":{"type":["number","null"],"description":"Step duration in milliseconds"},"input":{"description":"Step input"},"output":{"description":"Step output"},"mapped_output":{"type":"object","additionalProperties":{},"description":"Workflow table column values mapped from this step output"},"error":{"description":"Step error details"},"iteration":{"type":["number","null"],"description":"Loop iteration number"},"total_items":{"type":["number","null"],"description":"Total loop items"}},"required":["step_id","step_name","operation","status","started_at","ended_at","duration_ms"]},"ExecutionDetail":{"type":"object","properties":{"id":{"type":"string","description":"Execution log ID"},"run_id":{"type":"string","description":"Execution run ID"},"workflow_id":{"type":"string","description":"Parent workflow ID"},"status":{"type":"string","description":"Execution status"},"started_at":{"type":"string","description":"Start timestamp (ISO 8601)"},"ended_at":{"type":["string","null"],"description":"End timestamp (ISO 8601)"},"duration_ms":{"type":["number","null"],"description":"Duration in milliseconds"},"error":{"type":["string","null"],"description":"Error message if failed"},"event_name":{"type":"string","description":"Trigger event name"},"created":{"type":"string","description":"Creation timestamp (ISO 8601)"},"column_config":{"type":"array","items":{"$ref":"#/components/schemas/ExecutionColumnConfig"},"description":"Workflow table column mappings applied to step outputs"},"steps":{"type":"array","items":{"$ref":"#/components/schemas/ExecutionStep"},"description":"Ordered execution steps"}},"required":["id","run_id","workflow_id","status","started_at","ended_at","duration_ms","error","event_name","created","steps"]},"GetExecutionResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"$ref":"#/components/schemas/ExecutionDetail"}},"required":["message","success","data"]},"ListIntegrationsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"},"name":{"type":"string"},"source":{"type":"string","enum":["oauth","api_key"]},"connected":{"type":"boolean"}},"required":["type","name","source","connected"]}}},"required":["message","success","data"]},"HealthResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"type":{"type":"string"},"status":{"type":"string","enum":["healthy","stale","disconnected"]},"error":{"type":"string"},"probe":{"type":"object","properties":{"name":{"type":"string"},"status":{"type":"string","enum":["ok","failed"]},"action":{"type":"string"},"input":{},"error":{"type":"string"},"details":{"type":"object","additionalProperties":{}}},"required":["name","status","action"]}},"required":["type","status"]}},"required":["message","success","data"]},"SlackChannelsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"anyOf":[{"type":"object","properties":{},"additionalProperties":{}},{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}]}},"required":["message","success","data"]},"SlackUsersResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"anyOf":[{"type":"object","properties":{},"additionalProperties":{}},{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}]}},"required":["message","success","data"]},"CrmFieldsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"contacts":{"type":"array","items":{}},"companies":{"type":"array","items":{}}},"required":["contacts","companies"]}},"required":["message","success","data"]},"CrmFieldOptionsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"anyOf":[{"type":"object","properties":{},"additionalProperties":{}},{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}]}},"required":["message","success","data"]},"LinearTeamsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"teams":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"key":{"type":"string"}},"required":["id","name","key"]}}},"required":["teams"]}},"required":["message","success","data"]},"LinearUsersResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"email":{"type":"string"}},"required":["id","name"]}}},"required":["users"]}},"required":["message","success","data"]},"LinearStatesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"states":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"color":{"type":"string"}},"required":["id","name"]}}},"required":["states"]}},"required":["message","success","data"]},"NotionDatabasesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"databases":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"created_time":{"type":"string"},"last_edited_time":{"type":"string"}},"required":["id","title","created_time","last_edited_time"]}},"has_more":{"type":"boolean"},"next_cursor":{"type":["string","null"]}},"required":["databases","has_more","next_cursor"]}},"required":["message","success","data"]},"NotionSchemaResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"properties":{"type":"object","additionalProperties":{}},"created_time":{"type":"string"},"last_edited_time":{"type":"string"}},"required":["id","title","properties","created_time","last_edited_time"]}},"required":["message","success","data"]},"AirtableBasesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"bases":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"permissionLevel":{"type":"string"}},"required":["id","name","permissionLevel"]}}},"required":["bases"]}},"required":["message","success","data"]},"AirtableTablesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"tables":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"primaryFieldId":{"type":"string"},"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"options":{"type":"object","additionalProperties":{}}},"required":["id","name","type"]}}},"required":["id","name","primaryFieldId","fields"]}}},"required":["tables"]}},"required":["message","success","data"]},"AirtableFieldsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"fields":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"description":{"type":"string"},"options":{"type":"object","additionalProperties":{}}},"required":["id","name","type"]}}},"required":["fields"]}},"required":["message","success","data"]},"GoogleSheetsDocumentsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}}},"required":["message","success","data"]},"GoogleSheetsSheetsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"sheetId":{"type":"string"},"title":{"type":"string"}},"required":["sheetId","title"]}}},"required":["message","success","data"]},"GoogleSheetsColumnsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"columnName":{"type":"string"},"columnIndex":{"type":"number"}},"required":["columnName","columnIndex"]}}},"required":["message","success","data"]},"CampaignsResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{},"additionalProperties":{}}}},"required":["message","success","data"]},"AudiencesResponse":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"userId":{"type":"string"},"modifiedAt":{"type":"null"},"createdAt":{"type":"number"},"size":{"type":"number"},"sourceUrl":{"type":"string"},"type":{"type":"string"},"importationPending":{"type":"boolean"}},"required":["id","name","description","userId","modifiedAt","createdAt","size","sourceUrl","type","importationPending"]}}},"required":["message","success","data"]}},"parameters":{}},"paths":{"/v1/profile/posts":{"post":{"tags":["Get Profile Posts"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profileUrl":{"type":"string","description":"The LinkedIn profile URL to get posts from. ex: 'https://linkedin.com/in/username'"},"page":{"type":"integer","minimum":0,"default":0,"description":"Page number for pagination (0-based)"},"after":{"type":"string","format":"date-time","description":"ISO date string to filter posts created after this date"},"paginationToken":{"type":"string","description":"Pagination token for fetching specific page"}},"required":["profileUrl"]}}}},"responses":{"200":{"description":"Successfully retrieved profile posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProfilePostsResponse"}}}}}}},"/v1/profile/enrich":{"post":{"tags":["Enrich Profile"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"profileUrl":{"type":"string","description":"The LinkedIn profile URL to enrich. ex: 'https://linkedin.com/in/username'"}},"required":["profileUrl"]}}}},"responses":{"200":{"description":"Successfully enriched profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichProfileResponse"}}}}}}},"/v1/profile/engagement/bulk":{"post":{"tags":["Profile Engagement"],"summary":"Bulk upload tracked LinkedIn profiles","description":"Enterprise-only endpoint. Bulk uploads LinkedIn person profiles for engagement monitoring for the authenticated organisation. The API resolves or creates the internal LinkedIn connection automatically, attaches every tracked profile to all-leads, and can optionally create or update one HTTPS webhook URL per profile. Upload, read, and remove endpoints are free. Downstream collection charges 5 credits per newly created profile engagement result.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkTrackProfilesRequest"}}}},"responses":{"201":{"description":"Tracked profiles created or refreshed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkTrackProfilesResponse"}}}}}}},"/v1/profile/engagement/results":{"post":{"tags":["Profile Engagement"],"summary":"Get tracked profile engagement results by profile URL","description":"Enterprise-only endpoint. Returns paginated LinkedIn engagement results for a tracked profile resolved from a LinkedIn profile URL. Results are deduplicated by prospect across the tracked profile's posts. This read endpoint is free. Upload, read, and remove endpoints are free. Downstream collection charges 5 credits per newly created profile engagement result.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProfileEngagementResultsRequest"}}}},"responses":{"200":{"description":"Tracked profile engagement results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProfileEngagementResultsResponse"}}}}}}},"/v1/profile/engagement/post-results":{"post":{"tags":["Profile Engagement"],"summary":"Get tracked profile post engagement results by profile URL and post URL","description":"Enterprise-only endpoint. Returns paginated LinkedIn engagement results for a specific tracked post resolved from the combination of a monitored LinkedIn profile URL and post URL. Results are deduplicated by prospect within the requested post only. This read endpoint is free. Upload, read, and remove endpoints are free. Downstream collection charges 5 credits per newly created profile engagement result.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProfilePostEngagementResultsRequest"}}}},"responses":{"200":{"description":"Tracked profile post engagement results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetProfileEngagementResultsResponse"}}}}}}},"/v1/profile/engagement/remove":{"post":{"tags":["Profile Engagement"],"summary":"Stop monitoring a tracked LinkedIn profile","description":"Enterprise-only endpoint. Archives a tracked LinkedIn profile resolved from a LinkedIn profile URL, stopping future monitoring for that profile under the authenticated organisation. Any webhook configuration for that tracked profile is removed at the same time.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveTrackedProfileRequest"}}}},"responses":{"200":{"description":"Tracked profile removed successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveTrackedProfileResponse"}}}}}}},"/v1/company/posts":{"post":{"tags":["Get Company Posts"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"companyUrl":{"type":"string","description":"The LinkedIn company URL to get posts from. ex: 'https://linkedin.com/company/trigify'"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Optional cap on the number of results returned (1-50). Credits are charged per result returned, so use this to control cost per call. Defaults to the full page (up to 50)."}},"required":["companyUrl"]}}}},"responses":{"200":{"description":"Successfully retrieved company posts","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCompanyPostsResponse"}}}}}}},"/v1/company/comments":{"post":{"tags":["Get Company Post Comments"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrn":{"type":"string","minLength":1,"description":"The LinkedIn company post URN to get comments from. ex: '7196224250288955393'"},"page":{"type":"integer","minimum":1,"default":1,"description":"The page number for pagination (defaults to 1)"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Optional cap on the number of results returned (1-50). Credits are charged per result returned, so use this to control cost per call. Defaults to the full page (up to 50)."}},"required":["postUrn"]}}}},"responses":{"200":{"description":"Successfully retrieved company post comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCompanyPostCommentsResponse"}}}}}}},"/v1/company/enrich":{"post":{"tags":["Enrich Company"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"companyUrl":{"type":"string","description":"The LinkedIn company URL to enrich. ex: 'https://linkedin.com/company/trigify'"}},"required":["companyUrl"]}}}},"responses":{"200":{"description":"Successfully enriched company","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichCompanyResponse"}}}}}}},"/v1/post/engagements":{"post":{"tags":["Get Post Engagements"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrl":{"type":"string","description":"The LinkedIn post URL to get engagements from. ex: 'https://linkedin.com/posts/username_activity-123456789'"},"page":{"type":"integer","minimum":1,"default":1,"description":"The page number for pagination (defaults to 1)"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Optional cap on the number of results returned (1-50). Credits are charged per result returned, so use this to control cost per call. Defaults to the full page (up to 50)."}},"required":["postUrl"]}}}},"responses":{"200":{"description":"Successfully retrieved post engagements","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPostEngagementsResponse"}}}}}}},"/v1/post/comments":{"post":{"tags":["Get Post Comments"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrn":{"type":"string","minLength":1,"description":"The LinkedIn post URN to get comments from. ex: '7196224250288955393'"},"page":{"type":"integer","minimum":1,"default":1,"description":"The page number for pagination (defaults to 1)"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Optional cap on the number of results returned (1-50). Credits are charged per result returned, so use this to control cost per call. Defaults to the full page (up to 50)."}},"required":["postUrn"]}}}},"responses":{"200":{"description":"Successfully retrieved post comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPostCommentsResponse"}}}}}}},"/v1/post/comments/replies":{"post":{"tags":["Get Post Comment Replies"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrn":{"type":"string","minLength":1,"description":"The LinkedIn post URN to get replies from. ex: '7196224250288955393'"},"commentUrn":{"type":"string","pattern":"^(?:urn:li:comment:(\\d+|\\(.+\\))|\\d+)$","description":"The LinkedIn comment URN returned by POST /v1/post/comments. Legacy numeric comment ids are also accepted for backward compatibility. ex: 'urn:li:comment:(urn:li:ugcPost:7218979654638989312,7219337261564252161)'"},"previousCursor":{"type":"string","description":"Cursor returned by the comments or replies response to fetch the next page of replies"},"limit":{"type":"integer","minimum":1,"maximum":50,"description":"Optional cap on the number of results returned (1-50). Credits are charged per result returned, so use this to control cost per call. Defaults to the full page (up to 50)."}},"required":["postUrn","commentUrn"]}}}},"responses":{"200":{"description":"Successfully retrieved post comment replies","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPostCommentRepliesResponse"}}}}}}},"/v1/post/by-url":{"post":{"tags":["Get Post by URL"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrl":{"type":"string","description":"LinkedIn post URL to fetch"}},"required":["postUrl"]}}}},"responses":{"200":{"description":"Successfully retrieved LinkedIn post","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetPostByUrlResponse"}}}},"400":{"description":"Bad request - invalid URL format"},"401":{"description":"Unauthorized - invalid API key"},"404":{"description":"Post not found"},"500":{"description":"Internal server error"}}}},"/v1/social/mapping":{"post":{"tags":["Social Mapping"],"summary":"Search the Social Mapping engagement graph","description":"Queries Trigify's enterprise-only Social Mapping graph using keyword, firmographic, and profile filters. Social Mapping is powered by engagement data collected from Social Topics monitoring: create-time discovery and hydration, daily 06:00 UTC rediscovery for active searches, and Day 1, Day 3, and Day 5 engagement backfills checked every 5 minutes. Contact support@trigify.io to discuss access.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"job_titles":{"type":"array","items":{"type":"string"},"description":"List of job titles to include in the search. ex: ['Chief Executive Officer']"},"job_titles_excludes":{"type":"array","items":{"type":"string"},"description":"List of job titles to exclude from the search. ex: ['Chief Executive Officer']"},"engaged_with_keywords":{"type":"array","items":{"type":"string"},"description":"Keywords that the prospect has engaged with. ex: ['keyword1', 'keyword2']"},"engaged_with_topic_strength":{"type":"number","minimum":0,"maximum":5,"default":1,"description":"Strength of engagement with the specified keywords. 0-5"},"company_domain_includes":{"type":"array","items":{"type":"string"},"description":"List of company domains to include in the search. ex: ['example.com']"},"company_domain_excludes":{"type":"array","items":{"type":"string"},"description":"List of company domains to exclude from the search. ex: ['example.com']"},"engaged_with_days":{"type":"number","minimum":1,"maximum":30,"description":"Number of days since engagement, min 1 day, max 30 days"},"followers":{"type":"array","items":{"type":"string"},"description":"List of follower counts to include in the search."},"location_country":{"type":"array","items":{"type":"string"},"description":"List of locations to include in the search. ex: ['United States']"},"location_excludes":{"type":"array","items":{"type":"string"},"description":"List of locations to exclude from the search. ex: ['United States']"},"industries":{"type":"array","items":{"type":"string"},"description":"List of industries to include in the search. ex: ['Computer Software']"},"industries_excludes":{"type":"array","items":{"type":"string"},"description":"List of industries to exclude from the search. ex: ['Computer Software']"},"company_sizes":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]},"description":"List of company sizes to include in the search"},"company_sizes_excludes":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]},"description":"List of company sizes to exclude from the search"},"page":{"type":"integer","minimum":1,"default":1,"description":"The page number to retrieve"},"page_size":{"type":"integer","enum":[10,25,50],"default":10,"description":"The number of results to return per page"},"includes":{"type":"array","items":{"type":"string","enum":["first_name","last_name","linkedin_url","avatar","location","company","company_domain","job_title","followers","post.text","post.url","post.date","post.likes","post.comments","engagement.type"]},"description":"List of fields to include in the response"}},"required":["engaged_with_keywords","engaged_with_days"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":["string","null"],"description":"The first name of the person"},"last_name":{"type":["string","null"],"description":"The last name of the person"},"linkedin_url":{"type":["string","null"],"description":"The LinkedIn URL of the person"},"avatar":{"type":["string","null"],"description":"The avatar of the person"},"location":{"type":["string","null"],"description":"The location of the person"},"company":{"type":["string","null"],"description":"The company of the person"},"company_domain":{"type":["string","null"],"description":"The company domain of the person"},"job_title":{"type":["string","null"],"description":"The job title of the person"},"post":{"type":"object","properties":{"text":{"type":["string","null"],"description":"The text of the post"},"url":{"type":["string","null"],"description":"The URL of the post"},"date":{"type":["string","null"],"description":"The date of the post"},"likes":{"type":["number","null"],"description":"The number of likes of the post"},"comments":{"type":["number","null"],"description":"The number of comments of the post"}},"description":"The post of the person"},"engagement":{"type":"object","properties":{"type":{"type":["string","null"],"enum":["like","comment"],"description":"The type of the engagement"}},"description":"The engagement of the person, in relation to the post"}},"required":["post","engagement"]}},"page":{"type":"number"},"total":{"type":"number"}},"required":["results","page","total"]}},"required":["message","success","data"]}}}}}}},"/v1/discover/creators":{"post":{"tags":["Discover Creators"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"job_titles":{"type":"array","items":{"type":"string"},"description":"List of job titles to include in the search. ex: ['Chief Executive Officer']"},"job_titles_excludes":{"type":"array","items":{"type":"string"},"description":"List of job titles to exclude from the search. ex: ['Chief Executive Officer']"},"posted_about_keywords":{"type":"array","items":{"type":"string"},"description":"Keywords that the prospect has engaged with. ex: ['keyword1', 'keyword2']"},"posted_about_topic_strength":{"type":"number","default":1,"description":"How often the prospect has posted about the specified keywords. 0-5"},"company_domain_includes":{"type":"array","items":{"type":"string"},"description":"List of company domains to include in the search. ex: ['example.com']"},"company_domain_excludes":{"type":"array","items":{"type":"string"},"description":"List of company domains to exclude from the search. ex: ['example.com']"},"posted_about_days":{"type":"number","minimum":1,"maximum":30,"description":"Number of days since last post about the topic, min 1 day, max 30 days"},"followers":{"type":"array","items":{"type":"string"},"description":"List of follower counts to include in the search."},"location_country":{"type":"array","items":{"type":"string"},"description":"List of locations to include in the search. ex: ['United States']"},"location_excludes":{"type":"array","items":{"type":"string"},"description":"List of locations to exclude from the search. ex: ['United States']"},"industries":{"type":"array","items":{"type":"string"},"description":"List of industries to include in the search. ex: ['Computer Software']"},"industries_excludes":{"type":"array","items":{"type":"string"},"description":"List of industries to exclude from the search. ex: ['Computer Software']"},"company_sizes":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]},"description":"List of company sizes to include in the search"},"company_sizes_excludes":{"type":"array","items":{"type":"string","enum":["1-10","11-50","51-200","201-500","501-1000","1001-5000","5001-10000","10001+"]},"description":"List of company sizes to exclude from the search"},"page":{"type":"number","default":1,"description":"The page number to retrieve"},"page_size":{"type":"integer","enum":[10,25,50],"default":10,"description":"The number of results to return per page"}},"required":["posted_about_keywords","posted_about_days"]}}}},"responses":{"200":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"},"success":{"type":"boolean"},"data":{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"],"description":"The name of the person"},"linkedin_url":{"type":["string","null"],"description":"The LinkedIn URL of the person"},"avatar":{"type":["string","null"],"description":"The avatar of the person"},"location":{"type":["string","null"],"description":"The location of the person"},"company":{"type":["string","null"],"description":"The company of the person"},"company_domain":{"type":["string","null"],"description":"The company domain of the person"},"job_title":{"type":["string","null"],"description":"The job title of the person"},"followers":{"type":["number","null"],"description":"The number of followers of the person"},"company_size":{"type":["string","null"],"description":"The size of the company of the person"},"company_industry":{"type":["string","null"],"description":"The industry of the company of the person"},"company_logo":{"type":["string","null"],"description":"The logo of the company of the person"},"avg_last_10_engagement":{"type":["number","null"],"description":"The average engagement of the person in the last 10 posts"},"avg_days_between_posts":{"type":["number","null"],"description":"The average number of days between posts of the person"}}}},"page":{"type":"number"},"total":{"type":"number"}},"required":["results","page","total"]}},"required":["message","success","data"]}}}}}}},"/v1/searches":{"post":{"tags":["Social Listening"],"deprecated":true,"summary":"Create a new search (deprecated)","description":"Creates a new social listening search. This operation costs credits. **Deprecated:** Use the per-source endpoints instead (e.g. `POST /v1/searches/twitter/posts`).","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}}}},"get":{"tags":["Social Listening"],"summary":"List all searches","description":"Lists all searches for the authenticated user. No credits charged.","parameters":[{"schema":{"type":"string","enum":["active","paused"],"description":"Filter by status"},"required":false,"description":"Filter by status","name":"status","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":100,"default":50,"description":"Max results (default 50, max 100)"},"required":false,"description":"Max results (default 50, max 100)","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"List of searches","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSearchesResponse"}}}}}}},"/v1/searches/limits":{"get":{"tags":["Social Listening"],"summary":"Get saved-search limit and usage","description":"Returns the account's saved-search plan limit, current usage, and remaining capacity. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Saved-search limit and usage","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchLimitsResponse"}}}}}}},"/v1/searches/{id}":{"get":{"tags":["Social Listening"],"summary":"Get search details","description":"Get details of a specific search including query configuration and stats. No credits charged.","parameters":[{"schema":{"type":"string","description":"Search ID","example":"search_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Search details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSearchResponse"}}}}}},"patch":{"tags":["Social Listening"],"summary":"Update a search","description":"Update search configuration (name, status, filters). No credits charged.","parameters":[{"schema":{"type":"string","description":"Search ID","example":"search_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSearchRequest"}}}},"responses":{"200":{"description":"Search updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSearchResponse"}}}}}},"delete":{"tags":["Social Listening"],"summary":"Delete a search","description":"Delete a search permanently. No credits charged.","parameters":[{"schema":{"type":"string","description":"Search ID","example":"search_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Search deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteSearchResponse"}}}}}}},"/v1/searches/{id}/results":{"get":{"tags":["Social Listening"],"summary":"Fetch search results","description":"Fetch results from a search with optional date filtering and pagination. No credits charged.","parameters":[{"schema":{"type":"string","description":"Search ID","example":"search_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Filter to posts created after this date (ISO 8601)"},"required":false,"description":"Filter to posts created after this date (ISO 8601)","name":"from","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":100,"default":50,"description":"Max results (default 50, max 100)"},"required":false,"description":"Max results (default 50, max 100)","name":"limit","in":"query"},{"schema":{"type":"string","description":"Pagination cursor"},"required":false,"description":"Pagination cursor","name":"cursor","in":"query"},{"schema":{"type":"string","description":"Filter by job title (case-insensitive substring match, LinkedIn only)"},"required":false,"description":"Filter by job title (case-insensitive substring match, LinkedIn only)","name":"job_title","in":"query"},{"schema":{"type":"string","description":"Filter by company name (case-insensitive substring match, LinkedIn only)"},"required":false,"description":"Filter by company name (case-insensitive substring match, LinkedIn only)","name":"company","in":"query"},{"schema":{"type":"string","description":"Filter by industry (case-insensitive substring match, LinkedIn only)"},"required":false,"description":"Filter by industry (case-insensitive substring match, LinkedIn only)","name":"industry","in":"query"},{"schema":{"type":"string","description":"Filter by country (case-insensitive substring match, LinkedIn only)"},"required":false,"description":"Filter by country (case-insensitive substring match, LinkedIn only)","name":"country","in":"query"},{"schema":{"type":"string","description":"Filter by seniority level e.g. 'director', 'vp', 'c_suite' (case-insensitive, LinkedIn only)"},"required":false,"description":"Filter by seniority level e.g. 'director', 'vp', 'c_suite' (case-insensitive, LinkedIn only)","name":"seniority","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSearchResultsResponse"}}}}}}},"/v1/searches/podcasts/search":{"post":{"tags":["Social Listening"],"summary":"Search podcasts","description":"Search for podcasts by name. Use the returned podcast ID when creating a podcast-episodes search. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPodcastsRequest"}}}},"responses":{"200":{"description":"Podcast search results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchPodcastsResponse"}}}}}}},"/v1/searches/twitter/posts":{"post":{"tags":["Social Listening"],"summary":"Create a Twitter/X posts search","description":"Create a keyword-based search that monitors Twitter/X posts. Supports advanced operators like from_users, to_user, list_id, etc. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTwitterPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/linkedin/posts":{"post":{"tags":["Social Listening"],"summary":"Create a LinkedIn posts search","description":"Create a keyword-based search that monitors LinkedIn posts. Supports job title filtering, content type filtering, and member/org mentions. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLinkedInPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/reddit/posts":{"post":{"tags":["Social Listening"],"summary":"Create a Reddit posts search","description":"Create a keyword-based search that monitors Reddit posts and comments. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedditPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/reddit/subreddit":{"post":{"tags":["Social Listening"],"summary":"Create a subreddit monitor","description":"Monitor a specific subreddit for new posts, with optional keyword filtering. Unlike the reddit/posts endpoint which searches all of Reddit by keywords, this endpoint monitors a single subreddit. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubredditPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/youtube/videos":{"post":{"tags":["Social Listening"],"summary":"Create a YouTube videos search","description":"Create a keyword-based search that monitors YouTube videos. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateYouTubeVideosSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/substack/posts":{"post":{"tags":["Social Listening"],"summary":"Create a Substack posts search","description":"Create a search that monitors Substack posts by keywords and/or publication. Must have at least keywords or a publication. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubstackPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/substack/notes":{"post":{"tags":["Social Listening"],"summary":"Create a Substack notes monitor","description":"Monitor a specific Substack author's notes, with optional keyword filters. The author handle is validated before the monitor is created. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubstackNotesSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/podcast/keywords":{"post":{"tags":["Social Listening"],"summary":"Create a podcast keyword search","description":"Create a keyword-based search that monitors podcast episode transcripts. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePodcastKeywordsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/hackernews/stories":{"post":{"tags":["Social Listening"],"summary":"Create a Hacker News stories search","description":"Create a keyword-based search that monitors Hacker News stories and comments. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateHackerNewsStoriesSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/newsapi-ai/posts":{"post":{"tags":["Social Listening"],"summary":"Create a Monitor News search","description":"Create a keyword-based search that monitors news articles. Supports boolean keyword groups (OR / AND / NOT). Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNewsApiAiPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/dailydev/posts":{"post":{"tags":["Social Listening"],"summary":"Create a Daily.dev posts search","description":"Create a keyword-based search that monitors Daily.dev developer posts. Supports multiple search modes including keyword search, tag-based feeds, smart recommendations, and most-discussed. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDailyDevPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/tiktok/videos":{"post":{"tags":["Social Listening"],"summary":"Create a TikTok videos search","description":"Create a keyword-based search that monitors TikTok videos. Each keyword runs as an independent TikTok search; results are merged and deduped, with `keywords_not` applied as a post-filter. Costs 1 credit to create.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTikTokVideosSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/github/issues":{"post":{"tags":["Social Listening"],"summary":"Create a GitHub issues search","description":"Create a keyword-based search that monitors GitHub issues. Optionally scoped to specific repos in 'owner/repo' format. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGitHubIssuesSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/github/discussions":{"post":{"tags":["Social Listening"],"summary":"Create a GitHub discussions search","description":"Create a keyword-based search that monitors GitHub discussions. Optionally scoped to specific repos in 'owner/repo' format. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGitHubDiscussionsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/bluesky/posts":{"post":{"tags":["Social Listening"],"summary":"Create a Bluesky posts search","description":"Create a keyword-based search that monitors Bluesky posts. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBlueskyPostsSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/twitter/profile":{"post":{"tags":["Social Listening"],"summary":"Monitor a Twitter/X profile","description":"Create a monitor that tracks new posts from a specific Twitter/X profile. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTwitterProfileSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/linkedin/profile":{"post":{"tags":["Social Listening"],"summary":"Monitor a LinkedIn profile or company","description":"Create a monitor that tracks new posts from a specific LinkedIn profile or company page. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLinkedInProfileSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/youtube/channel":{"post":{"tags":["Social Listening"],"summary":"Monitor a YouTube channel","description":"Create a monitor that tracks new videos from a specific YouTube channel. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateYouTubeChannelSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/substack/profile":{"post":{"tags":["Social Listening"],"summary":"Monitor a Substack publication","description":"Create a monitor that tracks new posts from a specific Substack publication. Provide either profile_url or publication. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubstackProfileSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/tiktok/profile":{"post":{"tags":["Social Listening"],"summary":"Monitor a TikTok profile","description":"Create a monitor that tracks new videos from a specific TikTok creator. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTikTokProfileSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/bluesky/profile":{"post":{"tags":["Social Listening"],"summary":"Monitor a Bluesky profile","description":"Create a monitor that tracks new posts from a specific Bluesky profile. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBlueskyProfileSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/podcast/episodes":{"post":{"tags":["Social Listening"],"summary":"Monitor a podcast for new episodes","description":"Create a monitor that tracks new episodes from a specific podcast. Use POST /v1/searches/podcasts/search to find the podcast_id first. Costs 1 credit.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePodcastEpisodesSearchRequest"}}}},"responses":{"201":{"description":"Search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"409":{"description":"Conflict — a search with this name already exists","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/twitter/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a twitter-posts search","description":"Run the twitter-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/twitter/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTwitterPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/linkedin/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a linkedin-posts search","description":"Run the linkedin-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/linkedin/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLinkedInPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/reddit/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a reddit-posts search","description":"Run the reddit-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/reddit/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRedditPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/reddit/subreddit/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a subreddit-posts search","description":"Run the subreddit-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/reddit/subreddit — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubredditPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/youtube/videos/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a youtube-videos search","description":"Run the youtube-videos filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/youtube/videos — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateYouTubeVideosSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/substack/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a substack-posts search","description":"Run the substack-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/substack/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubstackPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/substack/notes/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a substack-notes search","description":"Run the substack-notes filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/substack/notes — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubstackNotesSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/podcast/keywords/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a podcast-keywords search","description":"Run the podcast-keywords filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/podcast/keywords — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePodcastKeywordsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/hackernews/stories/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a hackernews-stories search","description":"Run the hackernews-stories filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/hackernews/stories — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateHackerNewsStoriesSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/newsapi-ai/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a newsapi-ai-posts search","description":"Run the newsapi-ai-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/newsapi-ai/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNewsApiAiPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/dailydev/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a dailydev-posts search","description":"Run the dailydev-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/dailydev/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDailyDevPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/github/issues/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a github-issues search","description":"Run the github-issues filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/github/issues — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGitHubIssuesSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/github/discussions/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a github-discussions search","description":"Run the github-discussions filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/github/discussions — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateGitHubDiscussionsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/bluesky/posts/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a bluesky-posts search","description":"Run the bluesky-posts filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/bluesky/posts — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBlueskyPostsSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/twitter/profile/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a twitter-profile search","description":"Run the twitter-profile filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/twitter/profile — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTwitterProfileSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/linkedin/profile/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a linkedin-profile search","description":"Run the linkedin-profile filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/linkedin/profile — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateLinkedInProfileSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/youtube/channel/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a youtube-channel search","description":"Run the youtube-channel filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/youtube/channel — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateYouTubeChannelSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/substack/profile/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a substack-profile search","description":"Run the substack-profile filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/substack/profile — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSubstackProfileSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/podcast/episodes/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a podcast-episodes search","description":"Run the podcast-episodes filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/podcast/episodes — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreatePodcastEpisodesSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/tiktok/videos/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a tiktok-videos search","description":"Run the tiktok-videos filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/tiktok/videos — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTikTokVideosSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/tiktok/profile/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a tiktok-profile search","description":"Run the tiktok-profile filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/tiktok/profile — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTikTokProfileSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/searches/bluesky/profile/preview":{"post":{"tags":["Social Listening"],"summary":"Preview a bluesky-profile search","description":"Run the bluesky-profile filters as a live query and return a sample of matching posts. Lets API consumers validate their filters before committing to a saved search. Accepts the same request body as POST /v1/searches/bluesky/profile — the `name` and `frequency` fields are accepted but ignored, so you can POST the exact same payload to /preview first. **Free** — no credits charged.","security":[{"AuthorizationApiKey":[]}],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateBlueskyProfileSearchRequest"}}}},"responses":{"200":{"description":"Preview results returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreviewSearchResponse"}}}},"400":{"description":"Bad request — request body failed schema validation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"401":{"description":"Unauthorized — missing or invalid API key","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"403":{"description":"Forbidden — plan gating (FREEMIUM blocked, hourly requires Enterprise) or insufficient credits / spend cap reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"429":{"description":"Too many requests — rate limit exceeded","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/social-signals/metadata":{"get":{"tags":["Social Signals"],"summary":"Get Social Signals metadata","description":"Get supported Social Signals definitions, default config, statuses, and billing metadata.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals metadata","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSignalMetadataResponse"}}}}}}},"/v1/social-signals/limits":{"get":{"tags":["Social Signals"],"summary":"Get Social Signals limits","description":"Get tier-derived Social Signals limits and current usage for the authenticated organisation.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals limits","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSocialSignalLimitsResponse"}}}}}}},"/v1/social-signals/status":{"get":{"tags":["Social Signals"],"summary":"Get Social Signals status","description":"Get aggregate Social Signals subscription and enrichment status.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSocialSignalStatusResponse"}}}}}}},"/v1/social-signals/subscriptions":{"post":{"tags":["Social Signals"],"summary":"Create or update Social Signals subscriptions","description":"Batch upsert LinkedIn profile or company targets into Social Signals monitoring for the authenticated organisation.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSocialSignalSubscriptionsRequest"}}}},"responses":{"201":{"description":"Social Signals subscriptions created or updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSocialSignalSubscriptionsResponse"}}}}}},"get":{"tags":["Social Signals"],"summary":"List Social Signals subscriptions","description":"List Social Signals subscriptions for the authenticated organisation.","parameters":[{"schema":{"$ref":"#/components/schemas/SocialSignalApiSubscriptionStatus"},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals subscriptions","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialSignalSubscriptionsResponse"}}}}}}},"/v1/social-signals/subscriptions/bulk-stop":{"post":{"tags":["Social Signals"],"summary":"Stop multiple Social Signals subscriptions","description":"Stop multiple Social Signals subscriptions without deleting historical signal results.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStopSocialSignalSubscriptionsRequest"}}}},"responses":{"200":{"description":"Social Signals subscriptions stopped","content":{"application/json":{"schema":{"$ref":"#/components/schemas/BulkStopSocialSignalSubscriptionsResponse"}}}}}}},"/v1/social-signals/subscriptions/{id}":{"get":{"tags":["Social Signals"],"summary":"Get Social Signals subscription","description":"Get one Social Signals subscription scoped to the authenticated organisation.","parameters":[{"schema":{"type":"string","description":"Social Signals subscription ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals subscription","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSocialSignalSubscriptionResponse"}}}}}},"patch":{"tags":["Social Signals"],"summary":"Update Social Signals subscription","description":"Update selected Social Signals signal config or pause/resume a subscription.","parameters":[{"schema":{"type":"string","description":"Social Signals subscription ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSocialSignalSubscriptionRequest"}}}},"responses":{"200":{"description":"Social Signals subscription updated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateSocialSignalSubscriptionResponse"}}}}}},"delete":{"tags":["Social Signals"],"summary":"Stop Social Signals subscription","description":"Stop a Social Signals subscription without deleting historical signal results.","parameters":[{"schema":{"type":"string","description":"Social Signals subscription ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals subscription stopped","content":{"application/json":{"schema":{"$ref":"#/components/schemas/StopSocialSignalSubscriptionResponse"}}}}}}},"/v1/social-signals/estimate":{"post":{"tags":["Social Signals"],"summary":"Estimate Social Signals credits","description":"Estimate daily Social Signals credit usage for a subscription configuration.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateSocialSignalsRequest"}}}},"responses":{"200":{"description":"Social Signals credit estimate","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EstimateSocialSignalsResponse"}}}}}}},"/v1/social-signals/feed":{"get":{"tags":["Social Signals"],"summary":"List Social Signals feed","description":"List Social Signals activity feed items, including signals and generated insights.","parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"page_size","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiFeedContentType"},"required":false,"name":"content_type","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"required":false,"name":"severity","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"required":false,"name":"signal_type","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"target_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Filter by canonical LinkedIn target URL. Accepts any URL variant; results match the normalized canonical form."},"required":false,"name":"target_url","in":"query"},{"schema":{"type":"string","minLength":1},"required":false,"name":"subscription_id","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"signal_date_from","in":"query"},{"schema":{"type":"string","format":"date-time"},"required":false,"name":"signal_date_to","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":10},"required":false,"name":"min_signals_per_target","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals feed","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialSignalFeedResponse"}}}}}}},"/v1/social-signals/targets":{"get":{"tags":["Social Signals"],"summary":"List Social Signals targets","description":"List monitored Social Signals targets for the authenticated organisation.","parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"page_size","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"required":false,"name":"severity","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"required":false,"name":"signal_type","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals targets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialSignalTargetsResponse"}}}}}}},"/v1/social-signals/targets/{id}/profile":{"get":{"tags":["Social Signals"],"summary":"Get Social Signals target profile","description":"Get a monitored target profile, enrichment status, and recent signal timeline.","parameters":[{"schema":{"type":"string","description":"Social Signals target ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":100},"required":false,"name":"timeline_limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals target profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SocialSignalTargetProfileResponse"}}}}}}},"/v1/social-signals/targets/{id}/insights":{"get":{"tags":["Social Signals"],"summary":"List Social Signals target insights","description":"List generated Social Signals insights for a monitored target.","parameters":[{"schema":{"type":"string","description":"Social Signals target ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":20},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals target insights","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialSignalTargetInsightsResponse"}}}}}}},"/v1/social-signals/targets/{id}/check-runs":{"get":{"tags":["Social Signals"],"summary":"List Social Signals target check runs","description":"List recent Social Signals check runs for a monitored target.","parameters":[{"schema":{"type":"string","description":"Social Signals target ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"maximum":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals check runs","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialSignalCheckRunsResponse"}}}}}}},"/v1/social-signals/results":{"get":{"tags":["Social Signals"],"summary":"List Social Signals results","description":"List produced Social Signals results for the authenticated organisation.","parameters":[{"schema":{"type":"integer","minimum":1,"default":1},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50},"required":false,"name":"page_size","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiSeverity"},"required":false,"name":"severity","in":"query"},{"schema":{"$ref":"#/components/schemas/SocialSignalApiEventType"},"required":false,"name":"signal_type","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Filter results to a single Social Signals target ID."},"required":false,"name":"target_id","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Filter results by canonical LinkedIn target URL. Accepts any URL variant; results match the normalized canonical form."},"required":false,"name":"target_url","in":"query"},{"schema":{"type":"string","minLength":1,"description":"Filter results to a single Social Signals subscription ID."},"required":false,"name":"subscription_id","in":"query"},{"schema":{"type":"string","format":"date-time","description":"ISO-8601 inclusive lower bound for signal_date."},"required":false,"name":"signal_date_from","in":"query"},{"schema":{"type":"string","format":"date-time","description":"ISO-8601 inclusive upper bound for signal_date."},"required":false,"name":"signal_date_to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals results","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListSocialSignalResultsResponse"}}}}}}},"/v1/social-signals/results/{id}":{"get":{"tags":["Social Signals"],"summary":"Get Social Signals result","description":"Get one produced Social Signals result scoped to the authenticated organisation.","parameters":[{"schema":{"type":"string","description":"Social Signals result ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Social Signals result","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetSocialSignalResultResponse"}}}}}}},"/v1/topics":{"post":{"tags":["Social Topics"],"summary":"Create a topic search","description":"Creates a new enterprise-only social topic search for LinkedIn keyword monitoring and immediately kicks off discovery. Active searches are rediscovered daily at 06:00 UTC. Newly tracked posts are hydrated immediately on create, then their engagements are re-scraped on Day 1, Day 3, and Day 5 by a backfill scheduler that runs every 5 minutes. Topic creation itself is free; credits are charged only when new posts and new engagements are collected. Topics auto-expire after 30 days.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicRequest"}}}},"responses":{"201":{"description":"Topic search created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateTopicResponse"}}}}}},"get":{"tags":["Social Topics"],"summary":"List topic searches","description":"Lists all enterprise-only topic searches for the authenticated organisation. Active searches are rediscovered daily at 06:00 UTC, and tracked posts continue through the Day 1, Day 3, and Day 5 engagement backfill schedule. No credits are charged for listing searches.","parameters":[{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number"},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Items per page"},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"List of topic searches","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTopicsResponse"}}}}}}},"/v1/topics/{id}":{"get":{"tags":["Social Topics"],"summary":"Get topic search details","description":"Gets details for a specific enterprise-only topic search, including its monitoring state. Active searches are rediscovered daily at 06:00 UTC. Matching posts begin immediate hydration on create and continue through Day 1, Day 3, and Day 5 engagement backfills while the search stays active. No credits are charged for this read endpoint.","parameters":[{"schema":{"type":"string","description":"Topic search ID","example":"topic_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Topic search details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicResponse"}}}}}},"patch":{"tags":["Social Topics"],"summary":"Update a topic search","description":"Updates an enterprise-only topic search name or status (ACTIVE to resume, PAUSED to pause, STOPPED to stop permanently). Paused and stopped searches no longer participate in the daily 06:00 UTC discovery run, and their linked posts stop receiving future engagement backfills once no eligible active searches remain. No credits are charged for updates.","parameters":[{"schema":{"type":"string","description":"Topic search ID","example":"topic_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTopicRequest"}}}},"responses":{"200":{"description":"Topic search updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateTopicResponse"}}}}}},"delete":{"tags":["Social Topics"],"summary":"Delete a topic search","description":"Soft-deletes an enterprise-only topic search and stops future monitoring for that search. Deleted searches are removed from the daily 06:00 UTC discovery cadence, and linked posts stop receiving future Day 1, Day 3, and Day 5 engagement backfills once no eligible active searches remain. No credits are charged.","parameters":[{"schema":{"type":"string","description":"Topic search ID","example":"topic_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Topic search deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteTopicResponse"}}}}}}},"/v1/topics/{id}/credits-summary":{"get":{"tags":["Social Topics"],"summary":"Get topic search credit summary","description":"Returns the current billing-period credit summary for an enterprise-only topic search. Shared billed posts and engagements are allocated evenly across all matching topic searches within the same organisation. This endpoint is free to read.","parameters":[{"schema":{"type":"string","description":"Topic search ID","example":"topic_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Topic credit summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicCreditSummaryResponse"}}}}}}},"/v1/topics/{id}/engagements":{"get":{"tags":["Social Topics"],"summary":"Get topic search engagements","description":"Returns paginated engagers for an enterprise-only topic search, deduplicated by prospect. Each prospect appears once with their most recent engagement collected from immediate hydration plus the Day 1, Day 3, and Day 5 engagement backfill schedule. This endpoint is free to read.","parameters":[{"schema":{"type":"string","description":"Topic search ID","example":"topic_abc123xyz"},"required":true,"name":"id","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number"},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Items per page"},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Paginated engagers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicEngagementsResponse"}}}}}}},"/v1/topics/{id}/posts/{postId}/engagements":{"get":{"tags":["Social Topics"],"summary":"Get post-level engagements","description":"Returns all engagers for a specific LinkedIn post within an enterprise-only topic search with no deduplication. Results reflect the immediate hydration run after topic creation plus the ongoing Day 1, Day 3, and Day 5 engagement backfill schedule. This endpoint is free to read.","parameters":[{"schema":{"type":"string","description":"Topic search ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"LinkedIn post ID"},"required":true,"name":"postId","in":"path"},{"schema":{"type":"integer","minimum":1,"default":1,"description":"Page number"},"required":false,"name":"page","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":10,"description":"Items per page"},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Paginated post engagers","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetTopicPostEngagementsResponse"}}}}}}},"/v1/usage":{"get":{"tags":["Usage"],"summary":"Get usage summary","description":"Returns usage metrics for the authenticated organisation: credits consumed, active monitors, results collected. Filterable by date range. No credits charged.","parameters":[{"schema":{"type":"string","description":"Start date (ISO 8601). Defaults to start of current billing month."},"required":false,"name":"from","in":"query"},{"schema":{"type":"string","description":"End date (ISO 8601). Defaults to now."},"required":false,"name":"to","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Usage summary","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetUsageResponse"}}}}}}},"/v1/x-post/comments":{"post":{"tags":["X Post Comments"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrl":{"type":"string","description":"The X post URL to get comments from. ex: 'https://x.com/user/status/1234567890'"},"maxComments":{"type":"integer","minimum":1,"maximum":1000,"default":50,"description":"Maximum number of comments to fetch (defaults to 50, max 1000)"}},"required":["postUrl"]}}}},"responses":{"200":{"description":"Successfully retrieved X post comments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetXPostCommentsResponse"}}}}}}},"/v1/x-post/engagements":{"post":{"tags":["X Post Engagements"],"summary":"Get engagements (likes) for an X post","description":"Returns the list of users who liked a given X post. Requires a connected X account on the organisation. One credit is charged per engagement returned.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"postUrl":{"type":"string","description":"The X post URL to get engagements (likes) from. ex: 'https://x.com/user/status/1234567890'"},"maxEngagements":{"type":"integer","minimum":1,"maximum":1000,"default":50,"description":"Maximum number of engagements to fetch (defaults to 50, max 1000)"}},"required":["postUrl"]}}}},"responses":{"200":{"description":"Successfully retrieved X post engagements","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetXPostEngagementsResponse"}}}}}}},"/v1/x-user/enrich":{"post":{"tags":["X User Enrichment"],"parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1,"description":"X/Twitter username (handle) without the @ symbol"}},"required":["username"]}}}},"responses":{"200":{"description":"Successfully enriched X user profile","content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnrichXUserResponse"}}}}}}},"/v1/x/like-post":{"post":{"tags":["X Actions"],"summary":"Like a post on X","description":"Like a post using the specified X account. Costs 1 credit.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tweet_id":{"type":"string","minLength":1},"account_id":{"type":"string","minLength":1}},"required":["tweet_id"]}}}},"responses":{"200":{"description":"Post liked successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/reply":{"post":{"tags":["X Actions"],"summary":"Reply to a post on X","description":"Reply to a post using the specified X account. Costs 1 credit.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tweet_id":{"type":"string","minLength":1},"text":{"type":"string","minLength":1,"maxLength":280},"account_id":{"type":"string","minLength":1}},"required":["tweet_id","text"]}}}},"responses":{"200":{"description":"Reply posted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/repost":{"post":{"tags":["X Actions"],"summary":"Repost a post on X","description":"Repost a post using the specified X account. Costs 1 credit.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tweet_id":{"type":"string","minLength":1},"account_id":{"type":"string","minLength":1}},"required":["tweet_id"]}}}},"responses":{"200":{"description":"Post reposted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/delete-post":{"post":{"tags":["X Actions"],"summary":"Delete a post on X","description":"Delete a post using the specified X account. Costs 1 credit. You can only delete your own posts.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"tweet_id":{"type":"string","minLength":1},"account_id":{"type":"string","minLength":1}},"required":["tweet_id"]}}}},"responses":{"200":{"description":"Post deleted successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/create-post":{"post":{"tags":["X Actions"],"summary":"Create a new post on X","description":"Create a new post. Supports optional polls. Costs 1 credit.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"type":"string","minLength":1,"maxLength":280},"poll_options":{"type":"array","items":{"type":"string","minLength":1},"minItems":2,"maxItems":4},"poll_duration_minutes":{"type":"integer","minimum":5,"maximum":10080},"media_ids":{"type":"array","items":{"type":"string","minLength":1},"maxItems":4},"account_id":{"type":"string","minLength":1}},"required":["text"]}}}},"responses":{"200":{"description":"Post created successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/follow":{"post":{"tags":["X Actions"],"summary":"Follow a user on X","description":"Follow a user using the specified X account. Costs 1 credit.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"target_user_id":{"type":"string","minLength":1},"account_id":{"type":"string","minLength":1}},"required":["target_user_id"]}}}},"responses":{"200":{"description":"User followed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/send-dm":{"post":{"tags":["X Actions"],"summary":"Send a direct message on X","description":"Send a DM to a user. Costs 2 credits. Requires X Pro tier.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"user_id":{"type":"string","minLength":1},"text":{"type":"string","minLength":1,"maxLength":10000},"account_id":{"type":"string","minLength":1}},"required":["user_id","text"]}}}},"responses":{"200":{"description":"Direct message sent successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"action":{"type":"string"},"entity_id":{"type":"string"},"url":{"type":"string"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"already_done":{"type":"boolean"},"pending_follow":{"type":"boolean"},"daily_actions_remaining":{"type":"number"},"rate_limit_remaining":{"type":"number"},"rate_limit_reset":{"type":"string"},"retry_after_seconds":{"type":"number"}},"required":["success","action","credits_used"]}}}}}}},"/v1/x/lookup-user":{"post":{"tags":["X Actions"],"summary":"Look up an X user by username","description":"Look up an X user by username to get their user ID. Costs 1 credit.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"username":{"type":"string","minLength":1}},"required":["username"]}}}},"responses":{"200":{"description":"User found successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"user_id":{"type":"string"},"username":{"type":"string"},"name":{"type":"string"},"bio":{"type":"string"},"follower_count":{"type":"number"},"following_count":{"type":"number"},"credits_used":{"type":"number"},"credits_remaining":{"type":"number"},"daily_actions_remaining":{"type":"number"}},"required":["success","user_id","username","name","credits_used"]}}}}}}},"/v1/x/accounts":{"get":{"tags":["X Actions"],"summary":"List connected X accounts","description":"List all connected X accounts for the authenticated organisation. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Connected accounts listed successfully","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"accounts":{"type":"array","items":{"type":"object","properties":{"account_id":{"type":"string"},"username":{"type":"string"},"display_name":{"type":["string","null"]}},"required":["account_id","username","display_name"]}}},"required":["success","accounts"]}}}}}}},"/v1/x/connect":{"get":{"tags":["X Actions"],"summary":"Get X account connection URL and status","description":"Returns the URL to connect an X account and the current connection status. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Connection URL and status","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"},"connected":{"type":"boolean"},"url":{"type":"string"},"authorize_url":{"type":"string"},"message":{"type":"string"}},"required":["success","connected","url","message"]}}}}}}},"/v1/org/list":{"get":{"tags":["Organisation"],"summary":"List organisations","description":"Returns all organisations the authenticated user has access to (owned and member).","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Organisation list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListOrgsResponse"}}}}}}},"/v1/org":{"get":{"tags":["Organisation"],"summary":"Get organisation details","description":"Returns the authenticated user's organisation including name, plan, subscription status, and member count. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Organisation details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetOrgResponse"}}}}}}},"/v1/account":{"get":{"tags":["Account"],"summary":"Get account meta","description":"Returns meta information for the authenticated API key: subscription plan and status, the rate-limit tier and per-minute request limit applied to this key, the key's permissions, and test-mode flag. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Account meta","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetAccountResponse"}}}}}}},"/v1/credits/balance":{"get":{"tags":["Credits"],"summary":"Get credit balance","description":"Returns the current credit balance, subscription plan, and next reset date. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Credit balance","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCreditBalanceResponse"}}}}}}},"/v1/credits/usage":{"get":{"tags":["Credits"],"summary":"Get credit usage history","description":"Returns individual credit consumption records for the last N days. No credits charged.","parameters":[{"schema":{"type":"string","description":"Number of days to look back (1-365, default: 30)"},"required":false,"name":"days","in":"query"},{"schema":{"type":"string","description":"Max records to return (1-500, default: 100)"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Number of records to skip (default: 0)"},"required":false,"name":"offset","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Credit usage records","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCreditUsageResponse"}}}}}}},"/v1/credits/breakdown":{"get":{"tags":["Credits"],"summary":"Get credit usage breakdown","description":"Returns credit usage aggregated by feature for the last N days. No credits charged.","parameters":[{"schema":{"type":"string","description":"Number of days to look back (1-365, default: 30)"},"required":false,"name":"days","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Credit breakdown by feature","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetCreditBreakdownResponse"}}}}}}},"/v1/workflow-tables":{"post":{"tags":["Workflow Tables"],"summary":"Create a workflow table","description":"Creates a new workflow table for storing agent memory. Charges 0 credits.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowTableBody"}}}},"responses":{"201":{"description":"Created workflow table","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowTableResponse"}}}}}},"get":{"tags":["Workflow Tables"],"summary":"List workflow tables","description":"Lists all workflow tables for the authenticated organisation. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"List of workflow tables","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkflowTablesResponse"}}}}}}},"/v1/workflows":{"post":{"tags":["Workflows"],"summary":"Create a workflow","description":"Creates a new workflow from a JSON definition. Charges 0 credits.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowBody"}}}},"responses":{"201":{"description":"Created workflow","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateWorkflowResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"List workflows","description":"Lists workflows with pagination and optional status filter. No credits charged.","parameters":[{"schema":{"type":"string","description":"Max results (1-100, default 20)"},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Offset (default 0)"},"required":false,"name":"offset","in":"query"},{"schema":{"type":"string","enum":["DRAFT","PUBLISHED"],"description":"Filter by status (DRAFT or PUBLISHED)"},"required":false,"name":"status","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Paginated workflow list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListWorkflowsResponse"}}}}}}},"/v1/workflows/actions":{"get":{"tags":["Workflows"],"summary":"List available workflow actions","description":"Returns all available workflow action kinds with their inputs, outputs, and metadata. No credits charged.","parameters":[{"schema":{"type":"string","enum":["ai","enrichment","crm","messaging","social","control_flow","utility","integration","other","control-flow","integrations","utilities","database"],"description":"Filter by category. Canonical values: ai, enrichment, crm, messaging, social, control_flow, utility, integration, other. Legacy aliases like control-flow, integrations, and utilities are also accepted."},"required":false,"name":"category","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Action list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListActionsResponse"}}}}}}},"/v1/workflows/examples":{"get":{"tags":["Workflows"],"summary":"List example workflows","description":"Returns example workflow definitions demonstrating common patterns. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Example workflows","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExamplesResponse"}}}}}}},"/v1/workflows/triggers":{"get":{"tags":["Workflows"],"summary":"List available workflow triggers","description":"Returns all available workflow trigger kinds with their inputs, outputs, and agent guidance. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Trigger list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListTriggersResponse"}}}}}}},"/v1/workflows/{id}":{"get":{"tags":["Workflows"],"summary":"Get a workflow","description":"Returns a single workflow by ID. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Workflow detail","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetWorkflowResponse"}}}}}},"patch":{"tags":["Workflows"],"summary":"Update a workflow","description":"Partially updates a workflow. Only provided fields are changed. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowBody"}}}},"responses":{"200":{"description":"Updated workflow","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkflowResponse"}}}}}},"delete":{"tags":["Workflows"],"summary":"Delete a workflow","description":"Soft-deletes a workflow. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Deletion confirmation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteWorkflowResponse"}}}}}}},"/v1/workflows/{id}/draft":{"put":{"tags":["Workflows"],"summary":"Upsert workflow draft","description":"Creates or updates the draft for a workflow. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertDraftBody"}}}},"responses":{"200":{"description":"Upserted draft","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertDraftResponse"}}}}}},"get":{"tags":["Workflows"],"summary":"Get workflow draft","description":"Returns the current draft for a workflow. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Workflow draft","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetDraftResponse"}}}}}},"delete":{"tags":["Workflows"],"summary":"Delete workflow draft","description":"Removes the draft for a workflow. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Deletion confirmation","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDraftResponse"}}}}}}},"/v1/workflows/{id}/test":{"post":{"tags":["Workflows"],"summary":"Test a workflow","description":"Triggers a test execution of the workflow. Returns a test run ID for polling status.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestWorkflowBody"}}}},"responses":{"200":{"description":"Test run initiated","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TestWorkflowResponse"}}}}}}},"/v1/workflows/{id}/executions":{"get":{"tags":["Workflows"],"summary":"List workflow executions","description":"Returns paginated execution logs for a workflow. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Page number (default 1)"},"required":false,"name":"page","in":"query"},{"schema":{"type":"string","description":"Page size (1-100, default 20)"},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Paginated execution list","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListExecutionsResponse"}}}}}}},"/v1/workflows/{id}/executions/{runId}":{"get":{"tags":["Workflows"],"summary":"Get execution detail","description":"Returns a single execution log with its ordered step details. No credits charged.","parameters":[{"schema":{"type":"string","description":"Workflow ID"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Execution run ID"},"required":true,"name":"runId","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Execution detail with steps","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetExecutionResponse"}}}}}}},"/v1/integrations":{"get":{"tags":["Integrations"],"summary":"List connected integrations","description":"Returns all OAuth and API-key integrations connected for the workspace. No credits charged.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Connected integrations","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListIntegrationsResponse"}}}}}}},"/v1/integrations/{type}/health":{"get":{"tags":["Integrations"],"summary":"Check integration health","description":"Validates OAuth token freshness. Optional crm-fields probe for HubSpot, Attio, Salesforce.","parameters":[{"schema":{"type":"string","enum":["slack","hubspot","attio","salesforce","linear","notion","airtable","google_sheets","gmail"],"description":"OAuth integration type"},"required":true,"name":"type","in":"path"},{"schema":{"type":"string","enum":["none","crm-fields"],"description":"Optional probe (crm-fields for CRM types)"},"required":false,"name":"probe","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Health status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthResponse"}}}}}}},"/v1/integrations/slack/channels":{"get":{"tags":["Integrations"],"summary":"List Slack channels","description":"Returns channels from the connected Slack workspace.","parameters":[{"schema":{"type":"string","description":"Filter by name"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string","description":"Only channels bot is member of"},"required":false,"name":"member_only","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Slack channels","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}}}}},"/v1/integrations/slack/users":{"get":{"tags":["Integrations"],"summary":"List Slack users","description":"Returns users from the connected Slack workspace.","parameters":[{"schema":{"type":"string","description":"Filter by name"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Slack users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackUsersResponse"}}}}}}},"/v1/integrations/{type}/crm-fields":{"get":{"tags":["Integrations"],"summary":"Get CRM field schemas","description":"Returns contacts and companies field schemas for HubSpot, Attio, or Salesforce.","parameters":[{"schema":{"type":"string","enum":["hubspot","attio","salesforce"],"description":"CRM type (hubspot, attio, salesforce)"},"required":true,"name":"type","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"CRM fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmFieldsResponse"}}}}}}},"/v1/integrations/crm-field-options":{"get":{"tags":["Integrations"],"summary":"Get CRM field options (Attio)","description":"Returns select/multiselect options for an Attio field.","parameters":[{"schema":{"type":"string","enum":["contacts","companies"],"description":"Object type (contacts or companies)"},"required":true,"name":"object_type","in":"query"},{"schema":{"type":"string","description":"Field slug (for Attio select/multiselect fields)"},"required":true,"name":"field_slug","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Field options","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CrmFieldOptionsResponse"}}}}}}},"/v1/integrations/linear/teams":{"get":{"tags":["Integrations"],"summary":"List Linear teams","description":"Returns all Linear teams.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Linear teams","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearTeamsResponse"}}}}}}},"/v1/integrations/linear/users":{"get":{"tags":["Integrations"],"summary":"List Linear users","description":"Returns Linear users, optionally filtered by team or search query.","parameters":[{"schema":{"type":"string","description":"Filter by team"},"required":false,"name":"team_id","in":"query"},{"schema":{"type":"string","description":"Filter by name"},"required":false,"name":"search","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Linear users","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearUsersResponse"}}}}}}},"/v1/integrations/linear/states":{"get":{"tags":["Integrations"],"summary":"List Linear workflow states","description":"Returns workflow states for a Linear team.","parameters":[{"schema":{"type":"string","description":"Team ID (required)"},"required":true,"name":"team_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Linear states","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinearStatesResponse"}}}}}}},"/v1/integrations/notion/databases":{"get":{"tags":["Integrations"],"summary":"List Notion databases","description":"Returns Notion databases, optionally filtered by title.","parameters":[{"schema":{"type":"string","description":"Search databases by title"},"required":false,"name":"query","in":"query"},{"schema":{"type":"string","description":"Max results (1-100, default 100)"},"required":false,"name":"page_size","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Notion databases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionDatabasesResponse"}}}}}}},"/v1/integrations/notion/databases/{database_id}/schema":{"get":{"tags":["Integrations"],"summary":"Get Notion database schema","description":"Returns the properties/schema for a Notion database.","parameters":[{"schema":{"type":"string","description":"Notion database ID"},"required":true,"name":"database_id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Notion schema","content":{"application/json":{"schema":{"$ref":"#/components/schemas/NotionSchemaResponse"}}}}}}},"/v1/integrations/airtable/bases":{"get":{"tags":["Integrations"],"summary":"List Airtable bases","description":"Returns all Airtable bases.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Airtable bases","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AirtableBasesResponse"}}}}}}},"/v1/integrations/airtable/bases/{base_id}/tables":{"get":{"tags":["Integrations"],"summary":"List Airtable tables","description":"Returns tables in an Airtable base.","parameters":[{"schema":{"type":"string","description":"Airtable base ID"},"required":true,"name":"base_id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Airtable tables","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AirtableTablesResponse"}}}}}}},"/v1/integrations/airtable/fields":{"get":{"tags":["Integrations"],"summary":"Get Airtable table fields","description":"Returns field/column definitions for an Airtable table.","parameters":[{"schema":{"type":"string","description":"Airtable base ID"},"required":true,"name":"base_id","in":"query"},{"schema":{"type":"string","description":"Airtable table ID"},"required":true,"name":"table_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Airtable fields","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AirtableFieldsResponse"}}}}}}},"/v1/integrations/google-sheets/documents":{"get":{"tags":["Integrations"],"summary":"List Google Sheets documents","description":"Returns Google Sheets spreadsheets.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Google Sheets documents","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleSheetsDocumentsResponse"}}}}}}},"/v1/integrations/google-sheets/documents/{document_id}/sheets":{"get":{"tags":["Integrations"],"summary":"List sheets in a document","description":"Returns sheets within a Google Sheets spreadsheet.","parameters":[{"schema":{"type":"string","description":"Google Sheets document (spreadsheet) ID"},"required":true,"name":"document_id","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Sheets","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleSheetsSheetsResponse"}}}}}}},"/v1/integrations/google-sheets/columns":{"get":{"tags":["Integrations"],"summary":"Get sheet column headers","description":"Returns column headers for a specific sheet.","parameters":[{"schema":{"type":"string","description":"Google Sheets document ID"},"required":true,"name":"document_id","in":"query"},{"schema":{"type":"string","description":"Sheet ID within the document"},"required":true,"name":"sheet_id","in":"query"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Columns","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GoogleSheetsColumnsResponse"}}}}}}},"/v1/integrations/{type}/campaigns":{"get":{"tags":["Integrations"],"summary":"List campaigns","description":"Returns campaigns for Instantly, Smartleads, or HeyReach.","parameters":[{"schema":{"type":"string","enum":["instantly","smartleads","heyreach"],"description":"Campaign tool type (instantly, smartleads, heyreach)"},"required":true,"name":"type","in":"path"},{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Campaigns","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CampaignsResponse"}}}}}}},"/v1/integrations/audiences":{"get":{"tags":["Integrations"],"summary":"List audiences","description":"Returns LaGrowthMachine audiences.","parameters":[{"schema":{"type":"string"},"required":false,"name":"x-api-key","in":"header"}],"responses":{"200":{"description":"Audiences","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AudiencesResponse"}}}}}}}},"webhooks":{}}