Create a manual order for the organization identified by the bearer token. Orders created here are billed manually and use the tree product type. Contact support to arrange another product type.
Headers
-
A unique key for this order request. Reusing the same key for 15 minutes returns the original response instead of creating another order.
Minimum length is
1.
POST
/orders
curl \
--request POST 'https://api.protect.earth/orders' \
--header "Authorization: Bearer $ACCESS_TOKEN" \
--header "Content-Type: application/json" \
--header "idempotency-key: string" \
--data '{
"orderedUnits": 600
}'
Request examples
# Headers
idempotency-key: string
# Payload
{
"orderedUnits": 600
}
Response examples (201)
{
"id": "string",
"brand": "string",
"type": "manual",
"source": "corporate",
"status": "incomplete",
"receivedOn": "2026-05-04T09:42:00Z",
"fulfilledOn": "2026-05-04T09:42:00Z",
"personalisedCertificateMessage": "string",
"personalisedEmailMessage": "string",
"unitType": "tree",
"orderedUnits": 600,
"allocatedUnits": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"unitType": "tree",
"location": {
"latitude": 51.87351,
"longitude": -1.90973,
"name": "Hawling, England",
"what3words": "headlight.hunches.heads"
},
"photos": {
"large": {
"height": 3000,
"width": 3000,
"url": "https://aws-bucket-name.s3.eu-west-2.amazonaws.com/trees/eyJpdiI6IkJ6S1hJcE40UGRUbFk4UXd6WVdkYWc9PSIsInZhbHVlIjoiUlk2Q05TalQ3WnpnTnNDbWhzbURIQT09IiwibWFjIjoiYmY1NmNhMDMzMDU2NTk3OTEwMzNiMzUxZjA1Mzc3MGMyYjFhM2ZhYWJhNjQyNjhiZjQxNDhiYWMyYjlhYWUzZSIsInRhZyI6IiJ9.jpg"
}
},
"species": "Silver Birch",
"plantedOn": "2021-12-26T15:20:42.000000Z"
}
],
"links": {
"organization": "https://example.com"
}
}
Response examples (400)
{
"type": "https://protect.earth/probs/something-went-wrong",
"title": "You do not have enough credit.",
"status": 400,
"detail": "Your current balance is 30, but that costs 50.",
"instance": "/account/12345/msgs/abc"
}
Response examples (401)
{
"type": "https://protect.earth/probs/something-went-wrong",
"title": "You do not have enough credit.",
"status": 400,
"detail": "Your current balance is 30, but that costs 50.",
"instance": "/account/12345/msgs/abc"
}
Response examples (422)
{
"type": "https://protect.earth/probs/something-went-wrong",
"title": "You do not have enough credit.",
"status": 400,
"detail": "Your current balance is 30, but that costs 50.",
"instance": "/account/12345/msgs/abc"
}