/projects/{project_id}/branches/{branch_id}/buckets/{bucket_name}/objects-by-prefixbetaDelete every object under a key prefix (folder) in a bucket
Soft-deletes every object on the specified branch whose key starts with
prefix, in a single call. Intended to back a "delete folder" action in
an object browser: a prefix of app/avatars/ removes every object
beneath that folder. Served by the user's session (no customer S3
credentials required).
prefix must be non-empty, end with /, be at most 1024 bytes, and
contain no control characters - a partial-segment prefix cannot
accidentally delete sibling keys. Returns the number of objects
soft-deleted (deleted), which may be 0 when no live object matched the
prefix on this branch.
Only objects physically present on this branch are tombstoned; objects inherited from an ancestor branch via copy-on-write (not materialized on this branch) are out of scope.
Note: This endpoint is currently in Private Beta.
Quick start
curl "https://console.neon.tech/api/v2/projects/$PROJECT_ID/branches/$BRANCH_ID/buckets/$BUCKET_NAME/objects-by-prefix?prefix=$PREFIX" \
-X DELETE \
-H "Authorization: Bearer $NEON_API_KEY"Every field below is optional. An empty body works too.
import { createApiClient } from '@neondatabase/api-client';
const api = createApiClient({ apiKey: process.env.NEON_API_KEY });
const { data } = await api.deleteProjectBranchBucketObjectsByPrefix({ projectId: process.env.PROJECT_ID, branchId: process.env.BRANCH_ID, bucketName: process.env.BUCKET_NAME, prefix: process.env.PREFIX });Parameters
project_idThe Neon project ID
branch_idThe Neon branch ID
bucket_nameThe bucket name
prefixThe key prefix (folder) to delete. Must be non-empty and end with
/. Every object on this branch whose key starts with this prefix
is soft-deleted.
Response
200The prefix was soft-deleted. deleted is the number of objects
tombstoned (may be 0 when nothing live matched on this branch).
Errors
Bucket not found
General error
This endpoint can return the standard Neon API error response.
Response fields
messageRequired. Human-readable error message.codeRequired. Machine-readable error code.request_idOptional. Request identifier for debugging. You can provide one with theX-Request-IDheader.
Retry guidance
If no response is returned, the request may still have reached the server. This is why retry safety depends on the method and status code.
Idempotent methods (GET, HEAD, OPTIONS) are generally safe to retry after a network error or timeout. Non-idempotent methods (POST, PATCH, DELETE, PUT) can change state, so avoid automatic retries unless your workflow can tolerate duplicate effects.
Responses with 423 Locked or 503 Service Unavailable are safe to retry. 423 Locked means the resource is temporarily locked, usually because another operation is in progress.








