Conventions
400 Validation failed
Problem type https://www.getproperly.com/developers/errors/validation
| HTTP status | 400 |
|---|---|
| type | https://www.getproperly.com/developers/errors/validation |
| title | Validation failed |
| Content-Type | application/problem+json |
When it occurs
The request shape is invalid (the response carries an errors[] array naming each field), or a domain-level rule rejected the request (detail only): for example a sourcePropertyId that does not resolve, an image upload that failed, or an invalid dateFrom.
Example
{
"type": "https://www.getproperly.com/developers/errors/validation",
"title": "Validation failed",
"status": 400,
"detail": "One or more fields are invalid",
"instance": "/v1/properties",
"code": "validation_failed",
"requestId": "aQ3fT8xW1m",
"errors": [
{
"field": "name",
"code": "stringMin",
"message": "The 'name' field length must be greater than or equal to 3 characters long."
},
{
"field": "unexpectedField",
"code": "objectStrict",
"message": "The object '' contains forbidden keys: 'unexpectedField'."
}
]
} Handling
- Read errors[] when present. Each entry is { field, code, message }; code is a machine-readable validator code such as required, stringMin, stringMax, number, enumValue, url, email, or objectStrict.
- Unknown request-body fields are rejected, not ignored. Each offending key is listed with code "objectStrict". Send exactly the fields the reference lists.
- Fix the request before retrying. Resending the same body returns the same 400.
All problem types are listed on the Errors page.