Restore a D1 database with Time Travel
POST
/api/v1/storage/d1/{database}/restore
const url = 'https://digize.com/api/v1/storage/d1/example/restore';const options = { method: 'POST', headers: { 'Idempotency-Key': '5f1c2a8e-3b7d-4c55-9a0e-1f2d3c4b5a69', 'x-api-key': '<x-api-key>', 'Content-Type': 'application/json' }, body: '{"at":"2026-04-15T12:00:00Z","bookmark":"example"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://digize.com/api/v1/storage/d1/example/restore \ --header 'Content-Type: application/json' \ --header 'Idempotency-Key: 5f1c2a8e-3b7d-4c55-9a0e-1f2d3c4b5a69' \ --header 'x-api-key: <x-api-key>' \ --data '{ "at": "2026-04-15T12:00:00Z", "bookmark": "example" }'Puts a D1 database back to how it was at a moment in the last 30 days, or to a Time Travel bookmark. The point just before is kept, so it can be undone.
Needs the sites:write permission. It can’t be undone.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”database
required
string
Header Parameters
Section titled “Header Parameters”Idempotency-Key
string
Makes the request safe to send again: for 24 hours the same key and request answer the first response without repeating the change.
Example
5f1c2a8e-3b7d-4c55-9a0e-1f2d3c4b5a69Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
at
string format: date-time
bookmark
string
Example generated
{ "at": "2026-04-15T12:00:00Z", "bookmark": "example"}Responses
Section titled “Responses”Done
Media typeapplication/json
object
id
required
string
name
required
string
cloudflareName
required
string
createdAt
required
string format: date-time
location
required
string
sizeBytes
required
number
tables
required
number
rowsRead
required
number
rowsWritten
required
number
readReplication
required
boolean
boundTo
required
Array<object>
object
worker
required
string
variable
required
string | null
live
required
boolean
tableList
required
Array<object>
object
name
required
string
rows
required
number
columns
required
Array<object>
object
name
required
string
type
required
string
primaryKey
boolean
notNull
boolean
sample
required
Array<Array<string | number | null>>
days
required
Array<object>
object
date
required
string format: date-time
rowsRead
required
number
rowsWritten
required
number
p50
required
number
p90
required
number
restorePoints
required
Array<object>
object
id
required
string
bookmark
required
string | null
at
required
string format: date-time
label
required
string
Example generated
{ "id": "example", "name": "example", "cloudflareName": "example", "createdAt": "2026-04-15T12:00:00Z", "location": "example", "sizeBytes": 1, "tables": 1, "rowsRead": 1, "rowsWritten": 1, "readReplication": true, "boundTo": [ { "worker": "example", "variable": "example" } ], "live": true, "tableList": [ { "name": "example", "rows": 1, "columns": [ { "name": "example", "type": "example", "primaryKey": true, "notNull": true } ], "sample": [ [ "example" ] ] } ], "days": [ { "date": "2026-04-15T12:00:00Z", "rowsRead": 1, "rowsWritten": 1, "p50": 1, "p90": 1 } ], "restorePoints": [ { "id": "example", "bookmark": "example", "at": "2026-04-15T12:00:00Z", "label": "example" } ]}What was sent isn’t valid (invalid).
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}No key, or one that’s unknown, off or expired.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}The key doesn’t have the permission this needs.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}Nothing has that id (not_found).
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}A request with the same Idempotency-Key is still running (conflict).
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}The Idempotency-Key was used with a different request.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}Over the rate limit; see retry-after.
Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
details
object
key
additional properties
any
Example
{ "error": { "code": "invalid" }}