Bulk Operations · recordBulk.update
PUT/bulkrecordBulk.update
Update records in bulk
Applies the same change across many records in one request.
- Base URL
- https://api.power301.com/v1
- Auth
- Bearer token
- Idempotent
- Yes
- Returns
- application/json
The request
Send a JSON body to PUT /bulk. Every field is optional — send only what you want to set.
# Update records in bulk
curl -X PUT "https://api.power301.com/v1/bulk?filter=value" \
-H "Authorization: Bearer $POWER301_TOKEN"Query parameters
| Parameter | Description |
|---|---|
| sortoptionalstring | Sort results by field. Prefix with - for descending order. Available sorts: id, created_at, updated_at, total_clicksid-idcreated_at-created_atupdated_at-updated_attotal_clicks-total_clicks |
| filterRequiredobject | Records the operation applies to. Accepted as a query object
(filter[host]=go.example.com) or as a filter object in the JSON body.
At least one filter must carry a value, or every record of the workspace would match.
Available filters: id, host, path, tld, handler, type, destination, search, tags, traffic, dns_correct, status, created_after, created_before |
| filter[id]optionalstring | |
| filter[host]optionalstring | A hostname already connected to the workspace. See List hostnames. |
| filter[path]optionalstring | |
| filter[tld]optionalstring | |
| filter[handler]optionalstring | |
| filter[type]optionalstring | Record type. List the available types with GET /shared/types. |
| filter[destination]optionalstring | Where matching traffic is sent. |
| filter[search]optionalstring | |
| filter[tags]optionalstring | Freeform labels. Filter on them with filter[tags]. |
| filter[traffic]optionalstring | |
| filter[dns_correct]optionalstring | |
| filter[status]optionalstring | The HTTP status code used for the redirect response. |
| filter[created_after]optionalstring | |
| filter[created_before]optionalstring |
The response
A 200 returns the record as JSON.
{
"affected": 1,
"still_paused": 1
}Status codes
200
SuccessNumber of records the filter matched and the update was applied to.
still_paused counts the matched records that a status: active update could not resume because the plan paused them and the workspace is still over its allowance; they resume on their own once the plan covers them. It is 0 for any other update.401
UnauthenticatedUnauthenticated
422
Validation failedA field was rejected.
errors lists every field with its reason.429
Too many requestsToo many requests
484
Bad requestThe workspace role of the authenticated user is too low for this action.
What usually comes next
One call is rarely the whole job. These are the endpoints most integrations reach for around this one.
