PUT/api/v1/documents/{slug}/parent

Move a page

Puts a page inside another page (parent: its address) or at the top level (null). If that changes who can read it, the answer is 409 with code: "access_change" and the readers before and after; send confirm_access_change: true to move it anyway.

API token required10 per minute per IPMCP: move_page

Guide: Sub-pages

Code samples and Try it

Path parameters

#
  • slugstringRequired

    The document's address: the part after markdrop.in/.

Request body

#

application/json, required

  • parentstring

    The address of the page to put it in, or null for the top level. 1–64 characters.

  • confirm_access_changeboolean

    Move it even though that changes who can read it. Default false.

Responses

#
  • 200OK.
  • 401No token, or the token is revoked or mistyped.
  • 409The move changes who can read the page. Send confirm_access_change: true to go ahead.
  • 422The request didn't validate. detail lists each problem, with where it is (loc) and why (msg).
  • 429Too many requests from your IP address. Wait the seconds in Retry-After.
200 response: 51 fields (DocumentResponse)
  • slugstring

    The address: markdrop.in/<slug>.

  • urlstring

    The link to share.

  • folder_patharray of string
  • titlestring | null

    Shown on the page and in link previews.

  • contentstring

    The document's Markdown.

  • created_atstring (date-time)

    ISO 8601, for example 2026-11-30T12:00:00Z.

  • updated_atstring (date-time)

    ISO 8601, for example 2026-11-30T12:00:00Z.

  • expires_atstring (date-time) | null

    ISO 8601, for example 2026-11-30T12:00:00Z.

  • viewsinteger

    Default 0.

  • revinteger | null
  • is_password_protectedboolean

    Default false.

  • is_ownedboolean

    Default false.

  • is_ownerboolean

    Default false.

  • idstring | null
  • refstring | null
  • google_doc_urlstring | null
  • google_doc_staleboolean

    Default false.

  • vscode_syncedboolean

    Default false.

  • encryptedboolean

    Set by clients that encrypt in the browser: content and title are already ciphertext. The server never sees the key. Default false.

  • kindstring

    markdown for a document, artifact for a file. Default "markdown".

  • mimestring | null
  • rendererstring | null
  • type_labelstring | null
  • size_bytesinteger | null
  • original_filenamestring | null
  • artifact_urlstring | null
  • download_urlstring | null
  • poster_urlstring | null
  • mediaobject | null
  • file_versioninteger | null
  • workspace_urlstring | null

    The address on its workspace's own domain, when it has a live one.

  • access_levelstring

    Who can open it: link (anyone with the link), private (only you and the people you share it with) or workspace (members of its workspace). Default "link".

  • workspace_idstring | null
  • canobject | null

    What you may do with it: edit, replace, settings, access, rename, delete, share, move, unshare.

  • read_ticketstring | null
  • access_epochinteger

    Default 0.

  • presence_ticketstring | null
  • show_presenceboolean | null
  • editorstring | null
  • parentobject | null
  • breadcrumbsarray of object
  • children_countinteger

    Default 0.

  • access_inheritboolean | null
  • page_patharray of string
  • template_idstring | null
  • templateobject | null
  • pageobject | null
  • page_propertiesobject | null
  • assetsobject

    Default {}.

  • cover_autoboolean

    Default false.

  • cover_pendingboolean

    Default false.

Did this page help?