Skip to main content
POST
/
v1
/
research
/research
curl --request POST \
  --url https://api.linkup.so/v1/research \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data @- <<EOF
{
  "excludeDomains": [
    "wikipedia.org"
  ],
  "includeDomains": [
    "microsoft.com",
    "agolution.com"
  ],
  "includeImages": true,
  "outputType": "sourcedAnswer",
  "q": "What is Microsoft's 2024 revenue?"
}
EOF
{
  "createdAt": "2026-01-01T00:00:00.000Z",
  "error": "<string>",
  "id": "01234-abcd-56789",
  "status": "completed",
  "updatedAt": "2026-01-01T00:00:00.000Z",
  "input": {
    "includeImages": false,
    "q": "What is Microsoft's 2024 revenue?",
    "toDate": "2025-01-01",
    "mode": "Auto",
    "outputType": "sourcedAnswer",
    "reasoningDepth": "L",
    "excludeDomains": [
      "wikipedia.org"
    ],
    "fromDate": "2025-01-01",
    "includeDomains": [
      "microsoft.com",
      "agolution.com"
    ],
    "structuredOutputSchema": null
  },
  "output": {
    "answer": "Microsoft's revenue for fiscal year 2024 was $245.1 billion, reflecting a 16% increase from the previous year.",
    "sources": [
      {
        "name": "Microsoft 2024 Annual Report",
        "snippet": "Highlights from fiscal year 2024 compared with fiscal year 2023 included: Microsoft Cloud revenue increased 23% to $137.4 billion.",
        "url": "https://www.microsoft.com/investor/reports/ar24/index.html"
      }
    ]
  },
  "type": "<string>"
}

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.

Get your API key

Create a Linkup account for free to get your API key.
This is an asynchronous endpoint. It immediately returns the research task identifier, before it is completed. Use GET /v1/research/:id to poll for the result, or GET /v1/research to list all your research tasks.
For an explanation of mode, reasoningDepth, and the async lifecycle, see the Research overview.

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json
q
string
required

The natural language question for which you want to retrieve context.

Example:

"What is Microsoft's 2024 revenue?"

outputType
enum<string>
required

The type of output you want to get. Use structured for a custom-formatted response defined by structuredOutputSchema.

Available options:
sourcedAnswer,
structured
excludeDomains
string[]

The domains you want to exclude of the search. By default, don't restrict the search.

Example:
["wikipedia.org"]
fromDate
string | null

The date from which the search results should be considered, in ISO 8601 format (YYYY-MM-DD). It must be before toDate, if provided, and later than 1970-01-01.

Example:

"2025-01-01"

includeDomains
string[]

The domains you want to search on. By default, don't restrict the search. You can provide up to 100 domains.

Maximum array length: 100
Example:
["microsoft.com", "agolution.com"]
includeImages
default:false

Defines whether the API should include images in its results.

structuredOutputSchema
string<json>

Required only when outputType is structured. Provide a JSON schema (as a string) representing the desired response format. The root must be of type object.

toDate
string | null

The date until which the search results should be considered, in ISO 8601 format (YYYY-MM-DD). It must be later than fromDate, if provided, or than 1970-01-01.

Example:

"2025-01-01"

mode
enum<string>
default:Auto

Pin the research agent mode. Omit to let the agent auto-classify per request based on the question.

Available options:
Answer,
Auto,
Investigate,
Research
reasoningDepth
enum<string>
default:L

Pin the reasoning depth (S < M < L < XL). Defaults to L when omitted. Higher depths trade latency for thoroughness.

Available options:
L,
M,
S,
XL

Response

Research task created successfully.

createdAt
string<date-time>
required

The date and time when the task was created.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Example:

"2026-01-01T00:00:00.000Z"

error
string | null
required

The error message if the task failed.

id
string
required

The unique identifier of the task.

Example:

"01234-abcd-56789"

status
enum<string>
required

The current status of the task.

Available options:
completed,
failed,
pending,
processing
Example:

"completed"

updatedAt
string<date-time>
required

The date and time when the task status was last updated.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
Example:

"2026-01-01T00:00:00.000Z"

input
object
required
output
object
required
type
string
required
Allowed value: "research"