Send posts to your own publishing system.
Send a finished post as JSON to a public HTTPS endpoint you own.
- JSON payloads
{
"event": "post.published",
"post": {
"id": "your-post-id",
"title": "A new story",
"caption": "The finished cut is here."
}
}What it does in Heavenly
The destination for everything else.
Use a public HTTPS receiver for the finished post and your own publishing flow.
A URL, a name, and authentication.
Add the destination address and the headers required by your receiver.
One POST with the finished content.
Your endpoint receives the payload and returns a status that Heavenly records in delivery activity.
About Custom
What is a custom destination?
A custom destination sends prepared content to your own website, app, or publishing workflow.
What does Heavenly send to a custom destination?
Media links and article metadata. JSON payload. It publishes to A public HTTPS endpoint.
How do you connect a custom destination?
URL and optional headers. Send prepared content to your own HTTPS endpoint. Your system handles publishing; retries keep the same post ID.
Who is Custom useful for?
Developers and teams running their own CMS, publishing service, automation, review queue, or archive.
Why use Custom with Heavenly?
Receive finished content at a destination you control and decide how your own system handles it.
How it works
Connect
URL and optional headers. Heavenly keeps that connection with the draft.
Prepare the post
Media links and article metadata. A small contract, a flexible destination.
Choose the time
Schedule it to A public HTTPS endpoint from the same calendar as the rest of the launch.
Stay inside the limit
JSON payload. Send prepared content to your own HTTPS endpoint. Your system handles publishing; retries keep the same post ID.
Requirements & limits
- Where it publishes
- A public HTTPS endpoint
- Supported content
- Media links and article metadata
- Limit
- JSON payload
- How to connect
- URL and optional headers
Earn on this platform
How earning works on Custom
How do you earn on Custom?
Your destination earns through its product, service, membership, or sponsorship—not webhook views. Example: 10 completed orders × $30 = $300 gross before costs. Delivery and payment are separate.
Follow these steps
Choose the income destination
Identify the actual shop, membership, publication, or client workflow receiving the content. Write down who pays and what they receive.
Set up checkout separately
Configure payments and customer access in that destination’s own system. A publishing endpoint is not a payment processor.
Test content delivery
Use a controlled sample to verify that your endpoint accepts the content and reports failures clearly. Check the destination before sending a live post.
Publish the offer
Include a working purchase or signup link in the final content. Verify a completed customer order independently of the publishing-delivery result.
Receive your payment
Check completed sales, fees, refunds, and bank deposits in your payment provider. A successful webhook confirms delivery, not payment.
USD examples illustrate gross revenue, not promised earnings. Fees, eligibility, and payout terms vary by account and country. Payments come from the platform or your customer, not Heavenly.
Custom destinations
Send a finished post to your blog, CMS, Zapier hook or any public HTTPS endpoint you own.
Name it, add its webhook URL and choose it in the publishing calendar alongside your social accounts. Your endpoint receives a JSON POST and answers with a 2xx status to confirm delivery.
Sign in to connect a destinationWhat your endpoint receives
{
"event": "post.published",
"publishedAt": "2026-10-02T18:00:00.000Z",
"post": {
"id": "your-post-id",
"title": "A new story",
"caption": "## Your article\n\nThe caption, exactly as written.",
"image": "https://example.com/cover.jpg",
"options": {
"slug": "a-new-story",
"tags": [
"news"
]
}
}
}Markdown stays as authored. Video posts also include a media array with download URLs; copy media to your storage within one hour. Optional article fields can be supplied as customOptions through the Heavenly publishing API.
Delivery retries network interruptions, 429 and server errors up to five attempts. Treat post.id or the Idempotency-Key header as unique per destination. Other errors, including redirects, stop delivery. Publishing activity shows the response with secret values removed.
Send test uses the event destination.test. Only publish post.published events in your receiving app.
Put Custom on your calendar.
Connect the account, review the Custom version, and schedule it with the rest of the launch.
