{"openapi":"3.0.3","info":{"title":"Valley Public API","description":"This is the official Public API Documentation. It allows you to manage your outreach campaigns, monitor analytics, and integrate with third-party tools.","version":"1.0.0"},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key","description":"Your Valley API key."}},"schemas":{}},"paths":{"/public/v1/campaigns/get-all":{"get":{"tags":["Campaigns"],"description":"List campaigns. Workspace members see only their own campaigns. Workspace admins and owners see all campaigns in the workspace.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false,"description":"Maximum number of records to return (1–100, default 20)."},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false,"description":"Number of records to skip. Capped at 1,000."},{"schema":{"type":"string","enum":["newest","oldest"],"default":"newest"},"in":"query","name":"sort","required":false,"description":"Sort order. newest = created_at desc (default), oldest = created_at asc."},{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Scope results to a specific workspace. Admins and owners will see all campaigns in the workspace; members will see only their own."},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaigns":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"templated":{"type":"boolean"},"created_at":{"type":"string"},"outreach_count_per_day":{"type":"number"},"total_prospects":{"type":"number"},"workspace_id":{"type":"string"},"workspace_name":{"type":"string"},"campaign_profiles_type":{"type":"string"},"campaign_input_type":{"type":"string"},"total_prospects_contacted":{"type":"number"},"total_meetings_booked":{"type":"number"},"acceptance_rate":{"type":"number"},"response_rate":{"type":"number"},"campaign_owner_id":{"type":"string"},"campaign_owner_name":{"type":"string"},"sending_times":{"type":"object","additionalProperties":true},"template":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"writing_style":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"workspace_product":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns":{"post":{"tags":["Campaigns"],"description":"Create a new outreach campaign.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["name","type","mode","workspaceId","workspaceProductId","outreachCountPerDay","autoPilot","inputType"],"properties":{"name":{"type":"string","minLength":1,"maxLength":255},"type":{"type":"string","enum":["MESSAGING","FIRST_DEGREE_MESSAGE","INMAIL"]},"mode":{"type":"string","enum":["AI","TEMPLATED"]},"workspaceId":{"type":"string","minLength":1},"workspaceProductId":{"type":"string","minLength":1},"writingStyleId":{"type":"string","minLength":1},"templateId":{"type":"string","minLength":1},"outreachCountPerDay":{"type":"integer","minimum":1},"autoPilot":{"type":"boolean"},"outreachLanguage":{"type":"string","enum":["English","Spanish","French","German","Chinese","Portuguese","Arabic","Hindi","Turkish","Italian","Bengali","Russian","Urdu","Indonesian","Japanese","Korean","Vietnamese","Egyptian","Thai","Polish"]},"includedProfiles":{"type":"string"},"withdrawRequestAfter":{"type":"integer","minimum":1},"isBlankConnect":{"type":"boolean"},"followUpConfig":{"type":"object","properties":{"f_1":{"type":"integer","minimum":0},"f_2":{"type":"integer","minimum":0},"f_3":{"type":"integer","minimum":0},"f_4":{"type":"integer","minimum":0},"f_5":{"type":"integer","minimum":0},"f_6":{"type":"integer","minimum":0},"f_7":{"type":"integer","minimum":0},"f_8":{"type":"integer","minimum":0},"f_9":{"type":"integer","minimum":0},"f_10":{"type":"integer","minimum":0}},"additionalProperties":false},"reEngagementConfig":{"type":"object","properties":{"r_1":{"type":"integer","minimum":0},"r_2":{"type":"integer","minimum":0},"r_3":{"type":"integer","minimum":0},"r_4":{"type":"integer","minimum":0},"r_5":{"type":"integer","minimum":0},"r_6":{"type":"integer","minimum":0},"r_7":{"type":"integer","minimum":0},"r_8":{"type":"integer","minimum":0},"r_9":{"type":"integer","minimum":0},"r_10":{"type":"integer","minimum":0},"r_11":{"type":"integer","minimum":0},"r_12":{"type":"integer","minimum":0}},"additionalProperties":false},"prospectEnrichmentConfig":{"type":"array","items":{"type":"string"},"maxItems":5},"inputType":{"type":"string","enum":["SALES_NAV_SEARCH_URL","LINKEDIN_POST_URL"]},"inputUrl":{"type":"string","minLength":1},"scrapeReactions":{"type":"boolean"},"scrapeComments":{"type":"boolean"}},"additionalProperties":false},"examples":{"AI Campaign":{"summary":"AI-personalised campaign (sample payload)","description":"`AI mode` — Valley generates a unique, personalised message for every prospect using the chosen writing style. Requires `writingStyleId` and `outreachLanguage`. Optional: `prospectEnrichmentConfig`.\n\nRe-engagement values must be one of: 1, 2, 3, 5, 8, 13, 21.\n\n`prospectEnrichmentConfig` runs deep research agents before message generation (max 5). Available agents:\n- `prospect_deep_dive` — Prospect background & career history\n- `company_deep_dive` — Company overview & business model\n- `hiring_trends` — Recent hiring patterns\n- `corporate_culture` — Company culture & values\n- `company_financial_performance` — Revenue, growth & financials\n- `leadership_team` — Key executives & leadership\n- `product_service_deep_dive` — Product/service analysis\n- `company_market_share` — Market position & share\n- `office_locations` — Office & geographic presence\n- `partnerships` — Strategic partnerships & alliances\n- `mergers_acquisitions` — M&A history & activity\n- `fundraising_history` — Funding rounds & investors\n- `company_customer_reviews` — Customer sentiment & reviews\n- `industry_news_deep_dive` — Latest industry news\n- `industry_growth_projections` — Industry growth outlook\n- `industry_challenges` — Key industry challenges\n- `industry_opportunities` — Emerging opportunities\n- `competitor_overview_news` — Competitor landscape & news\n- `industry_key_players` — Major players in the industry\n- `recent_news` — Recent company news\n- `press_releases` — Latest press releases\n- `newsletter_blogs` — Company newsletters & blogs\n- `location_economic_indicators` — Local economic context\n- `industry_regulatory_landscape` — Regulatory environment\n\nAvailable `inputType` values (must be paired with `inputUrl`):\n- `SALES_NAV_SEARCH_URL` — Import prospects from a LinkedIn Sales Navigator or standard people-search URL (`linkedin.com/sales/search/people/` or `linkedin.com/search/results/people/`). Truncated URLs containing \"[...]\" are rejected.\n- `LINKEDIN_POST_URL` — Import prospects who engaged with a LinkedIn post (`linkedin.com/posts/`). Use `scrapeReactions: true` and/or `scrapeComments: true` to control which engagement types are collected.","value":{"name":"Q2 SaaS Outreach - AI","type":"MESSAGING","mode":"AI","workspaceId":"cmnz1tlkq0005shcy1f66wba1","workspaceProductId":"cmnz3456t0005shcy1f66wbap","writingStyleId":"cmnz1tlkq0005shcy1f66wcxw","outreachCountPerDay":20,"autoPilot":true,"outreachLanguage":"English","includedProfiles":"ALL","withdrawRequestAfter":21,"isBlankConnect":false,"followUpConfig":{"f_1":3,"f_2":7,"f_3":14},"reEngagementConfig":{"r_1":13,"r_2":21},"prospectEnrichmentConfig":["prospect_deep_dive","company_deep_dive","recent_news"],"inputType":"SALES_NAV_SEARCH_URL","inputUrl":"https://www.linkedin.com/sales/search/people/?query=(spellCorrectionEnabled%3Atrue%2Cfilters%3AList((type%3ACURRENT_TITLE%2Cvalues%3AList((id%3A9%2Ctext%3ACEO%2CselectionType%3AINCLUDED)))))"}},"Templated Campaign":{"summary":"Fixed-template campaign (sample payload)","description":"`TEMPLATED mode` — Every prospect receives the same fixed message from the chosen template.\n\nThis  requires `templateId`; The template type must match the campaign type.\n\nAvailable `inputType` values (must be paired with `inputUrl`):\n- `SALES_NAV_SEARCH_URL` — Import prospects from a LinkedIn Sales Navigator or standard people-search URL (`linkedin.com/sales/search/people/` or `linkedin.com/search/results/people/`). Truncated URLs containing \"[...]\" are rejected.\n- `LINKEDIN_POST_URL` — Import prospects who engaged with a LinkedIn post. The URL must contain an extractable post id (`activity-`, `ugcPost-`, or `share-` followed by a 19-digit id, or `feed/update/urn:li:...`). Shortened `lnkd.in` links are rejected. Use `scrapeReactions: true` and/or `scrapeComments: true` to control which engagement types are collected.","value":{"name":"Q2 SaaS Outreach - Templated","type":"MESSAGING","mode":"TEMPLATED","workspaceId":"cmnz1tlkq0005shcy1f66wba1","workspaceProductId":"cmnz3456t0005shcy1f66wbap","templateId":"cmzw1234t0005shcy1f66abcd","outreachCountPerDay":20,"autoPilot":false,"outreachLanguage":"English","includedProfiles":"ALL","withdrawRequestAfter":21,"isBlankConnect":false,"followUpConfig":{"f_1":3,"f_2":7},"reEngagementConfig":{"r_1":13,"r_2":21},"inputType":"LINKEDIN_POST_URL","inputUrl":"https://www.linkedin.com/posts/valley-ai_outreach-activity-7480360498425688064-abcd/","scrapeReactions":true,"scrapeComments":true}}}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}":{"patch":{"tags":["Campaigns"],"description":"Update a campaign's settings.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","minProperties":1,"properties":{"name":{"type":"string","minLength":1,"maxLength":255},"outreachCountPerDay":{"type":"integer","minimum":1},"autoPilot":{"type":"boolean"},"withdrawRequestAfter":{"type":"integer","minimum":1},"reEngagementConfig":{"type":"object","properties":{"r_1":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_2":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_3":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_4":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_5":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_6":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_7":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_8":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_9":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_10":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_11":{"type":"integer","enum":[1,2,3,5,8,13,21]},"r_12":{"type":"integer","enum":[1,2,3,5,8,13,21]}},"additionalProperties":false}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"outreach_count_per_day":{"type":"number"},"auto_pilot":{"type":"boolean"},"withdraw_request_after":{"type":"number","nullable":true},"re_engagement_config":{"type":"object","additionalProperties":true},"status":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"get":{"tags":["Campaigns"],"description":"Retrieve a single campaign by ID. Workspace admins and owners can access other workspace members campaigns.","parameters":[{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"type":{"type":"string"},"templated":{"type":"boolean"},"created_at":{"type":"string"},"outreach_count_per_day":{"type":"number"},"total_prospects":{"type":"number"},"workspace_id":{"type":"string"},"workspace_name":{"type":"string"},"campaign_profiles_type":{"type":"string"},"campaign_input_type":{"type":"string","nullable":true},"total_prospects_contacted":{"type":"number"},"total_meetings_booked":{"type":"number"},"acceptance_rate":{"type":"number"},"response_rate":{"type":"number"},"campaign_owner_id":{"type":"string"},"campaign_owner_name":{"type":"string"},"sending_times":{"type":"object","additionalProperties":true},"template":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"writing_style":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}},"workspace_product":{"nullable":true,"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/add-lead-to-campaign":{"post":{"tags":["Campaigns"],"description":"Add a prospect to a campaign by LinkedIn URL. Returns an import job ID for async tracking. Workspace admins and owners can add prospects to campaigns owned by other workspace members.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["campaignId","linkedinProfileUrl"],"properties":{"campaignId":{"type":"string"},"linkedinProfileUrl":{"type":"string"}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"importJobId":{"type":"string","nullable":true}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}/pause":{"post":{"tags":["Campaigns"],"description":"Pause a running campaign.","parameters":[{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}/resume":{"post":{"tags":["Campaigns"],"description":"Resume a paused campaign.","parameters":[{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}/archive":{"post":{"tags":["Campaigns"],"description":"Archive a campaign. This is a one-way terminal action.","parameters":[{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}/start":{"post":{"tags":["Campaigns"],"description":"Start a campaign that is in TRAINING status.","parameters":[{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspace-products":{"get":{"tags":["Workspaces"],"description":"List workspace products used as context for AI-generated outreach.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"workspace_products":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"post":{"tags":["Workspaces"],"description":"Create a new workspace product used as context for AI-generated outreach.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceId","name","description","painPoints","valueProposition","proofPoints"],"properties":{"workspaceId":{"type":"string","minLength":1,"description":"ID of the workspace to create the product in."},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Product or company name."},"description":{"type":"string","minLength":1,"description":"Short description of what you offer."},"painPoints":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Customer pain points your product addresses."},"valueProposition":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Key value propositions of your product."},"proofPoints":{"type":"array","items":{"type":"string","minLength":1},"minItems":1,"description":"Social proof, case studies, or stats that back your claims."},"cta":{"type":"string","minLength":1,"description":"Optional. Call-to-action text used in outreach messages."},"meetingLink":{"type":"string","minLength":1,"description":"Optional. Booking or meeting link to include in outreach."},"outreachLanguage":{"type":"string","minLength":1,"description":"Optional. Language for outreach messages (e.g. \"English\", \"French\"). Defaults to \"English\"."},"websiteUrl":{"type":"string","description":"Optional. Company / website URL (shown as \"Company URL\" in Studio)."},"productUrl":{"type":"string","description":"Optional. Product URL."},"customerProfile":{"type":"string","description":"Optional. Ideal Customer Profile (ICP). Free text; Studio uses an \"ALWAYS SCORE HIGH: / ALWAYS SCORE LOW:\" convention inside this text to drive prospect scoring."},"competitors":{"type":"string","description":"Optional. Competitors, as free text."},"extraMaterials":{"type":"array","items":{"type":"string"},"description":"Optional additional context or materials for AI message generation."},"qna":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}},"required":["question","answer"]},"description":"Optional Q&A pairs that give the AI more context about your product."},"accessScope":{"type":"string","enum":["OWNER","WORKSPACE"],"description":"Who can use this product. OWNER = private to you; WORKSPACE = shared across the workspace (ADMIN/OWNER only)."}},"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"workspace_product":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"access_scope":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspace-products/{id}":{"get":{"tags":["Workspaces"],"description":"Get a single workspace product by id, including its pitch rules.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"workspace_product":{"type":"object","properties":{"id":{"type":"string"},"workspace_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"pain_points":{"type":"array","items":{"type":"string"}},"value_proposition":{"type":"array","items":{"type":"string"}},"proof_points":{"type":"array","items":{"type":"string"}},"cta":{"type":"string"},"meeting_link":{"type":"string"},"outreach_language":{"type":"string"},"website_url":{"type":["null","string"]},"product_url":{"type":["null","string"]},"customer_profile":{"type":["null","string"]},"competitors":{"type":["null","string"]},"extra_materials":{"type":"array","items":{"type":"string"}},"qna":{"type":"array","items":{"type":"object","additionalProperties":true}},"access_scope":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"pitch_rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"rule":{"type":"string"},"is_do":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"patch":{"tags":["Workspaces"],"description":"Update a workspace product. Only the fields you send are changed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"description":{"type":"string"},"painPoints":{"type":"array","items":{"type":"string"}},"valueProposition":{"type":"array","items":{"type":"string"}},"proofPoints":{"type":"array","items":{"type":"string"}},"cta":{"type":"string"},"meetingLink":{"type":"string"},"outreachLanguage":{"type":"string"},"websiteUrl":{"type":"string","description":"Company / website URL."},"productUrl":{"type":"string"},"customerProfile":{"type":"string","description":"Ideal Customer Profile (ICP), free text."},"competitors":{"type":"string"},"extraMaterials":{"type":"array","items":{"type":"string"}},"qna":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}},"required":["question","answer"]}},"accessScope":{"type":"string","enum":["OWNER","WORKSPACE"],"description":"OWNER = private; WORKSPACE = shared (ADMIN/OWNER only)."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"workspace_product":{"type":"object","properties":{"id":{"type":"string"},"workspace_id":{"type":"string"},"name":{"type":"string"},"description":{"type":"string"},"pain_points":{"type":"array","items":{"type":"string"}},"value_proposition":{"type":"array","items":{"type":"string"}},"proof_points":{"type":"array","items":{"type":"string"}},"cta":{"type":"string"},"meeting_link":{"type":"string"},"outreach_language":{"type":"string"},"website_url":{"type":["null","string"]},"product_url":{"type":["null","string"]},"customer_profile":{"type":["null","string"]},"competitors":{"type":["null","string"]},"extra_materials":{"type":"array","items":{"type":"string"}},"qna":{"type":"array","items":{"type":"object","additionalProperties":true}},"access_scope":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"pitch_rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"rule":{"type":"string"},"is_do":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspace-products/{id}/rules":{"get":{"tags":["Workspaces"],"description":"List the pitch rules (DOs / DON'Ts) for a workspace product.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"pitch_rules":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"rule":{"type":"string"},"is_do":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"post":{"tags":["Workspaces"],"description":"Add a pitch rule (a DO or a DON'T) to a workspace product.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["rule","isDo"],"properties":{"rule":{"type":"string","minLength":1,"maxLength":800,"description":"The rule text."},"isDo":{"type":"boolean","description":"true = a DO, false = a DON'T."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"pitch_rule":{"type":"object","properties":{"id":{"type":"string"},"rule":{"type":"string"},"is_do":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}},"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"pitch_rule":{"type":"object","properties":{"id":{"type":"string"},"rule":{"type":"string"},"is_do":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspace-products/{id}/rules/{ruleId}":{"patch":{"tags":["Workspaces"],"description":"Update a pitch rule on a workspace product.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"rule":{"type":"string","minLength":1,"maxLength":800},"isDo":{"type":"boolean"}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"ruleId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"pitch_rule":{"type":"object","properties":{"id":{"type":"string"},"rule":{"type":"string"},"is_do":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"delete":{"tags":["Workspaces"],"description":"Delete a pitch rule from a workspace product.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"ruleId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/writing-styles/presets":{"get":{"tags":["Writing Styles"],"description":"Returns the built-in preset templates (dos, donts, samples). Copy a preset onto a writing style via PATCH /public/v1/writing-styles/:id.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"presets":{"type":"array","items":{"type":"object","properties":{"key":{"type":"string"},"dos":{"type":"array","items":{"type":"string"}},"donts":{"type":"array","items":{"type":"string"}},"samples":{"type":"string"}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/writing-styles":{"get":{"tags":["Writing Styles"],"description":"List writing styles available for AI-personalised campaigns.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"writing_styles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"post":{"tags":["Writing Styles"],"description":"Create a new writing style (status: PENDING). Populate `dos` and `donts` now or later via `PATCH /public/v1/writing-styles/:id`. A writing style needs rules before it can be linked to a campaign.\n\n**Required:** `workspaceId`, `name`\n\n**Optional:** `dos`, `donts`, `connectInstructions`, `inmailInstructions`, `qna`, `templateName`, `templateFollowUpConfig`, `accessScope`\n\n**accessScope:**\n- `OWNER` (default) — private to the authenticated user\n- `WORKSPACE` — shared across the workspace; only ADMIN or OWNER members can set this","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceId","name"],"properties":{"workspaceId":{"type":"string","minLength":1,"description":"ID of the workspace to create the writing style in."},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Display name for the writing style."},"dos":{"type":"array","items":{"type":"string","minLength":1},"description":"List of things the AI should do when writing in this style."},"donts":{"type":"array","items":{"type":"string","minLength":1},"description":"List of things the AI should avoid when writing in this style."},"connectInstructions":{"type":"string","description":"Type any custom instructions here — tone preferences, message length guidelines, personalization rules, or any other direction for how your connect sequences should be written."},"inmailInstructions":{"type":"string","description":"Type any custom instructions here — tone preferences, message length guidelines, personalization rules, or any other direction for how your InMail sequences should be written."},"qna":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}},"required":["question","answer"]},"description":"Optional Q&A pairs that give the AI additional context about your tone and preferences."},"templateName":{"type":"string","description":"Optional template label (e.g. \"Executive\", \"Startup\") used to categorise the style."},"templateFollowUpConfig":{"type":"object","description":"Follow-up timing config (days between touches). Keys are f_1 through f_10; use 0 to skip a step.","properties":{"f_1":{"type":"integer","minimum":0,"default":0},"f_2":{"type":"integer","minimum":0,"default":0},"f_3":{"type":"integer","minimum":0,"default":0},"f_4":{"type":"integer","minimum":0,"default":0},"f_5":{"type":"integer","minimum":0,"default":0},"f_6":{"type":"integer","minimum":0,"default":0},"f_7":{"type":"integer","minimum":0,"default":0},"f_8":{"type":"integer","minimum":0,"default":0},"f_9":{"type":"integer","minimum":0,"default":0},"f_10":{"type":"integer","minimum":0,"default":0}},"additionalProperties":false},"accessScope":{"type":"string","enum":["OWNER","WORKSPACE"],"description":"Who can use this writing style. OWNER = private to you; WORKSPACE = shared across the workspace (ADMIN/OWNER only)."}},"additionalProperties":false}}}},"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"writing_style":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"access_scope":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/writing-styles/{id}":{"get":{"tags":["Writing Styles"],"description":"Get a single writing style by id, including its samples and status.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"writing_style":{"type":"object","properties":{"id":{"type":"string"},"workspace_id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"dos":{"type":"array","items":{"type":"string"}},"donts":{"type":"array","items":{"type":"string"}},"connect_sequence_example":{"type":["null","string"]},"inmail_sequence_example":{"type":["null","string"]},"email_sequence_example":{"type":["null","string"]},"qna":{"type":"array","items":{"type":"object","additionalProperties":true}},"style":{"type":["null","string"]},"template_name":{"type":["null","string"]},"template_followup_config":{"type":["null","object"],"additionalProperties":true},"access_scope":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"source":{"type":"string"},"content":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"patch":{"tags":["Writing Styles"],"description":"Update a writing style. Only the fields you send are changed.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":255},"dos":{"type":"array","items":{"type":"string"}},"donts":{"type":"array","items":{"type":"string"}},"connectSequenceExample":{"type":"string"},"inmailSequenceExample":{"type":"string"},"emailSequenceExample":{"type":"string"},"qna":{"type":"array","items":{"type":"object","properties":{"question":{"type":"string"},"answer":{"type":"string"}},"required":["question","answer"]}},"templateName":{"type":"string"},"templateFollowUpConfig":{"type":"object","properties":{"f_1":{"type":"integer","minimum":0},"f_2":{"type":"integer","minimum":0},"f_3":{"type":"integer","minimum":0},"f_4":{"type":"integer","minimum":0},"f_5":{"type":"integer","minimum":0},"f_6":{"type":"integer","minimum":0},"f_7":{"type":"integer","minimum":0},"f_8":{"type":"integer","minimum":0},"f_9":{"type":"integer","minimum":0},"f_10":{"type":"integer","minimum":0}},"additionalProperties":false},"accessScope":{"type":"string","enum":["OWNER","WORKSPACE"]}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"writing_style":{"type":"object","properties":{"id":{"type":"string"},"workspace_id":{"type":"string"},"name":{"type":"string"},"status":{"type":"string"},"dos":{"type":"array","items":{"type":"string"}},"donts":{"type":"array","items":{"type":"string"}},"connect_sequence_example":{"type":["null","string"]},"inmail_sequence_example":{"type":["null","string"]},"email_sequence_example":{"type":["null","string"]},"qna":{"type":"array","items":{"type":"object","additionalProperties":true}},"style":{"type":["null","string"]},"template_name":{"type":["null","string"]},"template_followup_config":{"type":["null","object"],"additionalProperties":true},"access_scope":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"sources":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"source":{"type":"string"},"content":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/writing-styles/{id}/samples":{"post":{"tags":["Writing Styles"],"description":"Add a writing sample (pasted CONTENT or a WEBSITE URL) to a writing style.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["type"],"properties":{"type":{"type":"string","enum":["WEBSITE","CONTENT"]},"source":{"type":"string","description":"For WEBSITE: the URL. For CONTENT: an optional label."},"content":{"type":"string","description":"For CONTENT: the pasted writing text."}},"additionalProperties":false}}}},"parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true}],"responses":{"201":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"sample":{"type":"object","properties":{"id":{"type":"string"},"type":{"type":"string"},"source":{"type":"string"},"content":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/writing-styles/{id}/samples/{sourceId}":{"delete":{"tags":["Writing Styles"],"description":"Delete a writing sample from a writing style.","parameters":[{"schema":{"type":"string","minLength":1},"in":"path","name":"id","required":true},{"schema":{"type":"string","minLength":1},"in":"path","name":"sourceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"id":{"type":"string"}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/templates":{"get":{"tags":["Templates"],"description":"List message templates. Optionally filter by workspace or campaign type.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false},{"schema":{"type":"string","enum":["MESSAGING","FIRST_DEGREE_MESSAGE","INMAIL"]},"in":"query","name":"type","required":false},{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"templates":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"workspace_id":{"type":"string"},"workspace_name":{"type":"string"},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspaces":{"get":{"tags":["Workspaces"],"description":"List all workspaces the API key can access. Keys are user-scoped: a workspace appears if the key's user is a member of it, or if it has been explicitly granted to them via /public/v1/workspace-grants. Granted-only workspaces report access: \"grant\".","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false,"description":"Number of records to skip. Capped at 1,000."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"},"access":{"type":"string","enum":["member","grant"]},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspace-grants":{"get":{"tags":["Workspaces"],"description":"List the live API workspace grants on a workspace. Requires an OWNER or ADMIN membership on that workspace (or a workspace key for it).","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspace_id","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"grants":{"type":"array","items":{"type":"object","properties":{"user_id":{"type":"string"},"user_email":{"type":"string"},"workspace_id":{"type":"string"},"granted_by_user_id":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"post":{"tags":["Workspaces"],"description":"Grant a user's API key visibility into a workspace without a workspace membership. The granted user gains MEMBER-level access on grant-aware Public API endpoints (workspace listing and endpoints resolving scope through the shared workspace-scope helpers); remaining endpoints are being rolled onto the grant-aware path. Requires an OWNER or ADMIN membership on the target workspace (or a workspace key for it) — a key can never grant itself access.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspace_id":{"type":"string"},"user_email":{"type":"string","format":"email"}},"required":["workspace_id","user_email"]}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"grant":{"type":"object","properties":{"user_id":{"type":"string"},"user_email":{"type":"string"},"workspace_id":{"type":"string"},"granted_by_user_id":{"type":"string"},"created_at":{"type":"string"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"delete":{"tags":["Workspaces"],"description":"Revoke a user's API workspace grant. Requires an OWNER or ADMIN membership on the target workspace (or a workspace key for it). Idempotent: revoking a missing or already-revoked grant succeeds.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspace_id","required":true},{"schema":{"type":"string","format":"email"},"in":"query","name":"user_email","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"revoked":{"type":"boolean"}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}/prospects":{"get":{"tags":["Campaigns"],"description":"List prospects in a campaign with filtering and pagination. Workspace admins and owners can access campaigns created on behalf of other workspace members.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"string","maxLength":200},"in":"query","name":"search","required":false},{"schema":{"type":"string"},"in":"query","name":"status","required":false},{"schema":{"type":"string"},"in":"query","name":"sort","required":false},{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"prospects":{"type":"array","items":{"type":"object","properties":{"campaign_id":{"type":"string"},"campaign_name":{"type":"string"},"id":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"sub_title":{"type":"string","nullable":true},"company_name":{"type":"string","nullable":true},"company_website":{"type":"string","nullable":true},"company_logo":{"type":"string","nullable":true},"current_position_title":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"phone_number":{"type":"string","nullable":true},"city":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"country":{"type":"string","nullable":true},"industry":{"type":"string","nullable":true},"status":{"type":"string"},"interest_level":{"type":"string","nullable":true},"icp_fit":{"type":"string","nullable":true},"icp_fit_justification":{"type":"string","nullable":true},"accepted_connection_request":{"type":"boolean"},"responded":{"type":"boolean"},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/users/me":{"get":{"tags":["Users"],"description":"Retrieve the authenticated user's profile and workspace memberships.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"user":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"created_at":{"type":"string"},"workspaces":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"role":{"type":"string"}}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/workspaces/{workspaceId}/users":{"get":{"tags":["Workspaces"],"description":"List all members of a workspace.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"users":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"email":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"image":{"type":"string","nullable":true},"role":{"type":"string"},"joined_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist":{"get":{"tags":["Warm List"],"description":"Get warmlist configuration and monitored profiles across your workspaces.","responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"warmlist":{"type":"object","properties":{"followers":{"type":"array","items":{"type":"object","properties":{"workspace_id":{"type":"string"},"workspace_name":{"type":"string"}}}},"viewers":{"type":"array","items":{"type":"object","properties":{"workspace_id":{"type":"string"},"workspace_name":{"type":"string"}}}},"engagers":{"type":"array","items":{"type":"object","properties":{"workspace_id":{"type":"string"},"workspace_name":{"type":"string"},"monitored_profiles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"profile_url":{"type":"string"},"profile_pic":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true}}}},"posts":{"type":"array","items":{"type":"object","properties":{"post_id":{"type":"string"},"post_text":{"type":"string","nullable":true},"monitored_profile_id":{"type":"string","nullable":true}}}}}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/stats":{"get":{"tags":["Analytics"],"description":"Get ICP fit stats for warmlist prospects, broken down by engagement type.","parameters":[{"schema":{"type":"string"},"in":"query","name":"icpFit","required":false,"description":"Comma-separated: low,medium,high"},{"schema":{"type":"string"},"in":"query","name":"engagementType","required":false,"description":"Comma-separated: viewers,followers,engagers"},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view stats for a specific workspace member"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"stats":{"type":"object","properties":{"profileViewers":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}},"nullable":true},"followers":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}},"nullable":true},"engagers":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}},"nullable":true}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/followers":{"get":{"tags":["Warm List"],"description":"List warmlist prospects who followed your LinkedIn page.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"string"},"in":"query","name":"sort","required":false,"description":"newest (default) or oldest"},{"schema":{"type":"string"},"in":"query","name":"icpFit","required":false,"description":"Comma-separated: low,medium,high"},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view data for a specific workspace member by their user ID"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"prospects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"headline":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"linkedin_url":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"connection_degree":{"type":"string","nullable":true},"icp_fit":{"type":"string","nullable":true},"icp_fit_justification":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}}}},"icpFit":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/viewers":{"get":{"tags":["Warm List"],"description":"List warmlist prospects who viewed your LinkedIn profile.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"string"},"in":"query","name":"sort","required":false,"description":"newest (default) or oldest"},{"schema":{"type":"string"},"in":"query","name":"icpFit","required":false,"description":"Comma-separated: low,medium,high"},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view data for a specific workspace member by their user ID"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"prospects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"headline":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"linkedin_url":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"connection_degree":{"type":"string","nullable":true},"icp_fit":{"type":"string","nullable":true},"icp_fit_justification":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true}}}},"icpFit":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/engagers":{"get":{"tags":["Warm List"],"description":"List warmlist prospects who engaged with your LinkedIn posts.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"string"},"in":"query","name":"sort","required":false,"description":"newest (default) or oldest"},{"schema":{"type":"string"},"in":"query","name":"icpFit","required":false,"description":"Comma-separated: low,medium,high"},{"schema":{"type":"string"},"in":"query","name":"monitoredProfileId","required":false,"description":"Filter by monitored profile ID"},{"schema":{"type":"string"},"in":"query","name":"postId","required":false,"description":"Filter by post ID"},{"schema":{"type":"string"},"in":"query","name":"postEngagementType","required":false,"description":"Filter by engagement type: COMMENT or REACTION"},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view data for a specific workspace member by their user ID"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"prospects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"headline":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"linkedin_url":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"connection_degree":{"type":"string","nullable":true},"icp_fit":{"type":"string","nullable":true},"icp_fit_justification":{"type":"string","nullable":true},"created_at":{"type":"string","nullable":true},"monitored_profile_id":{"type":"string","nullable":true},"post_id":{"type":"string","nullable":true},"post_text":{"type":"string","nullable":true},"post_date":{"type":"string","nullable":true},"post_engagement_type":{"type":"string","nullable":true}}}},"icpFit":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/monitored-profiles":{"get":{"tags":["Warm List"],"description":"List active monitored LinkedIn profiles for post-engagement tracking.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: list monitored profiles for a specific workspace member"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"monitored_profiles":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"profile_url":{"type":"string"},"profile_pic":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"linkedin_urn":{"type":"string","nullable":true},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"post":{"tags":["Warm List"],"description":"Add one or more LinkedIn profiles to monitor for post engagements.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["profileUrls"],"properties":{"profileUrls":{"type":"array","items":{"type":"string"},"maxItems":5,"description":"LinkedIn profile URLs to monitor. Maximum 5 per request (workspace cap)."}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"created":{"type":"number"},"errors":{"type":"array","items":{"type":"string"}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/monitored-profiles/{profileId}/posts":{"get":{"tags":["Warm List"],"description":"Get posts and engagement stats for a specific monitored profile.","parameters":[{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false},{"schema":{"type":"string"},"in":"query","name":"postEngagementType","required":false,"description":"Filter by engagement type: COMMENT or REACTION"},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view posts for a specific workspace member's monitored profile"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"profile":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"profile_url":{"type":"string"},"profile_pic":{"type":"string","nullable":true},"linkedin_urn":{"type":"string"}}},"posts":{"type":"array","items":{"type":"object","properties":{"post_id":{"type":"string"},"post_text":{"type":"string","nullable":true},"post_date":{"type":"string","nullable":true},"total_engagers":{"type":"number"},"comments_count":{"type":"number"},"reactions_count":{"type":"number"}}}},"stats":{"type":"object","properties":{"total_posts":{"type":"number"},"total_engagers":{"type":"number"},"total_comments":{"type":"number"},"total_reactions":{"type":"number"}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/prospects/{prospectId}":{"get":{"tags":["Warm List"],"description":"Get a single warmlist prospect with their full engagement history.","parameters":[{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view a specific workspace member's prospect by their user ID"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"in":"path","name":"prospectId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"prospect":{"type":"object","properties":{"id":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"headline":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"profile_picture":{"type":"string","nullable":true},"linkedin_url":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"connection_degree":{"type":"string","nullable":true},"icp_fit":{"type":"string","nullable":true},"icp_fit_justification":{"type":"string","nullable":true},"created_at":{"type":"string"},"engagements":{"type":"array","items":{"type":"object","properties":{"created_at":{"type":"string","nullable":true},"engagement_type":{"type":"string"},"monitored_profile_id":{"type":"string","nullable":true},"post_id":{"type":"string","nullable":true},"post_text":{"type":"string","nullable":true},"post_date":{"type":"string","nullable":true},"post_engagement_type":{"type":"string","nullable":true}}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/config":{"get":{"tags":["Warm List"],"description":"Get warmlist workspace settings and active engagement configs.","parameters":[{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: view config for a specific workspace member by their user ID"},{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"settings":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"workspace_id":{"type":"string"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"configs":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"engagement_type":{"type":"string"},"frequency":{"type":"string","nullable":true},"is_enabled":{"type":"boolean"},"last_sync_at":{"type":"string","nullable":true},"next_sync_at":{"type":"string","nullable":true},"last_sync_status":{"type":"string","nullable":true},"new_prospects_count":{"type":"number"},"created_at":{"type":"string"},"updated_at":{"type":"string"}}}}}},"owner":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/monitored-profiles/{profileId}":{"delete":{"tags":["Warm List"],"description":"Remove a monitored profile and delete its associated post engagement records.","parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true},{"schema":{"type":"string"},"in":"path","name":"profileId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/prospects":{"delete":{"tags":["Warm List"],"description":"Delete warmlist prospects by ID list or by filter (selectAll). When selectAll is true, engagementType is required.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prospectIds":{"type":"array","items":{"type":"string"},"description":"Specific prospect IDs to delete."},"selectAll":{"type":"boolean","description":"Delete all prospects matching the filters below."},"engagementType":{"type":"string","description":"Required when selectAll is true. One of: NEW_FOLLOWERS, PROFILE_VIEWERS, POST_ENGAGEMENTS."},"monitoredProfileId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postEngagementType":{"type":"string","description":"COMMENT or REACTION. Only for POST_ENGAGEMENTS."},"icpFit":{"type":"array","items":{"type":"string"},"description":"Filter by ICP fit: LOW, MEDIUM, HIGH."},"profilePrivacy":{"type":"string","description":"\"open\" or \"closed\"."}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"total_deleted":{"type":"number"},"total_requested":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/prospects/low-icp":{"delete":{"tags":["Warm List"],"description":"Delete all LOW ICP-fit warmlist prospects matching the given filters.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["engagementType"],"properties":{"engagementType":{"type":"string","enum":["PROFILE_VIEWERS","POST_ENGAGEMENTS","NEW_FOLLOWERS","WEBSITE_INTENT"],"description":"Required. One of: NEW_FOLLOWERS, PROFILE_VIEWERS, POST_ENGAGEMENTS."},"monitoredProfileId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postId":{"type":"string","description":"Only for POST_ENGAGEMENTS."}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"count":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/prospects/dnc":{"post":{"tags":["Warm List"],"description":"Add warmlist prospects to the Do Not Contact list by ID or filter.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"prospectIds":{"type":"array","items":{"type":"string"},"description":"Specific prospect IDs."},"selectAll":{"type":"boolean","description":"Target all prospects matching the filters below."},"engagementType":{"type":"string","description":"Required when selectAll is true."},"monitoredProfileId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postEngagementType":{"type":"string","description":"COMMENT or REACTION."},"icpFit":{"type":"array","items":{"type":"string"}},"profilePrivacy":{"type":"string","description":"\"open\" or \"closed\"."}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"queued":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/warmlist/{workspaceId}/prospects/move-to-campaign":{"post":{"tags":["Warm List"],"description":"Move warmlist prospects into a campaign for outreach.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["campaignId"],"properties":{"campaignId":{"type":"string","description":"Target campaign ID."},"prospectIds":{"type":"array","items":{"type":"string"},"description":"Specific prospect IDs."},"selectAll":{"type":"boolean","description":"Move all prospects matching the filters below."},"engagementType":{"type":"string","description":"Required when selectAll is true."},"monitoredProfileId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postId":{"type":"string","description":"Only for POST_ENGAGEMENTS."},"postEngagementType":{"type":"string","description":"COMMENT or REACTION."},"icpFit":{"type":"array","items":{"type":"string"}},"profilePrivacy":{"type":"string","description":"\"open\" or \"closed\"."}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"workspaceId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"campaign_id":{"type":"string"},"queued_count":{"type":"number"},"skipped_count":{"type":"number"},"skipped_reasons":{"type":"array","items":{"type":"object","properties":{"warmlist_prospect_id":{"type":"string"},"reason":{"type":"string"}}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/import-jobs/{jobId}":{"get":{"tags":["Campaigns"],"description":"Check the status of a prospect import job created via add-lead-to-campaign. Workspace admins and owners can access import jobs for other workspace members.","parameters":[{"schema":{"type":"string"},"in":"path","name":"jobId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"importJob":{"type":"object","properties":{"id":{"type":"string"},"campaign_id":{"type":"string"},"status":{"type":"string"},"fetch_type":{"type":"string"},"total_prospects":{"type":"number"},"created_at":{"type":"string"},"started_at":{"type":"string","nullable":true},"completed_at":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"identifier":{"type":"string"},"status":{"type":"string"},"prospect_id":{"type":"string","nullable":true},"error_message":{"type":"string","nullable":true},"completed_at":{"type":"string","nullable":true}}}}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/campaigns/{campaignId}/analytics":{"get":{"tags":["Analytics"],"description":"Get time-series and breakdown analytics for a single campaign. Workspace admins and owners can access analytics for workspace members.","parameters":[{"schema":{"type":"string"},"in":"query","name":"startDate","required":true,"description":"Start of the date range in YYYY-MM-DD format (e.g. 2026-01-01)."},{"schema":{"type":"string"},"in":"query","name":"endDate","required":true,"description":"End of the date range in YYYY-MM-DD format (e.g. 2026-01-31). Must be on or after startDate."},{"schema":{"type":"string","enum":["day","week"],"default":"day"},"in":"query","name":"granularity","required":false,"description":"Time bucket size for the time series. Defaults to day."},{"schema":{"type":"string"},"in":"path","name":"campaignId","required":true,"description":"The campaign ID to fetch analytics for."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"analytics":{"type":"object","properties":{"timeSeries":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"inMailsSent":{"type":"number"},"connectionRequestsSent":{"type":"number"},"followUpsSent":{"type":"number"},"reEngagementSent":{"type":"number"},"repliesReceived":{"type":"number"},"meetingsBooked":{"type":"number"}}}},"statusCounts":{"type":"object","properties":{"approvalRequired":{"type":"number"},"responded":{"type":"number"},"messageSent":{"type":"number"},"followUpSent":{"type":"number"},"reEngagementSent":{"type":"number"},"prospectCreated":{"type":"number"},"outreachScheduled":{"type":"number"},"resendCooldown":{"type":"number"},"acceptedConnect":{"type":"number"},"doNotContact":{"type":"number"},"outreachFailed":{"type":"number"},"requestWithdrawn":{"type":"number"},"stopOutreach":{"type":"number"},"humanHandover":{"type":"number"}}},"breakdowns":{"type":"object","properties":{"icpFit":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}}},"meetingsBooked":{"type":"number"}}}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/analytics/overview":{"get":{"tags":["Analytics"],"description":"Get workspace-level analytics totals and per-campaign breakdown. Workspace admins and owners see all campaigns in the workspace, Workspace members see only their own campaigns.","parameters":[{"schema":{"type":"string"},"in":"query","name":"startDate","required":false,"description":"Required. Start of the date range in YYYY-MM-DD format (e.g. 2026-01-01)."},{"schema":{"type":"string"},"in":"query","name":"endDate","required":false,"description":"Required. End of the date range in YYYY-MM-DD format (e.g. 2026-01-31). Must be on or after startDate."},{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Required. The workspace to scope the analytics to. Admins and owners see all campaigns; members see only their own."},{"schema":{"type":"string","enum":["campaign"],"default":"campaign"},"in":"query","name":"group_by","required":false,"description":"Dimension to group results by. Currently only \"campaign\" is supported."},{"schema":{"type":"string","enum":["day","week"],"default":"day"},"in":"query","name":"granularity","required":false,"description":"Time bucket size for the time series. Defaults to day."},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"overview":{"type":"object","properties":{"workspaceId":{"type":"string"},"timeSeries":{"type":"array","items":{"type":"object","properties":{"date":{"type":"string"},"inMailsSent":{"type":"number"},"connectionRequestsSent":{"type":"number"},"followUpsSent":{"type":"number"},"reEngagementSent":{"type":"number"},"repliesReceived":{"type":"number"},"meetingsBooked":{"type":"number"}}}},"totals":{"type":"object","properties":{"prospectsContacted":{"type":"number"},"inMailsSent":{"type":"number"},"messagingSent":{"type":"number"},"acceptedConnections":{"type":"number"},"repliesReceived":{"type":"number"},"meetingsBooked":{"type":"number"},"interestedProspects":{"type":"number"}}},"byCampaign":{"type":"array","items":{"type":"object","properties":{"campaignId":{"type":"string"},"campaignName":{"type":"string"},"prospectsContacted":{"type":"number"},"inMailsSent":{"type":"number"},"messagingSent":{"type":"number"},"acceptedConnections":{"type":"number"},"repliesReceived":{"type":"number"},"meetingsBooked":{"type":"number"},"interestedProspects":{"type":"number"},"icpFit":{"type":"object","properties":{"totalUnique":{"type":"number"},"lowIcpCount":{"type":"number"},"mediumIcpCount":{"type":"number"},"highIcpCount":{"type":"number"}}}}}}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/do-not-contact":{"post":{"tags":["Workspaces"],"description":"Batch-add LinkedIn URLs to the workspace Do Not Contact list. Accepts person, company, and school URLs. Entries are enqueued and applied asynchronously; the block then applies workspace-wide at both add time and send time. Known limitation: DNC entries are keyed per API user, so an identity your user already holds on another workspace's list cannot currently be re-recorded for this workspace — such entries are skipped (and logged internally) rather than applied.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["workspaceId","urls"],"properties":{"workspaceId":{"type":"string"},"urls":{"type":"array","items":{"type":"string"},"minItems":1,"maxItems":500}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"accepted":{"type":"number"},"rejected":{"type":"array","items":{"type":"object","properties":{"url":{"type":"string"},"reason":{"type":"string"}}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}},"get":{"tags":["Workspaces"],"description":"List the workspace Do Not Contact entries. Use type=prospects (default) or type=companies.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":true},{"schema":{"type":"string","enum":["prospects","companies"],"default":"prospects"},"in":"query","name":"type","required":false},{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"type":{"type":"string"},"entries":{"type":"array","items":{"type":"object","properties":{"first_name":{"type":"string","nullable":true},"last_name":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"linkedin_public_id":{"type":"string","nullable":true},"linkedin_urn":{"type":"string","nullable":true},"salesnav_urn":{"type":"string","nullable":true},"linkedin_url":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"created_at":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages":{"get":{"tags":["Inbox"],"description":"List outreach messages by approval status. Workspace admins and owners see messages from all campaigns in the workspace. Workspace members see only their own campaigns.","parameters":[{"schema":{"type":"string","enum":["pending","approved","scheduled"]},"in":"query","name":"view","required":false,"description":"Required. \"pending\" for messages awaiting approval, \"approved\" for approved messages, \"scheduled\" for messages scheduled to send."},{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false,"description":"Maximum number of records to return (1–100, default 20)."},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false,"description":"Number of records to skip. Capped at 1,000."},{"schema":{"type":"string","maxLength":200},"in":"query","name":"search","required":false,"description":"Filter by prospect first or last name."},{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Required. Scope to a specific workspace. Admins and owners see all campaigns in the workspace; members see only their own."},{"schema":{"type":"string"},"in":"query","name":"campaignIds","required":false,"description":"Comma-separated campaign IDs to filter messages to."},{"schema":{"type":"string"},"in":"query","name":"tagIds","required":false,"description":"Comma-separated tag IDs to filter by."},{"schema":{"type":"string"},"in":"query","name":"types","required":false,"description":"Comma-separated message types to filter by (e.g. CONNECT,INMAIL,FOLLOW_UP,RE_ENGAGEMENT)."},{"schema":{"type":"string"},"in":"query","name":"from","required":false,"description":"Filter messages created on or after this date (YYYY-MM-DD)."},{"schema":{"type":"string"},"in":"query","name":"to","required":false,"description":"Filter messages created on or before this date (YYYY-MM-DD)."},{"schema":{"type":"string","enum":["newest","oldest"]},"in":"query","name":"sort","required":false,"description":"Sort order by message created_at. Defaults to newest."},{"schema":{"type":"string"},"in":"query","name":"prospectInterestLevel","required":false,"description":"Comma-separated interest level values to filter by."},{"schema":{"type":"string"},"in":"query","name":"icpFit","required":false,"description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"messages":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"message":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"},"subject":{"type":"string","nullable":true},"created_at":{"type":"string"},"sent_at":{"type":"string","nullable":true},"approved_at":{"type":"string","nullable":true},"approved_by":{"type":"string","nullable":true},"is_read":{"type":"boolean"},"rating":{"type":"number","nullable":true},"campaign_id":{"type":"string"},"campaign_name":{"type":"string"},"campaign_type":{"type":"string"},"prospect_id":{"type":"string"},"prospect_first_name":{"type":"string","nullable":true},"prospect_last_name":{"type":"string","nullable":true},"prospect_linkedin_id":{"type":"string","nullable":true},"prospect_title":{"type":"string","nullable":true},"prospect_company":{"type":"string","nullable":true},"prospect_profile_picture":{"type":"string","nullable":true},"prospect_interest_level":{"type":"string","nullable":true},"prospect_icp_fit":{"type":"string","nullable":true},"prospect_status":{"type":"string"}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/{messageId}":{"patch":{"tags":["Inbox"],"description":"Edit the body of an unsent message draft. Works for every draft in the sequence: the first outreach message, follow-ups, and re-engagements alike. A draft stays editable while it is pending approval and after it has been approved but not yet sent (the send path reads the latest body at send time), so an approved draft can still be corrected before its send window. Once a message has been sent it can no longer be edited. An already-sent message returns 400. A 409 is reserved for the narrow case where the message is sent concurrently, after this request read its status but before the write lands. A draft stays editable after its campaign is deleted, matching the in-app behaviour. `subject` is accepted on INMAIL messages only, and cannot be blank once set. Character limits are enforced per message type: CONNECT 300 (200 on a Basic, non-Premium LinkedIn seat), INMAIL 1700 (subject 200), FOLLOW_UP 1000, RE_ENGAGEMENT 1000, FIRST_DEGREE_INTRO 8000.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["message"],"properties":{"message":{"type":"string","minLength":1,"description":"The new message body. Replaces the existing draft in full."},"subject":{"type":"string","minLength":1,"description":"INMAIL only. Replaces the InMail subject line. Max 200 characters. Cannot be blank: omit the field to leave the existing subject unchanged."}},"additionalProperties":false},"examples":{"Edit a follow-up":{"summary":"Rewrite a pending follow-up draft","value":{"message":"Hi Sam, circling back on this. Worth a quick look?"}},"Edit an InMail with subject":{"summary":"Rewrite an InMail body and its subject line","value":{"message":"Hi Sam, ...","subject":"Quick question about your Q3 hiring"}}}}}},"parameters":[{"schema":{"type":"string"},"in":"path","name":"messageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"messageType":{"type":"string"},"campaignId":{"type":"string"},"prospectId":{"type":"string"},"status":{"type":"string"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"409":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/{messageId}/approve":{"post":{"tags":["Inbox"],"description":"Approve a pending outreach message for sending.","parameters":[{"schema":{"type":"string"},"in":"path","name":"messageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"messageType":{"type":"string"},"campaignId":{"type":"string"},"prospectId":{"type":"string"},"status":{"type":"string"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/{messageId}/unapprove":{"post":{"tags":["Inbox"],"description":"Unapprove a pending outreach message.","parameters":[{"schema":{"type":"string"},"in":"path","name":"messageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"messageType":{"type":"string"},"campaignId":{"type":"string"},"prospectId":{"type":"string"},"status":{"type":"string"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/{messageId}/unschedule":{"post":{"tags":["Inbox"],"description":"Unschedule a message that is scheduled for sending.","parameters":[{"schema":{"type":"string"},"in":"path","name":"messageId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"messageId":{"type":"string"},"campaignId":{"type":"string"},"prospectId":{"type":"string"},"status":{"type":"string"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/batch-approve":{"post":{"tags":["Inbox"],"description":"Approve multiple pending outreach messages in batch. Workspace admins and owners can act on all campaigns in the workspace. Workspace members can only act on their own campaigns.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"workspaceId":{"type":"string","description":"Scope to a specific workspace. One of workspaceId or campaignIds is required. Admins and owners see all campaigns; members see only their own."},"campaignIds":{"type":"string","description":"Comma-separated campaign IDs to scope the operation to."},"confirmAll":{"type":"boolean","description":"Set to true to act on all campaigns in the workspace. Requires workspaceId."},"types":{"type":"string","description":"Comma-separated message types to filter by (e.g. CONNECT,INMAIL,FOLLOW_UP,RE_ENGAGEMENT)."},"search":{"type":"string","description":"Filter by prospect first or last name."},"icpFit":{"type":"string","description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},"prospectInterestLevel":{"type":"string","description":"Comma-separated interest level values to filter by."},"ownerId":{"type":"string","description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"affected":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/batch-unapprove":{"post":{"tags":["Inbox"],"description":"Unapprove multiple pending outreach messages in batch. Workspace admins and owners can act on all campaigns in the workspace. Workspace members can only act on their own campaigns.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"workspaceId":{"type":"string","description":"Scope to a specific workspace. One of workspaceId or campaignIds is required. Admins and owners see all campaigns; members see only their own."},"campaignIds":{"type":"string","description":"Comma-separated campaign IDs to scope the operation to."},"confirmAll":{"type":"boolean","description":"Set to true to act on all campaigns in the workspace. Requires workspaceId."},"types":{"type":"string","description":"Comma-separated message types to filter by (e.g. CONNECT,INMAIL,FOLLOW_UP,RE_ENGAGEMENT)."},"search":{"type":"string","description":"Filter by prospect first or last name."},"icpFit":{"type":"string","description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},"prospectInterestLevel":{"type":"string","description":"Comma-separated interest level values to filter by."},"ownerId":{"type":"string","description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"affected":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/batch-unschedule":{"post":{"tags":["Inbox"],"description":"Unschedule multiple pending messages in batch. Workspace admins and owners can act on all campaigns in the workspace. Workspace members can only act on their own campaigns.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"properties":{"workspaceId":{"type":"string","description":"Scope to a specific workspace. One of workspaceId or campaignIds is required. Admins and owners see all campaigns; members see only their own."},"campaignIds":{"type":"string","description":"Comma-separated campaign IDs to scope the operation to."},"confirmAll":{"type":"boolean","description":"Set to true to act on all campaigns in the workspace. Requires workspaceId."},"search":{"type":"string","description":"Filter by prospect first or last name."},"icpFit":{"type":"string","description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},"prospectInterestLevel":{"type":"string","description":"Comma-separated interest level values to filter by."},"ownerId":{"type":"string","description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"affected":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/approvals/messages/batch-read-status":{"post":{"tags":["Inbox"],"description":"Update the read status of multiple messages in batch.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["isRead"],"additionalProperties":false,"properties":{"isRead":{"type":"boolean","description":"Set to true to mark messages as read, false to mark as unread."},"workspaceId":{"type":"string","description":"Scope to a specific workspace. One of workspaceId, campaignIds, or confirmAll is required."},"campaignIds":{"type":"string","description":"Comma-separated campaign IDs to scope the operation to."},"confirmAll":{"type":"boolean","description":"Set to true to act on all campaigns in the workspace. Requires workspaceId. Optionally narrow with campaignIds."},"search":{"type":"string","description":"Filter by prospect first or last name."},"icpFit":{"type":"string","description":"Comma-separated ICP fit values to filter by (e.g. HIGH, MEDIUM)."},"prospectInterestLevel":{"type":"string","description":"Comma-separated interest level values to filter by."},"from":{"type":"string","description":"Filter messages created on or after this date (YYYY-MM-DD)."},"to":{"type":"string","description":"Filter messages created on or before this date (YYYY-MM-DD)."},"ownerId":{"type":"string","description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"affected":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations":{"get":{"tags":["Inbox"],"description":"List inbox conversations with filtering and pagination. Workspace admins and owners see conversations from all campaigns in the workspace. Workspace members see only their own campaigns.","parameters":[{"schema":{"type":"string","enum":["inbox","archived"]},"in":"query","name":"view","required":false,"description":"Required. \"inbox\" for active conversations, \"archived\" for archived ones."},{"schema":{"type":"number","minimum":1,"maximum":100,"default":20},"in":"query","name":"limit","required":false,"description":"Maximum number of records to return (1–100, default 20)."},{"schema":{"type":"number","minimum":0,"default":0},"in":"query","name":"offset","required":false,"description":"Number of records to skip. Capped at 1,000."},{"schema":{"type":"string","maxLength":200},"in":"query","name":"search","required":false,"description":"Filter by prospect first or last name."},{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Required. Scope to a specific workspace. Admins and owners see all campaigns in the workspace; members see only their own."},{"schema":{"type":"string"},"in":"query","name":"campaignIds","required":false,"description":"Comma-separated campaign IDs to filter conversations to."},{"schema":{"type":"string"},"in":"query","name":"tagIds","required":false,"description":"Comma-separated tag IDs to filter by."},{"schema":{"type":"string"},"in":"query","name":"messageType","required":false,"description":"Comma-separated message type filters (e.g. INMAIL_SENT, CONNECT_SENT, FOLLOWUP_SENT)."},{"schema":{"type":"string","enum":["unread","response_ready","reengagement_sent"]},"in":"query","name":"otherMessageType","required":false,"description":"Filter by message state: unread, response_ready, or reengagement_sent."},{"schema":{"type":"string"},"in":"query","name":"from","required":false,"description":"Filter conversations created on or after this date (YYYY-MM-DD)."},{"schema":{"type":"string"},"in":"query","name":"to","required":false,"description":"Filter conversations created on or before this date (YYYY-MM-DD)."},{"schema":{"type":"string","enum":["newest","oldest"]},"in":"query","name":"sort","required":false,"description":"Sort order. inbox view: by last_inbound_at (most recent prospect reply first); archived view: by updated_at. Defaults to newest."},{"schema":{"type":"string"},"in":"query","name":"prospectInterestLevel","required":false,"description":"Comma-separated interest level values to filter by."},{"schema":{"type":"string"},"in":"query","name":"icpFit","required":false,"description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"conversations":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"status":{"type":"string","nullable":true},"conversation_medium":{"type":"string","nullable":true},"auto_pilot":{"type":"boolean"},"important":{"type":"boolean"},"created_at":{"type":"string"},"updated_at":{"type":"string"},"last_inbound_at":{"type":"string","nullable":true},"subject":{"type":"string","nullable":true},"campaign_id":{"type":"string"},"campaign_name":{"type":"string"},"campaign_type":{"type":"string"},"prospect_id":{"type":"string"},"prospect_first_name":{"type":"string","nullable":true},"prospect_last_name":{"type":"string","nullable":true},"prospect_linkedin_id":{"type":"string","nullable":true},"prospect_title":{"type":"string","nullable":true},"prospect_company":{"type":"string","nullable":true},"prospect_profile_picture":{"type":"string","nullable":true},"prospect_interest_level":{"type":"string","nullable":true},"prospect_icp_fit":{"type":"string","nullable":true},"unread_count":{"type":"number"},"last_message":{"nullable":true,"type":"object","properties":{"content":{"type":"string"},"sender":{"type":"string"},"is_read":{"type":"boolean"},"created_at":{"type":"string"}}}}}},"pagination":{"type":"object","properties":{"limit":{"type":"number"},"offset":{"type":"number"},"total":{"type":"number"},"hasMore":{"type":"boolean"}}}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations/{conversationId}/read":{"post":{"tags":["Inbox"],"description":"Mark a conversation as read.","parameters":[{"schema":{"type":"string"},"in":"path","name":"conversationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations/{conversationId}/unread":{"post":{"tags":["Inbox"],"description":"Mark a conversation as unread.","parameters":[{"schema":{"type":"string"},"in":"path","name":"conversationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations/{conversationId}/archive":{"post":{"tags":["Inbox"],"description":"Archive a conversation.","parameters":[{"schema":{"type":"string"},"in":"path","name":"conversationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations/{conversationId}/unarchive":{"post":{"tags":["Inbox"],"description":"Unarchive a conversation.","parameters":[{"schema":{"type":"string"},"in":"path","name":"conversationId","required":true}],"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"404":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations/batch-read-status":{"post":{"tags":["Inbox"],"description":"Update the read status of multiple conversations in batch. Workspace admins and owners can scope to all campaigns in a workspace. Workspace members can only act on their own campaigns.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["isRead"],"additionalProperties":false,"properties":{"isRead":{"type":"boolean","description":"Set to true to mark conversations as read, false to mark as unread."},"workspaceId":{"type":"string","description":"Scope to a specific workspace. One of workspaceId, campaignIds, or confirmAll is required. Admins and owners see all campaigns in the workspace; members see only their own."},"campaignIds":{"type":"string","description":"Comma-separated campaign IDs to scope the operation to."},"confirmAll":{"type":"boolean","description":"Set to true to act on all campaigns in the workspace. Requires workspaceId. Optionally narrow with campaignIds."},"icpFit":{"type":"string","description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},"prospectInterestLevel":{"type":"string","description":"Comma-separated interest level values to filter by."},"ownerId":{"type":"string","description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"affected":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}},"/public/v1/inbox/conversations/batch-archive":{"post":{"tags":["Inbox"],"description":"Archive or unarchive multiple conversations in batch. Workspace admins and owners can scope to all campaigns in a workspace. Workspace members can only act on their own campaigns.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["archive"],"additionalProperties":false,"properties":{"archive":{"type":"boolean","description":"Set to true to archive conversations, false to unarchive."},"workspaceId":{"type":"string","description":"Scope to a specific workspace. One of workspaceId, campaignIds, or confirmAll is required. Admins and owners see all campaigns in the workspace; members see only their own."},"campaignIds":{"type":"string","description":"Comma-separated campaign IDs to scope the operation to."},"confirmAll":{"type":"boolean","description":"Set to true to act on all campaigns in the workspace. Requires workspaceId. Optionally narrow with campaignIds."},"icpFit":{"type":"string","description":"Comma-separated ICP fit values to filter by (e.g. STRONG,GOOD)."},"prospectInterestLevel":{"type":"string","description":"Comma-separated interest level values to filter by."},"ownerId":{"type":"string","description":"Admin/Owner only: scope results to a specific workspace member by their user ID."}}}}}},"responses":{"200":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"data":{"type":"object","properties":{"affected":{"type":"number"}}}}}}}},"400":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"401":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"403":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}},"429":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"},"retryAfter":{"type":"number"}}}}}},"500":{"description":"Default Response","content":{"application/json":{"schema":{"type":"object","properties":{"statusCode":{"type":"number"},"status":{"type":"boolean"},"message":{"type":"string"}}}}}}}}}},"servers":[{"url":"https://api.joinvalley.co"}],"security":[{"ApiKeyAuth":[]}],"tags":[{"name":"Campaigns","description":"Create, manage, and monitor outreach campaigns."},{"name":"Analytics","description":"Campaign and workspace-level performance analytics."},{"name":"Inbox","description":"Inbox conversations and outreach message approvals."},{"name":"Warm List","description":"LinkedIn followers, profile viewers, and post engagers."},{"name":"Workspaces","description":"Workspace members and workspace-scoped resources."},{"name":"Users","description":"Authenticated user profile."},{"name":"Templates","description":"Message templates for campaigns."},{"name":"Writing Styles","description":"Writing styles used for AI-personalised campaigns."}]}