This page is structured for direct use as integration context for a coding agent. Operational guidance is repeated inline so the page is self-contained.Documentation Index
Fetch the complete documentation index at: https://docs.linkup.so/llms.txt
Use this file to discover all available pages before exploring further.
Linkup /tasks integration guide
You are integrating the Linkup /tasks API: an asynchronous batch
wrapper around Search, Fetch, and Research. A single submission
accepts up to 100 tasks, in any mix of the three endpoints, with the same
parameters and pricing as direct calls. There is no batching surcharge.
When to use it
Use Tasks for bulk and asynchronous workloads: CRM enrichment, backfills, scheduled pipelines, mixed-endpoint batches.- Hundreds of queries to process: Tasks.
- Mixed Search + Fetch + Research workflow: Tasks (one submission).
- Long-running research that should not block: Tasks.
- Interactive single-shot calls: call the synchronous endpoint directly.
Setup
Example (Python; adapt to the project’s language)
Tool definition (OpenAI function-calling format)
Remove the"type": "function" envelope and rename parameters to
input_schema for the Anthropic format. Note that this tool is async:
the handler should poll on the model’s behalf and return completed results,
not task ids.
Operational guidance (inline)
Appropriate workloads
- Bulk workloads (hundreds of queries).
- Asynchronous workflows that would otherwise hold an HTTP connection open.
- Mixed-endpoint batches in one submission.
Inappropriate workloads
- Single-shot interactive calls. Use the synchronous endpoint directly.
- Cost reduction. Pricing is per-task identical to direct calls.
Submission
- Up to 100 tasks per
POST /taskscall. For more, submit parallel batches. - Tasks run in parallel; submission order does not constrain execution order.
- For dependent work (search results feeding fetch URLs), submit the second batch after the first completes.
Polling
- Mostly
"search"("fast"/"standard") and"fetch": 1–2 second intervals. - Mostly
"research": 5 second intervals, with backoff to 30 seconds for long-running batches. - Mixed: start at 2 seconds, back off to 10.
- Maximum poll rate: 1 request per second.
- Use
GET /tasks(list) for bulk polling. Fewer API calls than per-task polling.
Error handling
- Each task succeeds or fails independently.
- A failure in one task does not fail the batch.
- Inspect
erroron failed tasks; retry only the failures. - No credit is deducted for failed tasks.
Result storage
- Completed task results are retrievable for a bounded period.
- Persist to durable storage as soon as a task completes.
Constraints
- Tasks is not cheaper than direct calls. Pricing is per-task identical.
- Polling above 1 request per second triggers rate limits.
- Tasks is not durable result storage.
TypeScript notes
- Import:
import { LinkupClient } from 'linkup-sdk'. - Methods:
await client.tasks.create([...]),await client.tasks.list(),await client.tasks.get(id). tasks.createtakes the array directly (not wrapped in{ tasks: [...] }).