Tutorials

Changelog API Tutorial — Create Entries Programmatically

Use the Deplyd REST API to publish changelog entries from your CI/CD pipeline, Slack bot, or any custom tool.

What you will learn

This tutorial shows you how to use the Deplyd REST API to create and manage changelog entries programmatically. Perfect for CI/CD integration, custom admin tools, or Slack bots.

Authentication

Every API request requires a Bearer token. Create an API key in your Deplyd dashboard — it starts with dpl_ and is shown only once:

Authorization: Bearer dpl_your_api_key_here

Create an entry

curl -X POST https://deplyd.dev/api/v1/entries \
  -H "Authorization: Bearer dpl_abc123" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "Dark mode support",
    "body": "The widget now automatically adapts to your site dark mode.",
    "type": "feature",
    "published": true
  }'

List entries

curl https://deplyd.dev/api/v1/entries?limit=10&page=1 \
  -H "Authorization: Bearer dpl_abc123"

The response includes pagination metadata:

{
  "data": [
    {
      "id": "01234567-89ab-cdef-0123-456789abcdef",
      "title": "Dark mode support",
      "body": "The widget now automatically adapts...",
      "type": "feature",
      "published": true,
      "published_at": "2026-04-01T10:00:00Z"
    }
  ],
  "meta": {
    "total": 42,
    "page": 1,
    "limit": 10
  }
}

Entry types

Type When to use
featureNew functionality or capability
improvementEnhancement to existing functionality
fixBug fix or correction
breakingBackward-incompatible change

CI/CD integration

Automatically publish changelog entries when you create a GitHub release:

# .github/workflows/changelog.yml
name: Publish Changelog
on:
  release:
    types: [published]

jobs:
  changelog:
    runs-on: ubuntu-latest
    steps:
      - name: Publish to Deplyd
        run: |
          curl -X POST https://deplyd.dev/api/v1/entries \
            -H "Authorization: Bearer ${{ secrets.DEPLYD_API_KEY }}" \
            -H "Content-Type: application/json" \
            -d "{
              \"title\": \"${{ github.event.release.name }}\",
              \"body\": $(echo '${{ github.event.release.body }}' | jq -Rs .),
              \"type\": \"feature\",
              \"published\": true
            }"

Rate limits

  • Free plan: 30 requests per minute
  • Paid plans: 100 requests per minute
  • Widget endpoint: 300 requests per minute

Ship changelogs that get read

Try Deplyd free — 1.8KB widget, REST API, and email notifications included.

Start free now