Developers › Docs › API reference › Crosslisting tasks
Crosslisting tasks
Run a bounded eBay crosslisting task that continues after your request or chat ends. It uses 1–100 already-imported FLUF product IDs, one connected eBay account, a daily attempt limit and an expiry. Other destinations are not supported by this task API.
Start a task
Use fluf_id from your product reads, not a vid. GET /crosslisting-tasks includes ebay_accounts with the available connection_id values. Products must belong to the token's seller, and the account must belong to their business.
Before setting confirmed: true, obtain the seller's approval for the exact products, account, daily limit and expiry. The flag must be a JSON boolean. Writes require a PAT with effective full access; read-only tokens can inspect progress.
daily_limit is 1–100 publish attempts per task per UTC day, not an account-wide budget. Existing marketplace and plan limits still apply. expires_in_days is 1–30 days. Scope and expiry cannot be changed after creation. Repeating an identical active scope returns the existing task (reused_task: true), which may be paused. A conflicting task for the same products is refused.
A 200 response means the task was saved or reused. It does not mean the listings are live. The response contains task_id, status, scope, status counts, and a page of items.
POST /wp-json/fc/api/v1/crosslisting-tasks
Authorization: Bearer fluf_pat_…
Content-Type: application/json{
"product_ids": [12345, 67890],
"connection_id": 718,
"daily_limit": 20,
"expires_in_days": 7,
"confirmed": true
}Read progress
Both return { "tasks": [...], "ebay_accounts": [...], "supported_destinations": ["ebay"] }.
The collection returns the latest ten tasks with up to three items each. Read an individual task for its item pages: offset defaults to 0, limit defaults to 10 and is capped at 30. Follow has_more using the next item offset. total_items and counts describe the whole task. Poll about once a minute; reading progress does not perform a fresh marketplace check. All task endpoints share a per-seller rate limit with a burst capacity of 60 requests, replenished at one request per second; excess requests return 429.
Task states: running, paused, completed, needs_attention, cancelled, expired. Item states: pending, verifying, verified, needs_attention, expired.
Only verified means eBay confirmed that this listing belonged to the expected seller, was active and had remaining stock at verified_at. Verified items include listing_id and listing_url. That timestamp is historical evidence, not a guarantee the item is still live now. Pending or verifying is not failure. Do not publish another copy while its outcome is uncertain; inspect the task and listing first.
GET /wp-json/fc/api/v1/crosslisting-tasks
GET /wp-json/fc/api/v1/crosslisting-tasks/42?offset=0&limit=10Pause, cancel or resume
Pause and cancel accept an empty JSON object. Resume requires { "confirmed": true } after the seller reconfirms the existing scope. Read the task first. Only an unexpired paused task can resume; resuming does not extend permission or change products, account or limits.
Stopping prevents further work but does not undo existing listings or work already sent. Expiry stops new work. Revoking an API token does not cancel a task already accepted: stop the task first, or manage it in Intesa.
POST /wp-json/fc/api/v1/crosslisting-tasks/42/pause
POST /wp-json/fc/api/v1/crosslisting-tasks/42/cancel
POST /wp-json/fc/api/v1/crosslisting-tasks/42/resumeErrors
| HTTP | Code | Action |
|---|---|---|
400 | confirmation_required, invalid_task_request | Confirm the scope or correct the input |
401 | pat_required or authentication error | Use a valid FLUF PAT |
403 | api_read_only, api_not_in_plan, no_active_subscription | Check token scope and plan |
404 | task_not_found | This task is unavailable to this seller |
409 | task_conflict | Check ownership, overlapping tasks, expiry or current task state; a busy step can be retried shortly |
429 | rate_limited | Wait before requesting again |
503 | task_unavailable | Read progress before retrying a write; acceptance may be uncertain |
MCP
Use get_crosslisting_tasks, start_crosslisting_task, stop_crosslisting_task (action: "pause" or "cancel"), and resume_crosslisting_task. The same confirmation, ownership and permission rules apply. Hosted MCP forwards calls through these REST routes. The local MCP source exposes the same tools after building it.
Something missing? Email [email protected] — we prioritise by what people actually ask for.
