curl --request POST \
--url https://api.linkup.so/v1/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://docs.linkup.so",
"extractImages": false,
"includeRawContent": false,
"includeRawHtml": false,
"renderJs": false,
"mode": "standard",
"instructions": "Use public list prices only and express monetary values in USD.",
"schema": null
}
'import requests
url = "https://api.linkup.so/v1/fetch"
payload = {
"url": "https://docs.linkup.so",
"extractImages": False,
"includeRawContent": False,
"includeRawHtml": False,
"renderJs": False,
"mode": "standard",
"instructions": "Use public list prices only and express monetary values in USD.",
"schema": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://docs.linkup.so',
extractImages: false,
includeRawContent: false,
includeRawHtml: false,
renderJs: false,
mode: 'standard',
instructions: 'Use public list prices only and express monetary values in USD.',
schema: null
})
};
fetch('https://api.linkup.so/v1/fetch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkup.so/v1/fetch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://docs.linkup.so',
'extractImages' => false,
'includeRawContent' => false,
'includeRawHtml' => false,
'renderJs' => false,
'mode' => 'standard',
'instructions' => 'Use public list prices only and express monetary values in USD.',
'schema' => null
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkup.so/v1/fetch"
payload := strings.NewReader("{\n \"url\": \"https://docs.linkup.so\",\n \"extractImages\": false,\n \"includeRawContent\": false,\n \"includeRawHtml\": false,\n \"renderJs\": false,\n \"mode\": \"standard\",\n \"instructions\": \"Use public list prices only and express monetary values in USD.\",\n \"schema\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkup.so/v1/fetch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://docs.linkup.so\",\n \"extractImages\": false,\n \"includeRawContent\": false,\n \"includeRawHtml\": false,\n \"renderJs\": false,\n \"mode\": \"standard\",\n \"instructions\": \"Use public list prices only and express monetary values in USD.\",\n \"schema\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkup.so/v1/fetch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://docs.linkup.so\",\n \"extractImages\": false,\n \"includeRawContent\": false,\n \"includeRawHtml\": false,\n \"renderJs\": false,\n \"mode\": \"standard\",\n \"instructions\": \"Use public list prices only and express monetary values in USD.\",\n \"schema\": null\n}"
response = http.request(request)
puts response.read_body{
"favicon": "https://favicons.linkup.so?domain=docs.linkup.so",
"markdown": "Get started for free, no credit card required...",
"contentType": "html",
"data": {
"name": "Example product",
"price": 49
},
"images": [
{
"alt": "Image 1",
"url": "https://example.com/image.jpg"
},
{
"alt": "Image 2",
"url": "https://example.com/image2.jpg"
}
],
"rawContent": "<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>",
"rawHtml": "<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>"
}/fetch
The /fetch endpoint allows you to fetch a single webpage from a given URL.
curl --request POST \
--url https://api.linkup.so/v1/fetch \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://docs.linkup.so",
"extractImages": false,
"includeRawContent": false,
"includeRawHtml": false,
"renderJs": false,
"mode": "standard",
"instructions": "Use public list prices only and express monetary values in USD.",
"schema": null
}
'import requests
url = "https://api.linkup.so/v1/fetch"
payload = {
"url": "https://docs.linkup.so",
"extractImages": False,
"includeRawContent": False,
"includeRawHtml": False,
"renderJs": False,
"mode": "standard",
"instructions": "Use public list prices only and express monetary values in USD.",
"schema": None
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://docs.linkup.so',
extractImages: false,
includeRawContent: false,
includeRawHtml: false,
renderJs: false,
mode: 'standard',
instructions: 'Use public list prices only and express monetary values in USD.',
schema: null
})
};
fetch('https://api.linkup.so/v1/fetch', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.linkup.so/v1/fetch",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://docs.linkup.so',
'extractImages' => false,
'includeRawContent' => false,
'includeRawHtml' => false,
'renderJs' => false,
'mode' => 'standard',
'instructions' => 'Use public list prices only and express monetary values in USD.',
'schema' => null
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.linkup.so/v1/fetch"
payload := strings.NewReader("{\n \"url\": \"https://docs.linkup.so\",\n \"extractImages\": false,\n \"includeRawContent\": false,\n \"includeRawHtml\": false,\n \"renderJs\": false,\n \"mode\": \"standard\",\n \"instructions\": \"Use public list prices only and express monetary values in USD.\",\n \"schema\": null\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.linkup.so/v1/fetch")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://docs.linkup.so\",\n \"extractImages\": false,\n \"includeRawContent\": false,\n \"includeRawHtml\": false,\n \"renderJs\": false,\n \"mode\": \"standard\",\n \"instructions\": \"Use public list prices only and express monetary values in USD.\",\n \"schema\": null\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.linkup.so/v1/fetch")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://docs.linkup.so\",\n \"extractImages\": false,\n \"includeRawContent\": false,\n \"includeRawHtml\": false,\n \"renderJs\": false,\n \"mode\": \"standard\",\n \"instructions\": \"Use public list prices only and express monetary values in USD.\",\n \"schema\": null\n}"
response = http.request(request)
puts response.read_body{
"favicon": "https://favicons.linkup.so?domain=docs.linkup.so",
"markdown": "Get started for free, no credit card required...",
"contentType": "html",
"data": {
"name": "Example product",
"price": 49
},
"images": [
{
"alt": "Image 1",
"url": "https://example.com/image.jpg"
},
{
"alt": "Image 2",
"url": "https://example.com/image2.jpg"
}
],
"rawContent": "<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>",
"rawHtml": "<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>"
}Get your API key
mode, renderJs, includeRawHtml, extractImages,
schema, and instructions, see the
Fetch overview.Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
The URL of the webpage you want to fetch.
"https://docs.linkup.so"
Defines whether the API should extract the images from the webpage in its response.
false
Defines whether the API should include the raw page content and its content type in the response.
false
Deprecated. Use includeRawContent instead. Defines whether rawHtml is returned for non-LinkedIn HTML pages.
false
Defines whether the API should render the JavaScript of the webpage.
false
Defines the fetch strategy. Pro fetch delivers significantly higher success rates on hard-to-retrieve pages.
standard, pro "standard"
Optional instructions that guide how data is extracted. Requires schema.
"Use public list prices only and express monetary values in USD."
Optional JSON Schema of type object describing the structured data to extract from the page. Fields with no grounded value are omitted, even when marked as required.
Response
Successful response
The URL of the website favicon.
"https://favicons.linkup.so?domain=docs.linkup.so"
The clean markdown version of the webpage.
"Get started for free, no credit card required..."
The type of rawContent. Present only when rawContent is returned.
"html"
Structured data extracted from the webpage. Present only when schema is provided; fields with no grounded value are omitted.
Show child attributes
Show child attributes
{ "name": "Example product", "price": 49 }
List of images extracted from the webpage.
Show child attributes
Show child attributes
[
{
"alt": "Image 1",
"url": "https://example.com/image.jpg"
},
{
"alt": "Image 2",
"url": "https://example.com/image2.jpg"
}
]
The raw page content.
"<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>"
The raw HTML version of the webpage.
"<!DOCTYPE html><html lang=\"en\"><head>...</head><body>...</body></html>"