POST /voyage starts or joins a voyage for an ecommerce domain. A voyage crawls
the site, builds product extraction, and publishes the resulting catalog. Once
the voyage completes, its products are available through the regular search and
lookup endpoints.
Voyages are shared by domain. If another organization already requested the
same domain, or the domain already has a live catalog, the API returns the
existing voyage instead of starting a duplicate. Responses never identify the
other organizations participating in a shared voyage.
Request
Body parameters
string
required
Registrable domain or full public URL. Octogen lowercases the host and removes
its scheme, path, port, and leading
www. before starting the voyage.Example
Response
The response uses the sameVoyageTask shape for both success cases:
string
required
Stable task identifier. Pass it to
GET /voyage/{task_id} to check progress.string
required
Normalized registrable domain.
"queued" | "running" | "in_review" | "completed" | "failed" | "cancelled"
required
Machine-readable voyage status.
"discovering_site" | "sampling_products" | "building_extraction" | "in_review" | "publishing_catalog" | "complete" | "failed"
required
Current pipeline phase.
string
required
Human-readable label for the current phase.
integer
required
Monotonic progress value from 0 to 100.
datetime | null
When the voyage was created.
datetime | null
When the voyage state was last updated.
datetime | null
When the voyage reached a terminal state.
object | null
Populated when the voyage fails, with a stable
code and safe message.object | null
Populated after the catalog is live. Includes
catalog, productCount, and
the supported search and lookup endpoint paths.Example response
Errors
Only a newly started voyage consumes voyage quota. Joining an existing voyage
consumes neither concurrent nor monthly quota.