---
title: "POST /public/v1/workspace-products"
method: POST
path: "/public/v1/workspace-products"
tags: ["Workspaces"]
---

# POST /public/v1/workspace-products

`POST /public/v1/workspace-products`

Create a new workspace product used as context for AI-generated outreach.

## Request body

- object
  - `workspaceId` string, required — ID of the workspace to create the product in.
  - `name` string, required — Product or company name.
  - `description` string, required — Short description of what you offer.
  - `painPoints` string[], required — Customer pain points your product addresses.
  - `valueProposition` string[], required — Key value propositions of your product.
  - `proofPoints` string[], required — Social proof, case studies, or stats that back your claims.
  - `cta` string — Optional. Call-to-action text used in outreach messages.
  - `meetingLink` string — Optional. Booking or meeting link to include in outreach.
  - `outreachLanguage` string — Optional. Language for outreach messages (e.g. "English", "French"). Defaults to "English".
  - `websiteUrl` string — Optional. Company / website URL (shown as "Company URL" in Studio).
  - `productUrl` string — Optional. Product URL.
  - `customerProfile` string — 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` string — Optional. Competitors, as free text.
  - `extraMaterials` string[] — Optional additional context or materials for AI message generation.
  - `qna` object[] — Optional Q&A pairs that give the AI more context about your product.
    - `question` string, required
    - `answer` string, required
  - `accessScope` 'OWNER' | 'WORKSPACE' — Who can use this product. OWNER = private to you; WORKSPACE = shared across the workspace (ADMIN/OWNER only).

## Response `201`

Default Response

- object
  - `statusCode` number
  - `status` boolean
  - `message` string
  - `data` object
    - `workspace_product` object
      - `id` string
      - `name` string
      - `description` string
      - `access_scope` string
      - `created_at` string

## Other responses

- `400` — Default Response
- `401` — Default Response
- `403` — Default Response
- `429` — Default Response
- `500` — Default Response

---

[API](https://skmtc.net/joinvalley/apis/valley-public-api.md) · [All operations](https://skmtc.net/joinvalley/apis/valley-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/joinvalley/valley-public-api/revisions/1d888a894943/schema)
