Skip to main content

Quick Start

Short path to a first successful backup. Not sure where to start? Pick your goal in the cookbook.

This example archives the list of Russian certificate authorities published at e-trust.gosuslugi.ru through an undocumented POST API.

1. Create a project​

apibackuper create etrust
cd etrust

Edit apibackuper.yaml:

settings:
initialized: true
name: etrust

project:
description: E-Trust UC list
url: https://e-trust.gosuslugi.ru/app/scc/portal/api/v1/portal/ca/list
http_mode: POST
work_modes: full,incremental,update
iterate_by: page

params:
page_size_param: recordsOnPage
page_size_limit: 100
page_number_param: page

data:
total_number_key: total
data_key: data
item_key: РеестровыйНомер
change_key: СтатусАккредитации.ДействуетС

storage:
storage_type: zip

Add params.json with the POST body used for each request:

{
"page": 1,
"orderBy": "id",
"ascending": false,
"recordsOnPage": 100,
"searchString": null,
"cities": null,
"software": null,
"cryptToolClasses": null,
"statuses": null
}

2. Estimate size and time​

apibackuper estimate full

Typical output:

Total records: 502
Records per request: 100
Total requests: 6
Average record size 32277.96 bytes
Estimated size (json lines) 16.20 MB
Avg request time, seconds 66.9260
Estimated all requests time, seconds 402.8947

3. Run the backup​

apibackuper run full

Records are stored in the project storage (by default a ZIP file).

4. Export​

Format is detected from the file extension, or you can pass --format:

apibackuper export etrust.jsonl
apibackuper export etrust.jsonl.gz
apibackuper export etrust.jsonl.zst
apibackuper export etrust.parquet

Next steps​