Endpoints

Before accessing any endpoint, make sure you have created a valid access token. Also make sure to read the introduction to get familiar with our API.

Available endpoints:

Get basic workspace info

Method: GET

To get some basic info about your workspace, you can use the endpoint https://releasesapp.com/api/workspace:

$access_token = 'YOUR-ACCESS-TOKEN';
 
curl https://releasesapp.com/api/workspace \
-H "Authorization: Bearer $access_token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

Response

{
"success": true,
"version": "1.0",
"data": {
"identifier": "4982af36-4af0-11ee-8e70-7431996c5050",
"name": "Releases Changelog",
"slug": "releases-changelog",
"theme": "commit",
"is_public": 1,
"allow_bots": 1,
"show_backlink": 1,
"logo_url": "FULL-IMAGE-URL",
"og_image_url": "FULL-IMAGE-URL",
"created_at": "2023-08-20T08:57:18.000000Z"
}
}

Get entries

Method: GET

To get a list of all entries in a workspace, you can use the endpoint https://releasesapp.com/api/entries.

$access_token = 'YOUR-ACCESS-TOKEN';
 
curl https://releasesapp.com/api/entries \
-H "Authorization: Bearer $access_token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

You can add the parameter ?limit to limit the response. So https://releasesapp.com/api/entries?limit=5 will return only the latest 5 entries.

Response

{
"success": true,
"version": "1.0",
"data": [
{
"identifier": "a6b02a3e-bbcb-43f3-8f23-fc230fe7ff2e",
"title": "This is some published entry",
"slug": "this-is-some-published-entry",
"publish_at": "2023-09-05T00:00:00.000000Z",
"status": "published",
"notify_subscribers": true,
"content": "<p>HTML formatted content</p>"
},
{
"identifier": "28871f56-42eb-46c8-9d61-42eb2368ced4",
"title": "This is a new draft",
"slug": "this-is-a-new-draft",
"publish_at": "2023-09-14T00:00:00.000000Z",
"status": "draft",
"notify_subscribers": true,
"content": "<p>HTML formatted content</p>"
}
]
}

Get single entry

Method: GET

To access a single entry, use the endpoint https://releasesapp.com/api/entries/{id}.

$access_token = 'YOUR-ACCESS-TOKEN';
 
curl https://releasesapp.com/api/entries/{id} \
-H "Authorization: Bearer $access_token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

Get latest entry

Method: GET

This is a public endpoint that does not need authentication via an API token. You can find the uuid of your workspace in the workspace settings.

curl https://releasesapp.com/api/entries/latest/{uuid} \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

By default, this endpoint returns an array with the entry uuid and date (which represents the publish date). To expose more information, head over to your workspace settings and find the “Latest entry API“ section.


Add entry

Method: POST

To create a single entry, use the endpoint https://releasesapp.com/api/entry.

$access_token = 'YOUR-ACCESS-TOKEN';
 
curl https://releasesapp.com/api/entry \
-H "Authorization: Bearer $access_token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

The following parameters are allowed:

{
"title": "The title of the entry",
"slug": "the-slug-of-the-entry",
"is_published": true,
"publish_at": "2025-03-19",
"notify_subscribers": false,
"html": "<b>Hello there</b>"
}

The only required parameter is title.

If is_published is true and the publish_at date is in the future, the entry will be scheduled. If you supply a publish_at date, make sure it has the format YYYY-MM-DD.

It is currently not possible to add files or assign tags via the API.


Get all tags

Method: GET

To get a list of all tags, you can use the endpoint https://releasesapp.com/api/tags.

$access_token = 'YOUR-ACCESS-TOKEN';
 
curl https://releasesapp.com/api/tags \
-H "Authorization: Bearer $access_token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

Response

{
"success": true,
"version": "1.0",
"data": [
{
"name": "Announcement",
"slug": "announcement",
"bg_color": "#1b8bcc",
"text_color": "#ffffff"
},
{
"name": "Update",
"slug": "update",
"bg_color": "#0b9e77",
"text_color": "#ffffff"
},
{
"name": "Bugfix",
"slug": "bugfix",
"bg_color": "#98c283",
"text_color": "#d09723"
}
]
}

Get all subscribers

Method: GET

To get a list of all subscribers, use the endpoint https://releasesapp.com/api/subscribers.

$access_token = 'YOUR-ACCESS-TOKEN';
 
curl https://releasesapp.com/api/subscribers \
-H "Authorization: Bearer $access_token" \
-H 'Accept: application/json' \
-H 'Content-Type: application/json'

Response

{
"success": true,
"version": "1.0",
"data": [
{
"email": "andreas@example.com",
"name": "Andreas",
"verified_at": "2023-09-12T06:50:27.000000Z",
"created_at": "2023-09-10T11:41:02.000000Z"
},
{
"email": "rosalie@example.com",
"name": "Rosalie",
"verified_at": null,
"created_at": "2023-09-12T07:37:34.000000Z"
}
]
}

Add subscriber

Method: POST

To add a subscriber, send a POST request to https://releasesapp.com/api/subscribers. The supplied data must be valid JSON in an array format, even if you only add one subscriber.

Be sure to send these headers:

Accept: application/json
Content-Type: application/json
{
"subscribers": [
{
"name": "Alf",
"email": "alf@example.com",
"verified_at": "2023-09-14"
},
{
"name": "Willie",
"email": "willie@example.com",
"verified_at": "2023-09-14"
}
]
}

Response

{
"success": true,
"version": "1.0",
"data": [
{
"email": "alf@example.com",
"name": "Alf",
"verified_at": "2023-09-14T00:00:00.000000Z",
"created_at": "2023-09-14T14:17:39.000000Z"
},
{
"email": "willie@example.com",
"name": "Willie",
"verified_at": "2023-09-14T00:00:00.000000Z",
"created_at": "2023-09-14T14:17:39.000000Z"
}
]
}

Please note that verified_at must be formatted like YYYY-MM-DD, eg. 2023-09-14. If you do not supply a date, the current date is used when importing data.

Delete subscriber

Method: DELETE

To delete one or more subscriber, send a DELETE request to https://releasesapp.com/api/subscribers. The supplied data must be valid JSON in an array format, even if you only add one subscriber.

Be sure to send these headers:

Accept: application/json
Content-Type: application/json
{
"subscribers": [
{
"email": "alf@example.com"
},
{
"email": "willie@example.com"
}
]
}

Response

{
"success": true,
"version": "1.0",
"data": [
"alf@example.com",
"willie@example.com"
]
}


Was this article helpful?