Skip to documentation

Opportunities

Opportunities help you bridge the gap between user problems (insights) and product solutions (ideas). Use these endpoints to organize and prioritize the problems worth solving.

5 endpoints

GET

List opportunities

GET /external/v1/opportunities

Retrieve a bounded page of compact opportunities in your workspace. Opportunities represent significant problems, needs, or desired outcomes identified from insights. List responses use relation IDs/counts instead of hydrating every linked insight or idea.

Requirements

API scopes required:
opportunities:read

Request

Parameters

NameTypeDescription
limit numberMaximum number of items to return (default: 20, maximum: 100)
offset numberNumber of items to skip (default: 0)

Responses

200
Success

List of opportunities retrieved. Pagination metadata is returned in X-Total-Count, X-Limit, X-Offset, and X-Has-More headers.

Schema

Example Request

GET
/external/v1/opportunities
curl
curl -X GET https://zentrik.ai/api/external/v1/opportunities?limit=10 \
  -H 'Authorization: Bearer YOUR_API_KEY'

Example Response

200 OK
json
[
  {
    "id": "uuid",
    "name": "Streamline checkout process",
    "description": "High drop-off rate at the final step...",
    "status": "Draft",
    "insightIds": [
      "insight-uuid"
    ],
    "ideaIds": []
  }
]
GET

Get one opportunity

GET /external/v1/opportunities/:id

Retrieve detailed information about a specific opportunity.

Requirements

API scopes required:
opportunities:read

Request

Parameters

NameTypeDescription
id *uuidThe unique identifier of the opportunity

Responses

200
Success

Example Request

GET
/external/v1/opportunities/:id
curl
curl -X GET https://zentrik.ai/api/external/v1/opportunities/uuid \
  -H 'Authorization: Bearer YOUR_API_KEY'

Example Response

200 OK
json
{
  "id": "uuid",
  "name": "Streamline checkout process"
}
POST

Create an opportunity

POST /external/v1/opportunities

Define a new opportunity identified from your discovery efforts.

Requirements

API scopes required:
opportunities:write

Request

Request body (application/json)

namestring
Required

Title of the opportunity

descriptionstring
Required

Detailed problem statement

scorenumber

Opportunity score (0-100)

Responses

201
Created

The opportunity was successfully created.

Example Request

POST
/external/v1/opportunities
json
{
  "name": "Reduce churn in Mobile App",
  "description": "Users are uninstalling after 2 days...",
  "score": 92
}

Example Response

201 Created
json
{
  "id": "uuid",
  "name": "Reduce churn in Mobile App"
}
PATCH

Update an opportunity

PATCH /external/v1/opportunities/:id

Modify an existing opportunity.

Requirements

API scopes required:
opportunities:write

Request

Parameters

NameTypeDescription
id *uuidThe unique identifier of the opportunity

Request body (application/json)

namestring

Updated title

scorenumber

Updated score

Responses

200
Updated

Example Request

PATCH
/external/v1/opportunities/:id
curl
curl -X PATCH https://zentrik.ai/api/external/v1/opportunities/uuid \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{"score": 95}'
DELETE

Delete an opportunity

DELETE /external/v1/opportunities/:id

Permanently remove an opportunity.

Requirements

API scopes required:
opportunities:delete

Request

Parameters

NameTypeDescription
id *uuidThe unique identifier

Responses

200
Success

Example Request

DELETE
/external/v1/opportunities/:id
curl
curl -X DELETE https://zentrik.ai/api/external/v1/opportunities/uuid \
  -H 'Authorization: Bearer YOUR_API_KEY'

Data Models

The Opportunity model represents a prioritized problem or need discovered during the research phase.

Opportunity Object

FieldTypeDescription
iduuidThe unique identifier for the opportunity.
namestringThe title of the opportunity.
descriptionstringDetailed summary of the problem or need.
scorenumberPriority score (0-100) based on impact and feasibility.
statusenumCurrent state (e.g., discovery, defined, validated, archived).
productIduuidThe ID of the product this opportunity addresses.
insightIdsuuid[]IDs of insights that support this opportunity.
ideaIdsuuid[]IDs of ideas that aim to solve this opportunity.
createdAtiso-dateCreation timestamp.
updatedAtiso-dateLast update timestamp.