Skip to content

Example: Chimpee autoposting

Chimpee can POST a JSON payload to any webhook whenever a source feed gets a new item. Point it at https://api.canverly.com/v1/posts and every new item becomes a published Canverly post.

In the admin, Configurações → Integrações API → Gerar chave. Scopes:

  • posts:write (required)
  • post_types:read (optional — lets you validate post_type)

Copy the ck_… secret (shown once). See Authentication.

In Chimpee, add a Webhook publisher on the source you want to autopost:

Setting Value
Method POST
URL https://api.canverly.com/v1/posts
Header Authorization: Bearer ck_…
Header Content-Type: application/json
Body the JSON template below

Map the source fields into the Canverly post. The body content goes in blocks_json. If your source item is plain text or HTML, wrap it in a single paragraph (inline HTML is allowed and sanitized):

{
"title": "{{item.title}}",
"slug": "{{item.id}}",
"status": "published",
"excerpt": "{{item.summary}}",
"category_slugs": ["{{item.category}}"],
"blocks_json": {
"v": 1,
"blocks": [
{ "id": "p1", "type": "paragraph", "text": "{{item.content_html}}" }
]
}
}

If your content is long-form HTML with headings and lists, split it into multiple blocks (heading, list, code) for the best rendering — see Content blocks.

Source (Chimpee) Canverly field Notes
item.title title Required.
item.id slug Stable slug → safe retries.
item.summary excerpt Optional; SEO description.
item.content_html a paragraph block’s text Sanitized; scripts removed.
item.category category_slugs[] Use slugs that exist on the site.

To target a custom post type, add "post_type": "<slug>" and confirm it via GET /v1/post-types.

After the first delivery, a successful publish returns 201 with { "id", "slug", "status" }. The post is live at https://<your-site-domain>/<slug> (resolve the domain via GET /v1/sites/me).

Response Cause Fix
401 Missing/invalid key Check the Authorization header.
403 Key lacks posts:write Regenerate the key with the right scope.
422 No blocks_json (e.g. body template not wrapping content in a block) Ensure the template sends blocks_json.
429 Over 60 req/min Chimpee honors Retry-After; pace deliveries.

See Errors & rate limits for the full list.