Copy for LLM[View as Markdown](https://docs.planet.com/develop/apis/quota/reference/) # Quota Reservations API Reference * QuotaReservations * getGet all quota reservations * postCreate a quota reservation * postCreate bulk quota reservations asynchronously * postCalculate quota reservation estimate without creating reservations * getGet all jobs as a paginated list. [API docs by Redocly](https://redocly.com/redoc/) # Quota API (1.0.0) Download OpenAPI specification:[Download](https://docs.planet.com/redocusaurus/quota-api-spec.yaml) Query and manage quota and product access related data ## [](#tag/QuotaReservations)QuotaReservations ## [](#tag/QuotaReservations/paths/~1account~1v1~1quota-reservations~1/get)Get all quota reservations Retrieve a paginated list of quota reservations for the current organization. Supports filtering, sorting, and field selection. ##### query Parameters | | | | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | fields | string(\w+)(,\w+)\*List of comma separated model fields to return only. | | limit | number \Limit parameter for paging output. | | offset | number \Offset parameter for paging output. | | sort | string\[+-]?\w+Sort specification, can be (ascending order) or - (descending order). | | {field}\_\_{operator} | stringFilter operations on fields are available with query parameters giving field name and operator. Available operators are `eq`, `lt`, `lte`, `gt`, `gte`, `ne`, `like`, `ilike`, `icontains`, `isnull`, `in`, `notin`. The `like` operator is case-sensitive and takes a `%` wildcard. \`\`ilike`is the same as`like` but case-insensitive. icontains` performs a case-insensitive `query searching only for matching substrings. isnull` accepts `0` for IS NOT NULL, `and everything else for IS NULL. like`, `ilike`, and `icontains` operations are only available for string fields. | | {field} | stringShorthand for {field}\_\_eq filter. | ### Responses **200** List of quota reservations retrieved successfully **400** Bad Request - Invalid query parameters get/account/v1/quota-reservations/ https\://docs.planet.com/account/v1/quota-reservations/ ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ "meta": { "args": { }, "count": 0, "next": "string", "prev": "string" }, "results": [ { "amount": null, "aoi_ref": "string", "collection_id": "string", "created_at": "2019-08-24T14:15:22Z", "id": 0, "organization_id": 0, "product_id": 0, "state": "string", "updated_at": "2019-08-24T14:15:22Z", "url": null, "user_id": 0 } ] }` ## [](#tag/QuotaReservations/paths/~1account~1v1~1quota-reservations~1/post)Create a quota reservation Create a quota reservation for the specified product and area of interest references. Use the product\_id parameter which corresponds to the 'id' field returned from the /my/products endpoint. ##### Request Body schema: application/jsonrequired The quota reservation to create | | | | -------------- | --------------------------------------------------------------------------------------------------------------------- | | aoi\_refs | Array of stringsList of area of interest references | | collection\_id | stringCollection ID in either full ref format (pl:features/my/collection-hash) or short hash format (collection-hash) | | product\_id | integerProduct ID from /my/products endpoint | ### Responses **201** Quota reservation created successfully **400** Bad Request - Invalid input or insufficient quota **403** Forbidden - Insufficient permissions **503** Service Unavailable - Spatial features service (geocorn) is unreachable or returned incomplete results. Safe to retry with backoff. post/account/v1/quota-reservations/ https\://docs.planet.com/account/v1/quota-reservations/ ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ "aoi_refs": [ "aoi_123", "aoi_456" ], "product_id": 12345 }` ### Response samples * 201 * 400 * 403 * 503 Content type application/json Copy Expand all Collapse all `{ "quota_remaining": null, "quota_reservations": [ { "aoi_ref": "string", "id": 0, "quota_used": 0, "state": "string" } ], "quota_total": null, "quota_units": null, "quota_used": null, "url": null }` ## [](#tag/QuotaReservations/paths/~1account~1v1~1quota-reservations~1bulk-reserve/post)Create bulk quota reservations asynchronously Submit a bulk request to create quota reservations. This operation is processed asynchronously and returns a job ID to track the progress. The product\_id parameter corresponds to the 'id' field returned from the /my/products endpoint. ##### Request Body schema: application/jsonrequired The bulk quota reservations to create | | | | -------------- | --------------------------------------------------------------------------------------------------------------------- | | aoi\_refs | Array of stringsList of area of interest references | | collection\_id | stringCollection ID in either full ref format (pl:features/my/collection-hash) or short hash format (collection-hash) | | product\_id | integerProduct ID from /my/products endpoint | ### Responses **201** Bulk reservation job created successfully **400** Bad Request - Invalid input or insufficient quota post/account/v1/quota-reservations/bulk-reserve https\://docs.planet.com/account/v1/quota-reservations/bulk-reserve ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ "aoi_refs": [ "aoi_123", "aoi_456", "aoi_789" ], "collection_id": "my-collection-3qjDEZD", "product_id": 12345 }` ### Response samples * 201 * 400 Content type application/json Copy `{ "job_id": "string", "status": "pending" }` ## [](#tag/QuotaReservations/paths/~1account~1v1~1quota-reservations~1estimate/post)Calculate quota reservation estimate without creating reservations Calculate an estimate for quota usage given a product and list of area of interest (AOI) references. This endpoint helps users understand the quota cost of their intended reservations before actually creating them. It does NOT create any reservations or modify quota - it only provides estimates. The product\_id parameter corresponds to the 'id' field returned from the /my/products endpoint. If using collection\_id, it can be provided in either full ref format (pl:features/my/collection-hash) or short hash format (collection-hash). **Important**: The quota\_remaining field shows your current available quota and does NOT subtract the cost of the AOIs being estimated. To determine if you have sufficient quota for the request, compare total\_cost against quota\_remaining. **Response fields**: * **total\_cost** (float): The total quota cost for all requested AOI refs in this estimate. This is the sum of all individual AOI costs and represents how much quota would be consumed if you were to reserve all the requested AOIs. * **quota\_remaining** (float): Your current available quota after accounting for all existing reservations. This value does NOT include/subtract the cost of the AOIs being estimated. May be null if the product has unlimited quota. * **quota\_total** (float): The total quota originally allocated to this product access. This is your quota limit before any reservations. May be null if unlimited. * **estimated\_costs** (array): Detailed breakdown of quota costs per AOI ref. Each item contains: * aoi\_ref (string): The AOI reference * cost (float): The quota cost for this specific AOI * **quota\_units** (string): The units of measurement for all quota values (e.g., "square\_meter"). * **reservations\_remaining** (integer): Remaining number of reservations allowed before the product's max\_reservations cap is reached. Like quota\_remaining, this reflects existing reservations only and does NOT subtract the refs in this estimate. Null when the product access has no cap. **Example usage**: If quota\_total=1000, quota\_remaining=700 (meaning 300 already reserved), and total\_cost=500, then you have sufficient quota since 500 < 700. After reservation, quota\_remaining would be 200. ##### Request Body schema: application/jsonrequired The product and AOI refs to estimate | | | | -------------- | --------------------------------------------------------------------------------------------------------------------- | | aoi\_refs | Array of stringsList of area of interest references | | collection\_id | stringCollection ID in either full ref format (pl:features/my/collection-hash) or short hash format (collection-hash) | | product\_id | integerProduct ID from /my/products endpoint | ### Responses **200** Quota estimate calculated successfully **400** Bad Request - Invalid input or AOI refs outside coverage boundary **503** Service Unavailable - Spatial features service (geocorn) is unreachable or returned incomplete results. Safe to retry with backoff. post/account/v1/quota-reservations/estimate https\://docs.planet.com/account/v1/quota-reservations/estimate ### Request samples * Payload Content type application/json Copy Expand all Collapse all `{ "aoi_refs": [ "aoi_123", "aoi_456" ], "product_id": 12345 }` ### Response samples * 200 * 400 * 503 Content type application/json Example Example with insufficient quotaExample with insufficient quota Copy Expand all Collapse all `{ "estimated_costs": [ { "aoi_ref": "aoi_789", "cost": 800000 } ], "quota_remaining": 200000, "quota_total": 1000000, "quota_units": "square_meter", "reservations_remaining": 5, "total_cost": 800000 }` ## [](#tag/QuotaReservations/paths/~1account~1v1~1quota-reservations~1jobs/get)Get all jobs as a paginated list. Get all jobs as paginated list. If successful, returns a list of jobs. ##### query Parameters | | | | --------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | fields | string(\w+)(,\w+)\*List of comma separated model fields to return only. | | limit | number \Limit parameter for paging output. | | offset | number \Offset parameter for paging output. | | sort | string\[+-]?\w+Sort specification, can be (ascending order) or - (descending order). | | {field}\_\_{operator} | stringFilter operations on fields are available with query parameters giving field name and operator. Available operators are `eq`, `lt`, `lte`, `gt`, `gte`, `ne`, `like`, `ilike`, `icontains`, `isnull`, `in`, `notin`. The `like` operator is case-sensitive and takes a `%` wildcard. \`\`ilike`is the same as`like` but case-insensitive. icontains` performs a case-insensitive `query searching only for matching substrings. isnull` accepts `0` for IS NOT NULL, `and everything else for IS NULL. like`, `ilike`, and `icontains` operations are only available for string fields. | | {field} | stringShorthand for {field}\_\_eq filter. | ### Responses **200** A list representation of all jobs. **400** An error such as validation problems. get/account/v1/quota-reservations/jobs https\://docs.planet.com/account/v1/quota-reservations/jobs ### Response samples * 200 * 400 Content type application/json Copy Expand all Collapse all `{ "meta": { "args": { }, "count": 0, "next": "string", "prev": "string" }, "results": [ { "collection_id": "string", "id": 0, "organization_id": 0, "percentage": 0, "processed_items": 0, "status": "string", "total_items": 0, "type": "string" } ] }`