---
title: "Import Website From Capture"
method: POST
path: "/api/v1/content/properties/{property_id}/import-website/from-capture"
tags: ["Content Management"]
---

# Import Website From Capture

`POST /api/v1/content/properties/{property_id}/import-website/from-capture`

## Request

- Base URL: `https://api.getanana.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.getanana.com/api/v1/content/properties/{property_id}/import-website/from-capture`
- Auth: none declared
- TypeScript: <https://skmtc.dev/getanana/apis/cleon-api/docs/api/v1/content/properties/:property_id/import-website/from-capture/post.ts> (a function with typed inputs; its response is checked against the schema)

Build the guide from the property's latest completed website capture.

The same job and polling as ``import_website``, but the worker reads the
pages the Website already shows instead of crawling the site a second time.
The capture is the one the Sites board shows: newest by completion time
(``latest_completed_snapshots``).

## Path parameters

- `property_id` string, uuid, required

## Request body

- ImportFromCaptureRequest
  - `content_type` 'general' | 'dining'

## Response `202`

Successful Response

- WebsiteImportJobRead: Pollable status of an async website-import job (see ``WebsiteImportJob``). Returned by the ``/import-website`` kickoff and its status endpoint. The operator polls ``status`` (and ``sources_done``/``sources_total`` during structuring); ``result`` is populated once ``status == "completed"``, and ``error_message`` carries a human-readable reason once ``status == "failed"``.
  - `id` string, uuid, required
  - `property_id` string, uuid, required
  - `status` 'queued' | 'crawling' | 'structuring' | 'completed' | 'failed', required: Lifecycle of an async website-import job (see ``WebsiteImportJob``). A real multi-page property import takes 5–7 min (crawl + LLM structuring), which outlives client/proxy timeouts, so the work runs on the arq worker and the operator polls this status. QUEUED → CRAWLING → STRUCTURING → COMPLETED, or → FAILED at any point with a human-readable ``error_message``.
  - `url` string, required
  - `source_ref` string, required
  - `content_type` string, required
  - `source_pages_crawled` integer, nullable
  - `sources_total` integer, nullable
  - `sources_done` integer
  - `error_message` string, nullable
  - `result` DocumentImportResult: What the import did, surfaced to the hotelier for review.
    - `imported` string[]
    - `skipped_manual_pages` string[]
    - `overwritten_human_edits` string[]
    - `removed_stale_pages` string[]
    - `retained_edited_pages` string[]
  - `created_at` string, date-time, required
  - `updated_at` string, date-time, required
  - `started_at` string, date-time, nullable
  - `completed_at` string, date-time, nullable

## Other responses

- `400`: Invalid or unreachable URL.
- `404`: Property not found.
- `409`: Another import from this website, reading a different source, is still running.
- `422`: This site hasn't been captured yet, or the capture doesn't match this property's verified website.
- `503`: Could not start the import. Please try again.

## Changes

> 84 revisions in range; 1 not diffed.

- **2026-11-11** `3c8c9db4add5`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/getanana/apis/cleon-api/changes/api/v1/content/properties/:property_id/import-website/from-capture/post.md)

---

[API](https://skmtc.dev/getanana/apis/cleon-api.md) - [All operations](https://skmtc.dev/getanana/apis/cleon-api/llms.txt) - [OpenAPI document](https://skmtc.dev/getanana/apis/cleon-api/revisions/a52af2d25fd1?raw)
