curl --request PATCH \
--url https://app.yampi.ai/api/v1/accounts/{account_id}/requirements/{id} \
--header 'Content-Type: application/json' \
--header 'api_access_token: <api-key>' \
--data '
{
"requirement": {
"title": "<string>",
"description": "<string>",
"priority": "<string>",
"due_at": "<string>",
"team_id": 123,
"reporter_contact_id": 123,
"cost_estimate": 123,
"tenant_share_percent": 50,
"requirement_type": "<string>",
"approval_forced": true
}
}
'const options = {
method: 'PATCH',
headers: {api_access_token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requirement: {
title: '<string>',
description: '<string>',
priority: '<string>',
due_at: '<string>',
team_id: 123,
reporter_contact_id: 123,
cost_estimate: 123,
tenant_share_percent: 50,
requirement_type: '<string>',
approval_forced: true
}
})
};
fetch('https://app.yampi.ai/api/v1/accounts/{account_id}/requirements/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.yampi.ai/api/v1/accounts/{account_id}/requirements/{id}"
payload = { "requirement": {
"title": "<string>",
"description": "<string>",
"priority": "<string>",
"due_at": "<string>",
"team_id": 123,
"reporter_contact_id": 123,
"cost_estimate": 123,
"tenant_share_percent": 50,
"requirement_type": "<string>",
"approval_forced": True
} }
headers = {
"api_access_token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"category": "<string>",
"id": 123,
"display_id": 123,
"account_id": 123,
"requirement_type": "<string>",
"status": "<string>",
"priority": "<string>",
"source": "<string>",
"title": "<string>",
"description": "<string>",
"responsible_party": "<string>",
"tenant_share_percent": 123,
"approval_status": "<string>",
"approval_forced": true,
"cost_estimate": 123,
"classification": {},
"property_id": 123,
"conversation_id": 123,
"assignee_id": 123,
"reporter_contact_id": 123,
"duplicate_of_id": 123,
"approval_required": true,
"sign_off_required": true,
"owner_portal_enabled": true,
"classification_editable": true,
"approval_requested_at": "<string>",
"classification_options": [
{
"id": "<string>",
"types": [
{
"id": "<string>",
"approval_threshold": 123,
"classification": {
"required": [
"<string>"
],
"optional": [
"<string>"
]
},
"termination_canons": {},
"resolution_business_days": 123
}
]
}
],
"created_at": "<string>",
"updated_at": "<string>"
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}{}{}Update requirement
Correct a requirement while it is worked, including the classification the detail rail edits. Status is not editable here; use the transition endpoint. A closed, rejected or cancelled requirement is refused. The classification attributes (cost_estimate, responsible_party, tenant_share_percent, requirement_type, approval_forced) are refused with 422 unless classification_editable is true (received or triaged, and not yet approved by the owner). Every accepted edit is logged as an updated event whose data.changes carries the before/after pair of each changed attribute.
curl --request PATCH \
--url https://app.yampi.ai/api/v1/accounts/{account_id}/requirements/{id} \
--header 'Content-Type: application/json' \
--header 'api_access_token: <api-key>' \
--data '
{
"requirement": {
"title": "<string>",
"description": "<string>",
"priority": "<string>",
"due_at": "<string>",
"team_id": 123,
"reporter_contact_id": 123,
"cost_estimate": 123,
"tenant_share_percent": 50,
"requirement_type": "<string>",
"approval_forced": true
}
}
'const options = {
method: 'PATCH',
headers: {api_access_token: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
requirement: {
title: '<string>',
description: '<string>',
priority: '<string>',
due_at: '<string>',
team_id: 123,
reporter_contact_id: 123,
cost_estimate: 123,
tenant_share_percent: 50,
requirement_type: '<string>',
approval_forced: true
}
})
};
fetch('https://app.yampi.ai/api/v1/accounts/{account_id}/requirements/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.yampi.ai/api/v1/accounts/{account_id}/requirements/{id}"
payload = { "requirement": {
"title": "<string>",
"description": "<string>",
"priority": "<string>",
"due_at": "<string>",
"team_id": 123,
"reporter_contact_id": 123,
"cost_estimate": 123,
"tenant_share_percent": 50,
"requirement_type": "<string>",
"approval_forced": True
} }
headers = {
"api_access_token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"category": "<string>",
"id": 123,
"display_id": 123,
"account_id": 123,
"requirement_type": "<string>",
"status": "<string>",
"priority": "<string>",
"source": "<string>",
"title": "<string>",
"description": "<string>",
"responsible_party": "<string>",
"tenant_share_percent": 123,
"approval_status": "<string>",
"approval_forced": true,
"cost_estimate": 123,
"classification": {},
"property_id": 123,
"conversation_id": 123,
"assignee_id": 123,
"reporter_contact_id": 123,
"duplicate_of_id": 123,
"approval_required": true,
"sign_off_required": true,
"owner_portal_enabled": true,
"classification_editable": true,
"approval_requested_at": "<string>",
"classification_options": [
{
"id": "<string>",
"types": [
{
"id": "<string>",
"approval_threshold": 123,
"classification": {
"required": [
"<string>"
],
"optional": [
"<string>"
]
},
"termination_canons": {},
"resolution_business_days": 123
}
]
}
],
"created_at": "<string>",
"updated_at": "<string>"
}{
"description": "<string>",
"errors": [
{
"field": "<string>",
"message": "<string>",
"code": "<string>"
}
]
}{}{}Path Parameters
Response
Success
Per-type terms decided at triage beyond responsible_party and cost_estimate (custom_attributes.classification). Keys vary by type — e.g. payment_reason, property_tenancy_id, billing_cycle_id, termination_cause, delivery_date, termination_amount, document_kind, complaint_target, complaint_merit, complaint_response.