Get URL Content Diff
curl --request POST \
--url https://api.peec.ai/customer/v1/sources/urls/content/diff \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "https://example.com/blog/page1",
"project_id": "or_f45b94ba-5e35-4982-93ed-285e72ee14eb",
"from_version": 2,
"to_version": 3
}
'import requests
url = "https://api.peec.ai/customer/v1/sources/urls/content/diff"
payload = {
"url": "https://example.com/blog/page1",
"project_id": "or_f45b94ba-5e35-4982-93ed-285e72ee14eb",
"from_version": 2,
"to_version": 3
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/blog/page1',
project_id: 'or_f45b94ba-5e35-4982-93ed-285e72ee14eb',
from_version: 2,
to_version: 3
})
};
fetch('https://api.peec.ai/customer/v1/sources/urls/content/diff', 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.peec.ai/customer/v1/sources/urls/content/diff",
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://example.com/blog/page1',
'project_id' => 'or_f45b94ba-5e35-4982-93ed-285e72ee14eb',
'from_version' => 2,
'to_version' => 3
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.peec.ai/customer/v1/sources/urls/content/diff"
payload := strings.NewReader("{\n \"url\": \"https://example.com/blog/page1\",\n \"project_id\": \"or_f45b94ba-5e35-4982-93ed-285e72ee14eb\",\n \"from_version\": 2,\n \"to_version\": 3\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.peec.ai/customer/v1/sources/urls/content/diff")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/blog/page1\",\n \"project_id\": \"or_f45b94ba-5e35-4982-93ed-285e72ee14eb\",\n \"from_version\": 2,\n \"to_version\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.peec.ai/customer/v1/sources/urls/content/diff")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/blog/page1\",\n \"project_id\": \"or_f45b94ba-5e35-4982-93ed-285e72ee14eb\",\n \"from_version\": 2,\n \"to_version\": 3\n}"
response = http.request(request)
puts response.read_body{
"data": {
"from_version": 2,
"to_version": 3,
"diff": "<string>",
"from_content": "<string>",
"to_content": "<string>"
}
}{
"message": "<string>"
}Reports
Get URL Content Diff
Compare two stored content versions of a source URL. Without version numbers, compares the newest version with the one before it. Use List URL Content Versions to see which versions exist. Returns 404 when the URL has only one version.
POST
/
sources
/
urls
/
content
/
diff
Get URL Content Diff
curl --request POST \
--url https://api.peec.ai/customer/v1/sources/urls/content/diff \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"url": "https://example.com/blog/page1",
"project_id": "or_f45b94ba-5e35-4982-93ed-285e72ee14eb",
"from_version": 2,
"to_version": 3
}
'import requests
url = "https://api.peec.ai/customer/v1/sources/urls/content/diff"
payload = {
"url": "https://example.com/blog/page1",
"project_id": "or_f45b94ba-5e35-4982-93ed-285e72ee14eb",
"from_version": 2,
"to_version": 3
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://example.com/blog/page1',
project_id: 'or_f45b94ba-5e35-4982-93ed-285e72ee14eb',
from_version: 2,
to_version: 3
})
};
fetch('https://api.peec.ai/customer/v1/sources/urls/content/diff', 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.peec.ai/customer/v1/sources/urls/content/diff",
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://example.com/blog/page1',
'project_id' => 'or_f45b94ba-5e35-4982-93ed-285e72ee14eb',
'from_version' => 2,
'to_version' => 3
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"X-API-Key: <api-key>"
],
]);
$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.peec.ai/customer/v1/sources/urls/content/diff"
payload := strings.NewReader("{\n \"url\": \"https://example.com/blog/page1\",\n \"project_id\": \"or_f45b94ba-5e35-4982-93ed-285e72ee14eb\",\n \"from_version\": 2,\n \"to_version\": 3\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("X-API-Key", "<api-key>")
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.peec.ai/customer/v1/sources/urls/content/diff")
.header("X-API-Key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://example.com/blog/page1\",\n \"project_id\": \"or_f45b94ba-5e35-4982-93ed-285e72ee14eb\",\n \"from_version\": 2,\n \"to_version\": 3\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.peec.ai/customer/v1/sources/urls/content/diff")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["X-API-Key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://example.com/blog/page1\",\n \"project_id\": \"or_f45b94ba-5e35-4982-93ed-285e72ee14eb\",\n \"from_version\": 2,\n \"to_version\": 3\n}"
response = http.request(request)
puts response.read_body{
"data": {
"from_version": 2,
"to_version": 3,
"diff": "<string>",
"from_content": "<string>",
"to_content": "<string>"
}
}{
"message": "<string>"
}Authorizations
APIKeyHeaderAPIKeyQueryBearerAuth
Query Parameters
Required if using a company api key
Example:
"or_f45b94ba-5e35-4982-93ed-285e72ee14eb"
Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Full URL of a source, as returned by the URLs report or Get URL Content.
Example:
"https://example.com/blog/page1"
Required if using a company api key
Example:
"or_f45b94ba-5e35-4982-93ed-285e72ee14eb"
Older version to compare from. Defaults to the version before to_version.
Required range:
0 < x <= 2147483647Example:
2
Newer version to compare to. Defaults to the newest version.
Required range:
0 < x <= 2147483647Example:
3
Response
Success
Success
Show child attributes
Show child attributes
