Update site pages
curl --request PATCH \
--url https://app.promptingco.com/api/v1/site/pages \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"productId": "<string>",
"pages": [
{
"id": "<string>",
"title": "<string>",
"content": "<string>",
"description": "<string>",
"metaTitle": "<string>",
"metaDescription": "<string>",
"filePath": "<string>",
"isManual": true,
"noIndex": true,
"redirectToUrl": "<string>",
"attachDomainIds": [
"<string>"
],
"detachDomainIds": [
"<string>"
],
"canonicalDomainId": "<string>"
}
],
"productSlug": "<string>"
}
'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
productId: '<string>',
pages: [
{
id: '<string>',
title: '<string>',
content: '<string>',
description: '<string>',
metaTitle: '<string>',
metaDescription: '<string>',
filePath: '<string>',
isManual: true,
noIndex: true,
redirectToUrl: '<string>',
attachDomainIds: ['<string>'],
detachDomainIds: ['<string>'],
canonicalDomainId: '<string>'
}
],
productSlug: '<string>'
})
};
fetch('https://app.promptingco.com/api/v1/site/pages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.promptingco.com/api/v1/site/pages"
payload = {
"productId": "<string>",
"pages": [
{
"id": "<string>",
"title": "<string>",
"content": "<string>",
"description": "<string>",
"metaTitle": "<string>",
"metaDescription": "<string>",
"filePath": "<string>",
"isManual": True,
"noIndex": True,
"redirectToUrl": "<string>",
"attachDomainIds": ["<string>"],
"detachDomainIds": ["<string>"],
"canonicalDomainId": "<string>"
}
],
"productSlug": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"data": {
"scope": {
"product": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"organization": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
}
},
"updatedCount": 1,
"failedCount": 1,
"updated": [
{
"id": "<string>",
"title": "<string>",
"filePath": "<string>",
"sourceUrl": "<string>",
"status": "<string>",
"isManual": true,
"redirectToUrl": "<string>",
"redirectAudience": "<string>",
"domains": [
{
"id": "<string>",
"domain": "<string>",
"isCanonical": true,
"pathPrefix": "<string>"
}
]
}
],
"failed": [
{
"id": "<string>",
"message": "<string>",
"slug": "<string>"
}
]
}
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}Content
Update site pages
Deprecated, will be removed in future versions. Please use PUT /api/v1/content/ instead.
PATCH
/
api
/
v1
/
site
/
pages
Update site pages
curl --request PATCH \
--url https://app.promptingco.com/api/v1/site/pages \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"productId": "<string>",
"pages": [
{
"id": "<string>",
"title": "<string>",
"content": "<string>",
"description": "<string>",
"metaTitle": "<string>",
"metaDescription": "<string>",
"filePath": "<string>",
"isManual": true,
"noIndex": true,
"redirectToUrl": "<string>",
"attachDomainIds": [
"<string>"
],
"detachDomainIds": [
"<string>"
],
"canonicalDomainId": "<string>"
}
],
"productSlug": "<string>"
}
'const options = {
method: 'PATCH',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
productId: '<string>',
pages: [
{
id: '<string>',
title: '<string>',
content: '<string>',
description: '<string>',
metaTitle: '<string>',
metaDescription: '<string>',
filePath: '<string>',
isManual: true,
noIndex: true,
redirectToUrl: '<string>',
attachDomainIds: ['<string>'],
detachDomainIds: ['<string>'],
canonicalDomainId: '<string>'
}
],
productSlug: '<string>'
})
};
fetch('https://app.promptingco.com/api/v1/site/pages', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://app.promptingco.com/api/v1/site/pages"
payload = {
"productId": "<string>",
"pages": [
{
"id": "<string>",
"title": "<string>",
"content": "<string>",
"description": "<string>",
"metaTitle": "<string>",
"metaDescription": "<string>",
"filePath": "<string>",
"isManual": True,
"noIndex": True,
"redirectToUrl": "<string>",
"attachDomainIds": ["<string>"],
"detachDomainIds": ["<string>"],
"canonicalDomainId": "<string>"
}
],
"productSlug": "<string>"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text){
"ok": true,
"data": {
"scope": {
"product": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
},
"organization": {
"id": "<string>",
"name": "<string>",
"slug": "<string>"
}
},
"updatedCount": 1,
"failedCount": 1,
"updated": [
{
"id": "<string>",
"title": "<string>",
"filePath": "<string>",
"sourceUrl": "<string>",
"status": "<string>",
"isManual": true,
"redirectToUrl": "<string>",
"redirectAudience": "<string>",
"domains": [
{
"id": "<string>",
"domain": "<string>",
"isCanonical": true,
"pathPrefix": "<string>"
}
]
}
],
"failed": [
{
"id": "<string>",
"message": "<string>",
"slug": "<string>"
}
]
}
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}{
"ok": false,
"code": "<string>",
"message": "<string>",
"details": "<unknown>"
}Authorizations
apiKeyAuthbearerAuthcookieAuth
Organization-scoped API key. Available scopes:
- content:read: Read site pages, markdown content, and llms.txt files
- content:write: Create, update, and delete site pages and content
- prompts:read: Read prompts, topics, prompt suggestions, and prompt analysis results
- prompts:write: Create, update, archive prompts and generate, edit, or review prompt suggestions
- simulations:read: Read agent-simulation tasks, runs, environments, and analytics
- simulations:write: Create and trigger simulation runs
- logs:read: Read AI-traffic logs and request-level audit events
- analytics:read: Read analytics aggregates (rankings, mentions, sources, SOV)
- analytics:write: Write events to analytics
- products:read: Read product metadata and competitor data
- products:write: Update product settings and competitor lists
Body
application/json
- Option 1
- Option 2
Product ID. Provide exactly one of productId or productSlug in the request body (the server enforces this).
Minimum string length:
1Required array length:
1 - 25 elementsShow child attributes
Show child attributes
Product slug. Provide exactly one of productId or productSlug in the request body (the server enforces this).
Minimum string length:
1