---
title: "POST /api/builder/pages/{page_id}/duplicate/async/"
method: POST
path: "/api/builder/pages/{page_id}/duplicate/async/"
tags: ["Builder pages"]
---

# POST /api/builder/pages/{page_id}/duplicate/async/

`POST /api/builder/pages/{page_id}/duplicate/async/`

Start a job to duplicate the page with the provided `page_id` parameter if the authorized user has access to the builder's workspace.

## Path parameters

- `page_id` integer, required

## Headers

- `ClientSessionId` string, uuid

## Response `202`

- DuplicatePageJobTypeResponse
  - `id` integer, required
  - `type` string, required — The type of the job.
  - `progress_percentage` integer, required — A percentage indicating how far along the job is. 100 means that it's finished.
  - `state` string, required — Indicates the state of the import job.
  - `human_readable_error` string — A human readable error message indicating what went wrong.
  - `created_on` string, date-time, required
  - `updated_on` string, date-time, required
  - `original_page` Page, required — 👉 Mind to update the baserow.contrib.builder.api.domains.serializer.PublicPageSerializer when you update this one.
    - `id` integer, required
    - `name` string, required
    - `path` string, required
    - `path_params` PathParam[]
      - `name` string, required — The name of the parameter.
      - `type` 'text' | 'numeric', required — * `text` - text * `numeric` - numeric
    - `order` integer, required — Lowest first.
    - `builder_id` integer, required
    - `shared` boolean, required
    - `visibility` 'all' | 'logged-in', required — * `all` - All * `logged-in` - Logged In
    - `role_type` 'allow_all' | 'allow_all_except' | 'disallow_all_except', required — * `allow_all` - Allow All * `allow_all_except` - Allow All Except * `disallow_all_except` - Disallow All Except
    - `roles` unknown, required
    - `query_params` QueryParam[]
      - `name` string, required — The name of the parameter.
      - `type` 'text' | 'numeric', required — * `text` - text * `numeric` - numeric
    - `graph` unknown, required
  - `duplicated_page` Page, required — 👉 Mind to update the baserow.contrib.builder.api.domains.serializer.PublicPageSerializer when you update this one.
    - `id` integer, required
    - `name` string, required
    - `path` string, required
    - `path_params` PathParam[]
      - `name` string, required — The name of the parameter.
      - `type` 'text' | 'numeric', required — * `text` - text * `numeric` - numeric
    - `order` integer, required — Lowest first.
    - `builder_id` integer, required
    - `shared` boolean, required
    - `visibility` 'all' | 'logged-in', required — * `all` - All * `logged-in` - Logged In
    - `role_type` 'allow_all' | 'allow_all_except' | 'disallow_all_except', required — * `allow_all` - Allow All * `allow_all_except` - Allow All Except * `disallow_all_except` - Disallow All Except
    - `roles` unknown, required
    - `query_params` QueryParam[]
      - `name` string, required — The name of the parameter.
      - `type` 'text' | 'numeric', required — * `text` - text * `numeric` - numeric
    - `graph` unknown, required

## Other responses

- `400`
- `404`

---

[API](https://skmtc.net/baserow/apis/baserow-api-spec.md) · [All operations](https://skmtc.net/baserow/apis/baserow-api-spec/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/baserow/baserow-api-spec/revisions/0c490e5b0c7f/schema)
