Receive Outrank's publish_articles / update_article webhook.
POST
/apps/outrank/webhook
const url = 'https://your-store.myciqra.com/apps/outrank/webhook';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"data":{"article":{"content_html":"example","content_markdown":"example","created_at":"2026-04-15T12:00:00Z","id":"example","image_url":"example","meta_description":"example","slug":"example","tags":["example"],"title":"example"},"articles":[{"content_html":"example","content_markdown":"example","created_at":"2026-04-15T12:00:00Z","id":"example","image_url":"example","meta_description":"example","slug":"example","tags":["example"],"title":"example"}]},"event_type":"example","timestamp":"2026-04-15T12:00:00Z"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://your-store.myciqra.com/apps/outrank/webhook \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "data": { "article": { "content_html": "example", "content_markdown": "example", "created_at": "2026-04-15T12:00:00Z", "id": "example", "image_url": "example", "meta_description": "example", "slug": "example", "tags": [ "example" ], "title": "example" }, "articles": [ { "content_html": "example", "content_markdown": "example", "created_at": "2026-04-15T12:00:00Z", "id": "example", "image_url": "example", "meta_description": "example", "slug": "example", "tags": [ "example" ], "title": "example" } ] }, "event_type": "example", "timestamp": "2026-04-15T12:00:00Z" }'Required scope: write_blogs — an installation token without it receives 403.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”Media typeapplication/json
object
data
required
One of:
null
object
article
required
One of:
null
object
content_html
required
null | string
content_markdown
required
null | string
created_at
required
null | string format: date-time
id
required
null | string
image_url
required
null | string
meta_description
required
null | string
slug
required
null | string
tags
required
Array<string> | null
title
required
null | string
articles
required
Array<object> | null
object
content_html
required
null | string
content_markdown
required
null | string
created_at
required
null | string format: date-time
id
required
null | string
image_url
required
null | string
meta_description
required
null | string
slug
required
null | string
tags
required
Array<string> | null
title
required
null | string
event_type
required
null | string
timestamp
required
null | string format: date-time
Examplegenerated
{ "data": { "article": { "content_html": "example", "content_markdown": "example", "created_at": "2026-04-15T12:00:00Z", "id": "example", "image_url": "example", "meta_description": "example", "slug": "example", "tags": [ "example" ], "title": "example" }, "articles": [ { "content_html": "example", "content_markdown": "example", "created_at": "2026-04-15T12:00:00Z", "id": "example", "image_url": "example", "meta_description": "example", "slug": "example", "tags": [ "example" ], "title": "example" } ] }, "event_type": "example", "timestamp": "2026-04-15T12:00:00Z"}Responses
Section titled “ Responses ”OK
Media typeapplication/json
object
coverImagesImported
required
integer | string format: int32
created
required
integer | string format: int32
message
required
string
queued
required
integer | string format: int32
received
required
integer | string format: int32
tagsDropped
required
integer | string format: int32
unusable
required
integer | string format: int32
updated
required
integer | string format: int32
Examplegenerated
{ "coverImagesImported": 1, "created": 1, "message": "example", "queued": 1, "received": 1, "tagsDropped": 1, "unusable": 1, "updated": 1}Bad Request
Media typeapplication/json
object
error
required
string
Examplegenerated
{ "error": "example"}