Skip to content
Start here

Restore D1 Database to a bookmark or point in time

client.d1.database.timeTravel.restore(stringdatabaseId, TimeTravelRestoreParams { account_id, bookmark, timestamp } params, RequestOptionsoptions?): TimeTravelRestoreResponse { bookmark, message, previous_bookmark }
POST/accounts/{account_id}/d1/database/{database_id}/time_travel/restore

Restores a D1 database to a previous point in time either via a bookmark or a timestamp.

Security
API Token

The preferred authorization scheme for interacting with the Cloudflare API. Create a token.

Example:Authorization: Bearer Sn3lZJTBX6kkg7OdcBUAxOO963GEIyGQqnFTOFYY
API Email + API Key

The previous authorization scheme for interacting with the Cloudflare API, used in conjunction with a Global API key.

Example:X-Auth-Email: user@example.com

The previous authorization scheme for interacting with the Cloudflare API. When possible, use API tokens instead of Global API keys.

Example:X-Auth-Key: 144c9defac04969c7bfad8efaa8ea194
ParametersExpand Collapse
databaseId: string

D1 database identifier (UUID).

params: TimeTravelRestoreParams { account_id, bookmark, timestamp }
account_id: string

Path param: Account identifier tag.

maxLength32
bookmark?: string

Query param: A bookmark to restore the database to. Required if timestamp is not provided.

timestamp?: string

Query param: An ISO 8601 timestamp to restore the database to. Required if bookmark is not provided.

formatdate-time
ReturnsExpand Collapse
TimeTravelRestoreResponse { bookmark, message, previous_bookmark }

Response from a time travel restore operation.

bookmark?: string

The new bookmark representing the state of the database after the restore operation.

message?: string

A message describing the result of the restore operation.

previous_bookmark?: string

The bookmark representing the state of the database before the restore operation. Can be used to undo the restore if needed.

Restore D1 Database to a bookmark or point in time

import Cloudflare from 'cloudflare';

const client = new Cloudflare({
  apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted
});

const response = await client.d1.database.timeTravel.restore(
  'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx',
  { account_id: '023e105f4ecef8ad9ca31a8372d0c353' },
);

console.log(response.bookmark);
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "bookmark": "00000001-00000002-00004e2f-0a83ea2fceebc654de0640c422be4653",
    "message": "Database restored successfully",
    "previous_bookmark": "00000001-00000002-00004e2f-0a83ea2fceebc654de0640c422be4653"
  },
  "success": true
}
Returns Examples
{
  "errors": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "messages": [
    {
      "code": 1000,
      "message": "message",
      "documentation_url": "documentation_url",
      "source": {
        "pointer": "pointer"
      }
    }
  ],
  "result": {
    "bookmark": "00000001-00000002-00004e2f-0a83ea2fceebc654de0640c422be4653",
    "message": "Database restored successfully",
    "previous_bookmark": "00000001-00000002-00004e2f-0a83ea2fceebc654de0640c422be4653"
  },
  "success": true
}