Manage standalone lab soil-property records — bulk density, soil organic carbon, and related measurements.
This page covers only what's specific to soil property. For the base URL, authentication, and response envelope, see SatMRV Overview.
This is a lower-traffic, standalone resource. Most integrations should instead use the
soil-propertyaction on a Sample (see Samples), since that keeps the soil-property record tied to its sample automatically. Use this endpoint only if you need to manage soil-property records independently of a specific sample.
Endpoints
| Method | Path | Purpose |
|---|---|---|
| GET | stratification/sample-plan/sample-point-soil-property/ | List records |
| POST | stratification/sample-plan/sample-point-soil-property/ | Create a record |
| GET | stratification/sample-plan/sample-point-soil-property/{id}/ | Retrieve a record |
| PUT/PATCH | stratification/sample-plan/sample-point-soil-property/{id}/ | Update a record |
| DELETE | stratification/sample-plan/sample-point-soil-property/{id}/ | Delete a record |
Auth
Send your access token as a bearer token, as described in SatMRV Overview.
Required permission per action:
| Action | Required permission |
|---|---|
| List / Retrieve | soil_property.view |
| Create | soil_property.create |
| Update / Partial update | soil_property.edit |
| Destroy | soil_property.delete |
A request lacking the required permission gets HTTP 403 with a structured body:
{
"code": "permission_denied",
"message": "You do not have permission to perform this action.",
"details": {
"required_permission": "soil_property.create",
"action": "create",
"resource": "soil_property"
}
}Request fields
| Field | Type | Required | Notes |
|---|---|---|---|
bulk_density | float | Yes | |
soc | float | Yes | Soil organic carbon |
clay | float | No | Nullable |
sand | float | No | Nullable |
silt | float | No | Nullable |
humus | float | No | Nullable |
p2o5 | float | No | Nullable |
k2o | float | No | Nullable |
mg | float | No | Nullable |
ph_soil | float | No | Nullable |
ph_h2o | float | No | Nullable |
List/retrieve responses on this endpoint currently include a duplicated pair of fields for the linked sample point (both a
sample_pointnested object and a separatesample_point_id, appearing twice in the raw response due to how the underlying serializer is built). Don't assume the response shape is minimal — verify the exact fields your integration reads against a live response rather than assuming only what's listed above.
Status codes
| Status | Trigger |
|---|---|
| 200 | List, retrieve, update. |
| 201 | Record created. |
| 204 | Record deleted. |
| 400 | Validation failure — e.g. missing bulk_density/soc. |
| 403 | Missing required permission. |
| 404 | Not found. |
Example
Create
curl -X POST https://backend.spacenus.de/api/v1.2/sat-mrv/stratification/sample-plan/sample-point-soil-property/ \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"bulk_density": 1.35,
"soc": 2.1,
"clay": 18.5,
"ph_soil": 6.4
}'Response:
{
"status": "success",
"message": "Success",
"data": {
"id": 501,
"bulk_density": 1.35,
"soc": 2.1,
"clay": 18.5,
"sand": null,
"silt": null,
"humus": null,
"p2o5": null,
"k2o": null,
"mg": null,
"ph_soil": 6.4,
"ph_h2o": null
}
}