Configure Harness
Landing Page Task API
Generate landing pages asynchronously and query task history.
/v2/landing_pageAuthentication
Bearer API key
Content type
application/json or multipart/form-data
Rate notes
Endpoint-specific limits may apply.
The Landing Page Task API provides asynchronous landing page generation capabilities. You create a task first, then reuse the existing task polling APIs to query progress and results.
Authentication
All requests require an API Key in the Authorization header:
Authorization: Bearer YOUR_API_KEYCreate Landing Page Task
Endpoint
POST https://openapi.felo.ai/v2/landing_pageRequest Headers
| Header | Required | Description |
|---|---|---|
Authorization | Yes | Your API Key in the format Bearer YOUR_API_KEY |
Content-Type | Yes | application/json or multipart/form-data |
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Landing page generation request prompt |
stream_protocol | string | No | Stream protocol. Default: message_center_v1 |
livedoc_short_id | string | No | Existing LiveDoc short ID to use as context |
resource_ids | array of strings | No | LiveDoc resource IDs to use as context |
Example
curl -X POST 'https://openapi.felo.ai/v2/landing_page' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"query": "Generate a landing page for Felo Search"
}'Create With File
Use multipart/form-data to upload one file with the Landing Page task request. The file is uploaded as a LiveDoc resource first, then its resource ID is passed to the Landing Page task.
curl -X POST 'https://openapi.felo.ai/v2/landing_page' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-F 'query=Generate a landing page from this product brief' \
-F '[email protected]'Optional multipart parts:
| Parameter | Type | Required | Description |
|---|---|---|---|
stream_protocol | string | No | Stream protocol. Default: message_center_v1 |
livedoc_short_id | string | No | Existing LiveDoc short ID. If omitted, a new LiveDoc is created |
Success Response (200)
{
"status": "ok",
"message": null,
"data": {
"task_id": "019cad6d-e874-55ef-d577-686344b5a7e9"
}
}Response Fields
| Field | Type | Description |
|---|---|---|
task_id | string | Async task identifier for subsequent polling |
Poll Task Status
Landing Page tasks reuse the same task polling APIs as PPT tasks.
Endpoint
GET https://openapi.felo.ai/v2/tasks/{task_id}/statusExample
curl -X GET 'https://openapi.felo.ai/v2/tasks/019cad6d-e874-55ef-d577-686344b5a7e9/status' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY'Query Task Historical Info
Endpoint
GET https://openapi.felo.ai/v2/tasks/{task_id}/historicalExample
curl -X GET 'https://openapi.felo.ai/v2/tasks/019cad6d-e874-55ef-d577-686344b5a7e9/historical' \
-H 'accept: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY'AI_PAGE Completed Response Example
{
"status": "ok",
"message": null,
"data": {
"task_id": "019d7a4d-6ab5-a96d-0f98-43ca434ab621",
"task_status": "COMPLETED",
"ppt_biz_id": "9qiLTmT77fA3aVurrMHvRJ",
"ppt_url": "https://felo.ai/slides/9qiLTmT77fA3aVurrMHvRJ",
"ai_page_html": "https://felo.ai/ai-page/9qiLTmT77fA3aVurrMHvRJ"
}
}Refer to the PPT Task API for the shared polling response examples and status semantics.
Error Codes
| Code | HTTP Status | Description |
|---|---|---|
INVALID_API_KEY | 401 | API Key is invalid or revoked |
LANDING_PAGE_TASK_CREATE_FAILED | 502 | Landing page task creation failed |
INSUFFICIENT_CREDITS | 402 | Insufficient credits available |