Generate article JSON-LD
curl --request POST \
--url https://api.snowseo.com/v3/generate-jsonld \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"articleSlug": "<string>"
}
'import requests
url = "https://api.snowseo.com/v3/generate-jsonld"
payload = { "articleSlug": "<string>" }
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({articleSlug: '<string>'})
};
fetch('https://api.snowseo.com/v3/generate-jsonld', 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.snowseo.com/v3/generate-jsonld",
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([
'articleSlug' => '<string>'
]),
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.snowseo.com/v3/generate-jsonld"
payload := strings.NewReader("{\n \"articleSlug\": \"<string>\"\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.snowseo.com/v3/generate-jsonld")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"articleSlug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/generate-jsonld")
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 \"articleSlug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"jsonLd": "<string>"
}{
"success": true,
"error": "<string>",
"code": "<string>",
"message": "<string>",
"reference": "<string>"
}Content Utilities
Generate JSON-LD
Build and persist Schema.org JSON-LD for an article.
POST
/
v3
/
generate-jsonld
Generate article JSON-LD
curl --request POST \
--url https://api.snowseo.com/v3/generate-jsonld \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"articleSlug": "<string>"
}
'import requests
url = "https://api.snowseo.com/v3/generate-jsonld"
payload = { "articleSlug": "<string>" }
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({articleSlug: '<string>'})
};
fetch('https://api.snowseo.com/v3/generate-jsonld', 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.snowseo.com/v3/generate-jsonld",
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([
'articleSlug' => '<string>'
]),
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.snowseo.com/v3/generate-jsonld"
payload := strings.NewReader("{\n \"articleSlug\": \"<string>\"\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.snowseo.com/v3/generate-jsonld")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"articleSlug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.snowseo.com/v3/generate-jsonld")
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 \"articleSlug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"jsonLd": "<string>"
}{
"success": true,
"error": "<string>",
"code": "<string>",
"message": "<string>",
"reference": "<string>"
}Build a Schema.org JSON-LD structured-data block for an article and persist it to the article record. The JSON-LD is derived entirely from the stored article row (content, metadata, outline, keywords, type), so persist the article first, then call this.
The team is taken from your session membership, not the body.
Response
| Field | Type | Description |
|---|---|---|
jsonLd | string | null | The serialized JSON-LD string that was persisted to the article (null if none was produced). |
Requires an active plan and team membership. A missing or blank
articleSlug returns 400. The article must already exist for the session’s team, otherwise the call returns 404. Limited to 50 requests per day.Was this page helpful?

