Skip to content
Start here

Restore D1 Database to a bookmark or point in time

d1.database.time_travel.restore(strdatabase_id, TimeTravelRestoreParams**kwargs) -> TimeTravelRestoreResponse
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
account_id: str

Account identifier tag.

maxLength32
database_id: str

D1 database identifier (UUID).

bookmark: Optional[str]

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

timestamp: Optional[Union[str, datetime]]

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

formatdate-time
ReturnsExpand Collapse
class TimeTravelRestoreResponse:

Response from a time travel restore operation.

bookmark: Optional[str]

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

message: Optional[str]

A message describing the result of the restore operation.

previous_bookmark: Optional[str]

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 os
from cloudflare import Cloudflare

client = Cloudflare(
    api_token=os.environ.get("CLOUDFLARE_API_TOKEN"),  # This is the default and can be omitted
)
response = client.d1.database.time_travel.restore(
    database_id="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    account_id="023e105f4ecef8ad9ca31a8372d0c353",
)
print(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
}