{"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","English (UK)","Albanian","Arabic","Bengali","Bosnian","Bulgarian","Chinese","Croatian","Czech","Danish","Dutch","Egyptian","Farsi","French","German","Greek","Hebrew","Hindi","Hungarian","Indonesian","Italian","Japanese","Korean","Kurdish","Macedonian","Montenegrin","Polish","Portuguese","Romanian","Russian","Serbian","Slovak","Slovenian","Spanish","Spanish (Latin America)","Swahili","Swedish","Thai","Turkish","Urdu","Vietnamese"]},"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"}}}}}},"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"}}}}}}}},"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\"). Case-insensitive. 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/webhooks":{"get":{"tags":["Webhooks"],"description":"List outbound webhooks visible to the caller: their own PERSONAL webhooks plus every WORKSPACE-scoped one. Paused webhooks are included with isActive=false. Optionally scoped to one workspace.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Restrict to one workspace (membership validated). A workspace API key is always locked to its own workspace."},{"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":{"webhooks":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":["null","string"]},"scope":{"type":"string","enum":["PERSONAL","WORKSPACE"]},"webhookUrl":{"type":"string"},"triggerTypes":{"type":"array","items":{"type":"string"}},"payloadFields":{"type":["null","object"],"additionalProperties":true},"isActive":{"type":"boolean","description":"false = paused; nothing is delivered until re-enabled."},"createdByUserId":{"type":"string"},"workspaceId":{"type":["null","string"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["null","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":["Webhooks"],"description":"Register an outbound webhook. Valley POSTs a JSON payload to webhookUrl whenever one of the triggerTypes fires. scope PERSONAL (default) fires only for the caller's own events; WORKSPACE fires for every member and requires ADMIN/OWNER.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["webhookUrl","triggerTypes"],"properties":{"workspaceId":{"type":"string","description":"Required for a user API key. A workspace API key is locked to its own workspace."},"webhookUrl":{"type":"string","minLength":1,"description":"Absolute http(s) endpoint Valley will POST event payloads to."},"triggerTypes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["PROSPECT_RESPONSE","SEND_FIRST_PROSPECT_RESPONSE","CONNECTION_ACCEPTED","SEND_INTERESTED_RESPONSES","SEND_MIGHT_BE_INTERESTED_RESPONSES","SEND_NOT_INTERESTED_RESPONSES","PROSPECT_ADDED_TO_CAMPAIGN","PROSPECT_REMOVED_FROM_CAMPAIGN","PROSPECT_ADDED_TO_WARM_LIST","ADDED_TO_DNC","PROSPECT_TAG_CHANGED","SEND_FIRST_OUTREACH","SEND_ANY_NEW_OUTREACH","SEND_COPY_GENERATED_DRAFT","SEND_COPY_FOR_MESSAGES_AFTER_APPROVAL"]},"description":"Events that fire this webhook. PROSPECT_RESPONSE and SEND_FIRST_PROSPECT_RESPONSE are mutually exclusive; if both are sent only PROSPECT_RESPONSE is kept."},"scope":{"type":"string","enum":["PERSONAL","WORKSPACE"],"default":"PERSONAL"},"label":{"type":"string","minLength":1,"maxLength":255},"payloadFields":{"type":["object","null"],"description":"Optional payload opt-ins (extra fields to include in the delivered JSON). null clears them.","properties":{"include_icp_fit":{"type":"boolean"},"include_icp_fit_justification":{"type":"boolean"},"include_template_name":{"type":"boolean"},"include_subject":{"type":"boolean"},"include_message_type":{"type":"boolean"},"include_message_index":{"type":"boolean"},"include_file_upload_data":{"type":"boolean"},"first_prospect_response_inmail_only":{"type":"boolean"},"warm_list_min_icp_fit":{"type":"string","enum":["HIGH","MEDIUM","LOW"]}},"additionalProperties":false}},"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":{"webhook":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":["null","string"]},"scope":{"type":"string","enum":["PERSONAL","WORKSPACE"]},"webhookUrl":{"type":"string"},"triggerTypes":{"type":"array","items":{"type":"string"}},"payloadFields":{"type":["null","object"],"additionalProperties":true},"isActive":{"type":"boolean","description":"false = paused; nothing is delivered until re-enabled."},"createdByUserId":{"type":"string"},"workspaceId":{"type":["null","string"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["null","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/webhooks/{id}":{"get":{"tags":["Webhooks"],"description":"Get one webhook by id: destination URL, triggers, scope, payload opt-ins, and whether it is active.","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":{"webhook":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":["null","string"]},"scope":{"type":"string","enum":["PERSONAL","WORKSPACE"]},"webhookUrl":{"type":"string"},"triggerTypes":{"type":"array","items":{"type":"string"}},"payloadFields":{"type":["null","object"],"additionalProperties":true},"isActive":{"type":"boolean","description":"false = paused; nothing is delivered until re-enabled."},"createdByUserId":{"type":"string"},"workspaceId":{"type":["null","string"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["null","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":["Webhooks"],"description":"Update a webhook. Only the fields you send are changed. triggerTypes replaces the full list. enabled=false pauses delivery without deleting the webhook; enabled=true resumes it. WORKSPACE webhooks require ADMIN/OWNER.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"label":{"type":"string","minLength":1,"maxLength":255},"webhookUrl":{"type":"string","minLength":1,"description":"New absolute http(s) endpoint."},"triggerTypes":{"type":"array","minItems":1,"uniqueItems":true,"items":{"type":"string","enum":["PROSPECT_RESPONSE","SEND_FIRST_PROSPECT_RESPONSE","CONNECTION_ACCEPTED","SEND_INTERESTED_RESPONSES","SEND_MIGHT_BE_INTERESTED_RESPONSES","SEND_NOT_INTERESTED_RESPONSES","PROSPECT_ADDED_TO_CAMPAIGN","PROSPECT_REMOVED_FROM_CAMPAIGN","PROSPECT_ADDED_TO_WARM_LIST","ADDED_TO_DNC","PROSPECT_TAG_CHANGED","SEND_FIRST_OUTREACH","SEND_ANY_NEW_OUTREACH","SEND_COPY_GENERATED_DRAFT","SEND_COPY_FOR_MESSAGES_AFTER_APPROVAL"]},"description":"Events that fire this webhook. PROSPECT_RESPONSE and SEND_FIRST_PROSPECT_RESPONSE are mutually exclusive; if both are sent only PROSPECT_RESPONSE is kept."},"payloadFields":{"type":["object","null"],"description":"Optional payload opt-ins (extra fields to include in the delivered JSON). null clears them.","properties":{"include_icp_fit":{"type":"boolean"},"include_icp_fit_justification":{"type":"boolean"},"include_template_name":{"type":"boolean"},"include_subject":{"type":"boolean"},"include_message_type":{"type":"boolean"},"include_message_index":{"type":"boolean"},"include_file_upload_data":{"type":"boolean"},"first_prospect_response_inmail_only":{"type":"boolean"},"warm_list_min_icp_fit":{"type":"string","enum":["HIGH","MEDIUM","LOW"]}},"additionalProperties":false},"enabled":{"type":"boolean","description":"false pauses delivery, true resumes it."}},"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":{"webhook":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":["null","string"]},"scope":{"type":"string","enum":["PERSONAL","WORKSPACE"]},"webhookUrl":{"type":"string"},"triggerTypes":{"type":"array","items":{"type":"string"}},"payloadFields":{"type":["null","object"],"additionalProperties":true},"isActive":{"type":"boolean","description":"false = paused; nothing is delivered until re-enabled."},"createdByUserId":{"type":"string"},"workspaceId":{"type":["null","string"]},"createdAt":{"type":"string"},"lastUsedAt":{"type":["null","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"}}}}}}}},"delete":{"tags":["Webhooks"],"description":"Delete a webhook permanently. Valley stops POSTing to its URL immediately; there is no undo. To stop delivery temporarily use PATCH with enabled=false instead. WORKSPACE webhooks require ADMIN/OWNER.","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"}}}}}},"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-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"}}}}}}}},"post":{"tags":["Campaigns"],"description":"Add people to a campaign: everyone on a saved list (listId), the ones you choose from it (listId + prospectIds), and/or anyone by LinkedIn profile URL (linkedinUrls), up to 1000 named people per call. Owners, admins and managers may target any seat's campaign; members their own. Each person comes back with an outcome: queued, or skipped as already_in_campaign, in_another_campaign (named in detail), do_not_contact, already_contacted, not_on_list, invalid_linkedin_url or no_linkedin_profile. Queued people still pass Valley's own checks (company Do Not Contact, connection degree) before they join. An email Valley already found for someone is reused, not charged again.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"workspaceId":{"type":"string","description":"Required unless the key is scoped to one workspace."},"listId":{"type":"string"},"prospectIds":{"type":"array","items":{"type":"string"},"maxItems":1000},"linkedinUrls":{"type":"array","items":{"type":"string"},"maxItems":1000}}}}}},"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"},"ownerId":{"type":"string"}}},"queued":{"type":"number"},"skipped":{"type":"number"},"results":{"type":"array","items":{"type":"object","properties":{"prospectId":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"outcome":{"type":"string"},"detail":{"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/prospect-lists":{"get":{"tags":["Lists"],"description":"List the saved lists in a workspace, newest first. Workspace owners, admins and managers see every seat's lists (filter one seat with ownerId); members see their own. type=PLAY returns the lists plays built, which stay after their campaign is deleted.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Required unless the key is scoped to one workspace."},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false},{"schema":{"type":"string","enum":["SALES_NAV","CRUST","WIZA_SEARCH","CSV","LINKEDIN_SEARCH","SALES_NAV_SEARCH","RECRUITER_SEARCH","LINKEDIN_POST","WARM_LIST","CLAY","DEEP_SEARCH","PLAY"]},"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":{"lists":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"createdAt":{"type":"string"},"people":{"type":"number"},"owner":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string","nullable":true},"email":{"type":"string","nullable":true}}},"play":{"type":"object","nullable":true,"properties":{"playKey":{"type":"string","nullable":true},"campaignId":{"type":"string"},"campaignName":{"type":"string","nullable":true},"campaignDeleted":{"type":"boolean"}}}}}},"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/prospect-lists/{listId}/prospects":{"get":{"tags":["Lists"],"description":"The people on a saved list, with each person's email (only an address Valley found and verified, or one you brought) and where they stand in the workspace now: the live campaign they are in, whether they were ever messaged, whether they are on Do Not Contact, and `available` when none of those apply. Paged by cursor: pass back nextCursor until it is null.","parameters":[{"schema":{"type":"string"},"in":"query","name":"workspaceId","required":false,"description":"Required unless the key is scoped to one workspace."},{"schema":{"type":"number","minimum":1,"maximum":100,"default":100},"in":"query","name":"limit","required":false},{"schema":{"type":"string"},"in":"query","name":"cursor","required":false},{"schema":{"type":"string"},"in":"path","name":"listId","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":{"list":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string"},"people":{"type":"number"}}},"prospects":{"type":"array","items":{"type":"object","properties":{"prospectId":{"type":"string"},"firstName":{"type":"string","nullable":true},"lastName":{"type":"string","nullable":true},"title":{"type":"string","nullable":true},"company":{"type":"string","nullable":true},"companyWebsite":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"linkedinUrl":{"type":"string","nullable":true},"email":{"type":"string","nullable":true},"emailStatus":{"type":"string"},"addedAt":{"type":"string"},"inCampaign":{"type":"object","nullable":true,"properties":{"campaignId":{"type":"string"},"campaignName":{"type":"string"},"owner":{"type":"string","nullable":true},"stage":{"type":"string"}}},"everContacted":{"type":"boolean"},"onDoNotContact":{"type":"boolean"},"available":{"type":"boolean"}}}},"nextCursor":{"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"}}}}}},"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/sync":{"post":{"tags":["Workspaces"],"description":"Sync one outside record (for example a Salesforce Lead, Contact or Account) into the workspace Do Not Contact list. action \"add\" blocks the record's emails, company domains (everyone at that company) and any Valley person matching them or its LinkedIn URLs, and stops their in-flight campaigns at the next send, LinkedIn and email alike. Calling add again for the same externalId with the same contents changes nothing; with new contents it replaces what that record blocked. action \"remove\" lifts exactly what that record blocked; someone also blocked for another reason (an opt-out reply, a manual block) stays blocked. Workspace owners, admins and managers only.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["externalId"],"properties":{"workspaceId":{"type":"string","description":"Required unless the key is scoped to one workspace."},"externalId":{"type":"string","minLength":1,"maxLength":200,"description":"The outside record id, e.g. a Salesforce record id."},"source":{"type":"string","maxLength":40,"description":"The outside system. Defaults to \"salesforce\"."},"action":{"type":"string","enum":["add","remove"],"default":"add"},"emails":{"type":"array","items":{"type":"string"},"maxItems":50},"domains":{"type":"array","items":{"type":"string"},"maxItems":20,"description":"Company domains: blocks everyone at that company. Freemail domains are refused."},"linkedinUrls":{"type":"array","items":{"type":"string"},"maxItems":20}}}}}},"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":{"externalRef":{"type":"string"},"status":{"type":"string","description":"add: blocked, updated or unchanged. remove: removed."},"prospectsMatched":{"type":"number"},"emails":{"type":"array","items":{"type":"string"}},"domains":{"type":"array","items":{"type":"string"}},"removed":{"type":"number"},"rejected":{"type":"array","items":{"type":"object","properties":{"value":{"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/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, and also 200 on a seat flagged as needing Sales Navigator re-authentication, where LinkedIn enforces the Basic cap even though the seat still reports Premium), 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/approvals/responses":{"get":{"tags":["Inbox"],"description":"List AI-drafted responses to prospect replies (the \"Response Ready\" approvals). These are the replies Valley drafts once a prospect answers, and they are NOT returned by /public/v1/approvals/messages on any view, which covers first-touch and follow-up drafts only. Workspace admins and owners see every campaign in the workspace; members see only their own. Note that a pending draft is discarded server-side when the prospect sends a newer message, or when the account owner replies manually in LinkedIn, so an item can disappear between polls; approving an id that is already gone returns 404, and approving one that goes stale mid-request returns 409. Treat this as a live queue, not a ledger.","parameters":[{"schema":{"type":"string","enum":["pending","sent"]},"in":"query","name":"view","required":false,"description":"Required. \"pending\" for drafts awaiting review, \"sent\" for responses already approved and delivered. There is no \"approved\" or \"scheduled\" view: approving a response sends it immediately."},{"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"},"in":"query","name":"workspaceId","required":false,"description":"Required. Scope to a specific workspace."},{"schema":{"type":"string"},"in":"query","name":"campaignIds","required":false,"description":"Comma-separated campaign IDs to filter to."},{"schema":{"type":"string"},"in":"query","name":"prospectInterestLevel","required":false,"description":"Comma-separated interest levels (e.g. INTERESTED,MIGHT_BE_INTERESTED)."},{"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":"from","required":false,"description":"Only drafts created on or after this date (YYYY-MM-DD)."},{"schema":{"type":"string"},"in":"query","name":"to","required":false,"description":"Only drafts 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 draft created_at. Defaults to newest."},{"schema":{"type":"string"},"in":"query","name":"ownerId","required":false,"description":"Admin/Owner only: scope to a specific workspace member by 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":{"responses":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"message":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"},"created_at":{"type":"string"},"sent_at":{"type":"string","nullable":true},"approved_at":{"type":"string","nullable":true},"approved_by":{"type":"string","nullable":true},"conversation_id":{"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},"prospect_status":{"type":"string"},"prospect_reply":{"nullable":true,"type":"object","properties":{"content":{"type":"string"},"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/approvals/responses/{messageId}/approve":{"post":{"tags":["Inbox"],"description":"Approve an AI-drafted response and send it to the prospect. Unlike outreach approval there is no scheduler in between: the reply goes out during this request and the draft moves straight to SENT. Pass an edited `message` to send different copy than the draft; the stored draft is updated to what was actually sent. A draft that was already sent returns 400. An id that no longer exists returns 404, which includes a draft the server discarded before this request arrived. A draft that was still pending when this request claimed it, but whose conversation moved on before it could send, is discarded here and returns 409, as does losing a race to another approval of the same draft. So 404 means the draft is gone, 409 means it was gone out from under you. and a draft that cannot be sent as written (blocked content, exhausted LinkedIn InMail credits) returns 422.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string","description":"Optional edited body to send instead of the draft. Validated against the same per-type character limits as PATCH /approvals/messages/{id}."}}}}}},"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"},"conversationId":{"type":"string","nullable":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"}}}}}},"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"}}}}}},"422":{"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},"archived":{"type":"boolean"},"archived_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":"Lists","description":"Saved lists, including the lists plays build, and the people on them."},{"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."},{"name":"Webhooks","description":"Outbound webhooks: register, inspect, update, pause, and remove event subscriptions."}]}