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 all 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'

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": {
				"time": 1694690318071,
				"blocks": [
					{
						"id": "YuESrpYS-F",
						"type": "paragraph",
						"data": {
							"text": "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Libero nunc consequat interdum varius sit amet mattis vulputate. Tellus elementum sagittis vitae et leo. Quam vulputate dignissim suspendisse in est ante. Netus et malesuada fames ac turpis. "
						}
					},
					{
						"id": "oGrjALBv2Y",
						"type": "header",
						"data": {
							"text": "This is a headline 2",
							"level": 2
						}
					},
					{
						"id": "Lc8TBrsz5P",
						"type": "paragraph",
						"data": {
							"text": "Turpis egestas integer eget aliquet nibh praesent tristique magna sit. At erat pellentesque adipiscing commodo elit at imperdiet. Habitasse platea dictumst vestibulum rhoncus est pellentesque elit ullamcorper."
						}
					},
					{
						"id": "hNtelV5-7Q",
						"type": "header",
						"data": {
							"text": "This is a headline 3",
							"level": 3
						}
					},
					{
						"id": "ihgpn2ngz3",
						"type": "paragraph",
						"data": {
							"text": "Sem viverra aliquet eget sit amet tellus cras adipiscing. Porta lorem mollis aliquam ut porttitor. Lorem mollis aliquam ut porttitor leo. Tristique sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Massa ultricies mi quis hendrerit."
						}
					},
					{
						"id": "47PERBXttZ",
						"type": "header",
						"data": {
							"text": "And this is a headline 4",
							"level": 4
						}
					},
					{
						"id": "xNiqjDFdy-",
						"type": "paragraph",
						"data": {
							"text": "Lacus sed turpis tincidunt id. Placerat in egestas erat imperdiet sed euismod."
						}
					},
					{
						"id": "DaUvmEF8U9",
						"type": "image",
						"data": {
							"file": {
								"url": "FULL-IMAGE-URL"
							},
							"caption": "",
							"withBorder": false,
							"stretched": false,
							"withBackground": false
						}
					}
				],
				"version": "2.27.2"
			}
		},
		{
			"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": {
				"time": 1694690027554,
				"blocks": [
					{
						"id": "q6tCbYbVQb",
						"type": "paragraph",
						"data": {
							"text": "This is some text."
						}
					}
				],
				"version": "2.27.2"
			}
		}
	]
}

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 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?