Propose a regime profile
PUT
/products/{product_id}/profiles/{regime}
const url = 'https://api.europlaybook.com/v1/products/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/profiles/example';const options = { method: 'PUT', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"data":{},"valid_from":"2026-04-15"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request PUT \ --url https://api.europlaybook.com/v1/products/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/profiles/example \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "data": {}, "valid_from": "2026-04-15" }'Creates or changes the product’s own profile for regime as a proposal (state proposed, source
api); data must match the regime’s JSON Schema (422 otherwise). A person confirms in the portal.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”product_id
required
Product Id
string format: uuid
regime
required
Regime
string
Request Bodyrequired
Section titled “Request Bodyrequired”Responses
Section titled “Responses”OK
Media typeapplication/json
RegimeProfileOut
Per-regime product data (e.g. WEEE category), validated by the knowledge pack’s JSON Schema.
object
id
required
Id
string format: uuid
regime
required
Regime
string
schema_version
required
Schema Version
string
data
required
Data
object
key
additional properties
any
state
required
State
Proposed (e.g. from the API) or confirmed by a person.
string
inherited
required
Inherited
The group’s profile (the product has no own one for the regime).
boolean
source
required
Source
string
source_ref
Source Ref
string
Example
{ "regime": "epr.weee", "state": "proposed", "source": "manual", "source_ref": ""}Bad Request
Media typeapplication/json
PublicErrorOut
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Unauthorized
Media typeapplication/json
PublicErrorOut
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Forbidden
Media typeapplication/json
PublicErrorOut
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Not Found
Media typeapplication/json
PublicErrorOut
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Conflict
Media typeapplication/json
PublicErrorOut
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}Unprocessable Content
Media typeapplication/json
PublicValidationErrorOut
object
detail
required
Detail
What went wrong, in English, for people and logs.
string
code
required
Code
Stable machine-readable error code; translate and branch on this.
string
errors
Errors
Per-field problems (pydantic format: loc, msg, type).
Array<object>
object
key
additional properties
any
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }, "errors": []}Too Many Requests
Media typeapplication/json
PublicErrorOut
object
Example
{ "detail": "This API key lacks the scope catalogue:write", "code": "insufficient_scope", "params": { "required_scope": "catalogue:write" }}