Cloudflare API
new_classes body parameter behaviour change on PUT /client/v4/accounts/{id}/workers/scripts/{id}
Stopped workingSubscribe to Cloudflare APIShare
On July 9, 2026, Cloudflare API introduced a breaking change to PUT /client/v4/accounts/{id}/workers/scripts/{id}. Requests using the body parameter new_classes to set up key-value backed Durable Object namespaces fail if the account does not already have one. After that day, callers cannot create these namespaces using that parameter.
Calls it hits
PUT /client/v4/accounts/{id}/workers/scripts/{id}body parameter new_classes
What to use instead of these calls
Create Durable Object classes with a new_sqlite_classes migration instead of new_classes.
In Cloudflare API's words
If your account does not already have a key-value (KV) backed Durable Object namespace, you can no longer create new ones.
Facts
- API
- Cloudflare API
api.cloudflare.com - Kind
- Behaviour change
- Announced
- July 9, 2026
- Takes effect
- July 9, 2026
- Calls after that day
- Fail
- Source
- Announcement
- Last updated
- Verified
- , against Cloudflare API's own pages
Questions
When does this change take effect?
Calls to PUT /client/v4/accounts/{id}/workers/scripts/{id}, body parameter new_classes on Cloudflare API stopped working on July 9, 2026.
What happens to calls after July 9, 2026?
They have failed since July 9, 2026.
How do I find the calls this hits in my code?
Okapi reads your repository, finds the calls this change hits and opens a pull request with the fix. It never commits to your branches: every change comes as a pull request you review.
More from Cloudflare API 10
-
GET /accounts/{id}/devicesEndpoint removal Stopped working -
GET /accounts/{id}/devices/{id}Endpoint removal Stopped working -
GET /zones/{id}/amp/sxgEndpoint removal Stopped working -
PUT /zones/{id}/amp/sxgEndpoint removal Stopped working -
GET /accounts/{id}/registrar/domainsEndpoint removal Stopped working -
GET /accounts/{id}/registrar/domains/{id}Endpoint removal Stopped working -
PUT /accounts/{id}/registrar/domains/{id}Endpoint removal Stopped working -
DELETE /accounts/{id}/teamnet/routes/network/{id}Endpoint removal Stopped working -
PATCH /accounts/{id}/teamnet/routes/network/{id}Endpoint removal Stopped working -
POST /accounts/{id}/teamnet/routes/network/{id}Endpoint removal Stopped working
You fixed this one by hand.
Okapi opens the pull request with the fix before the next breaking change reaches your code.