curl --request PATCH \
--url https://api.poelis.com/v1/public/products/{product_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"part_number": "<string>",
"readable_id": "<string>",
"baseline_version_number": 2
}
'import requests
url = "https://api.poelis.com/v1/public/products/{product_id}"
payload = {
"name": "<string>",
"description": "<string>",
"part_number": "<string>",
"readable_id": "<string>",
"baseline_version_number": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
part_number: '<string>',
readable_id: '<string>',
baseline_version_number: 2
})
};
fetch('https://api.poelis.com/v1/public/products/{product_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"archived": false,
"baseline_version_number": 5,
"createdBy": {
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
},
"excludedStatusIds": [],
"id": "660e8400-e29b-41d4-a716-446655440000",
"name": "Jet Engine Specifications",
"owner": {
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
},
"part_number": "JE-1000-A",
"readable_id": "jet-engine-specs",
"status": {
"color": "#3b82f6",
"groupKey": "started",
"id": "770e8400-e29b-41d4-a716-446655440999",
"name": "In Progress"
},
"workspace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": "unauthorized",
"message": "Invalid or missing API key"
}{
"error": "forbidden",
"message": "Access denied"
}{
"error": "not_found",
"message": "Not found"
}{
"error": "validation_error",
"message": "Invalid data format",
"details": {
"errors": [
{
"loc": [
"body",
"field_name"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}
}{
"error": "rate_limit_exceeded",
"message": "Too many requests"
}Update product
Update a product’s metadata (name, description, readable_id, baseline_version_number).
Only fields provided in the request will be updated.
Part numbers
part_number supports assign/remove only: pass a string to assign when empty, or null
to remove (retire) the current one. Changing to a different string without removing first
returns 422 (PART_NUMBER_ALREADY_ASSIGNED).
curl --request PATCH \
--url https://api.poelis.com/v1/public/products/{product_id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"description": "<string>",
"part_number": "<string>",
"readable_id": "<string>",
"baseline_version_number": 2
}
'import requests
url = "https://api.poelis.com/v1/public/products/{product_id}"
payload = {
"name": "<string>",
"description": "<string>",
"part_number": "<string>",
"readable_id": "<string>",
"baseline_version_number": 2
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
description: '<string>',
part_number: '<string>',
readable_id: '<string>',
baseline_version_number: 2
})
};
fetch('https://api.poelis.com/v1/public/products/{product_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"archived": false,
"baseline_version_number": 5,
"createdBy": {
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
},
"excludedStatusIds": [],
"id": "660e8400-e29b-41d4-a716-446655440000",
"name": "Jet Engine Specifications",
"owner": {
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
},
"part_number": "JE-1000-A",
"readable_id": "jet-engine-specs",
"status": {
"color": "#3b82f6",
"groupKey": "started",
"id": "770e8400-e29b-41d4-a716-446655440999",
"name": "In Progress"
},
"workspace_id": "550e8400-e29b-41d4-a716-446655440000"
}{
"error": "unauthorized",
"message": "Invalid or missing API key"
}{
"error": "forbidden",
"message": "Access denied"
}{
"error": "not_found",
"message": "Not found"
}{
"error": "validation_error",
"message": "Invalid data format",
"details": {
"errors": [
{
"loc": [
"body",
"field_name"
],
"msg": "field required",
"type": "value_error.missing"
}
]
}
}{
"error": "rate_limit_exceeded",
"message": "Too many requests"
}Authorizations
Enter your API key. Example: Bearer poelis_api_...
Path Parameters
Body
Request to update a product.
Product name
1Product description
Assign a part number when the product has none, or pass null to remove (retire) the current one. In-place changes are not supported.
Human-readable product ID (must be unique within workspace). Only lowercase letters, numbers and underscores are allowed.
1^[a-z0-9_]+$Baseline version number (must be an existing product version)
x >= 1Response
Updated product
Public representation of a product.
Human-readable product ID
Workspace this product belongs to
Product name
Product description
Active product part number, when assigned. Uniqueness is enforced organization-wide; format is validated when the product has rule configuration in the app.
User-selected baseline product version number.
Whether the product is archived or not.
Current workflow status for this product. Null when no status is set.
Show child attributes
Show child attributes
Workspace-level status IDs that are hidden for this product.
Product owner. Null when not set.
Show child attributes
Show child attributes
{
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
}
User who created the product.
Show child attributes
Show child attributes
{
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
}
ISO 8601 creation timestamp
ISO 8601 last-update timestamp
User who last updated the product
Show child attributes
Show child attributes
{
"id": "auth0|550e8400-e29b-41d4-a716-446655440000",
"imageUrl": "https://example.com/avatar.png",
"userName": "Jane Doe"
}