Channels API
Channels represent publishing destinations in Wortfreunde, a blog, a LinkedIn profile, a newsletter, etc. Each channel belongs to a team and contains posts.
Endpoints
| Method | Endpoint | Description |
|---|
| GET | /channels | List all channels |
| GET | /channels/{id} | Get a single channel |
List Channels
Retrieve a paginated list of all channels accessible with your API key.
GET /channels
Query Parameters
| Parameter | Type | Default | Description |
|---|
page | integer | 1 | Page number |
per_page | integer | 20 | Items per page (max: 100) |
Example Request
curl -s https://api.wortfreunde.ch/v1/channels \
-H "Authorization: Bearer $WORTFREUNDE_API_KEY" | python3 -m json.tool
Response
{
"data": [
{
"id": 161,
"title": "Blog",
"platform": "git",
"team": {
"id": 42,
"name": "Wortfreunde"
},
"posts_count": 3
},
{
"id": 17,
"title": "LinkedIn",
"platform": "linkedin",
"team": null,
"posts_count": 5
},
],
"meta": {
"page": 1,
"pages": 1,
"count": 5,
"per_page": 20
}
}
Response Fields
| Field | Type | Description |
|---|
id | integer | Unique channel identifier |
title | string | Display name of the channel |
platform | string | Platform type (see below) |
team | object | null | Team the channel belongs to |
team.id | integer | Team identifier |
team.name | string | Team display name |
posts_count | integer | Number of posts in the channel |
| Platform | Description |
|---|
blog | Standard blog channel |
git | Git-backed content (e.g. static site) |
linkedin | LinkedIn publishing |
The meta object contains pagination details:
| Field | Type | Description |
|---|
page | integer | Current page number |
pages | integer | Total number of pages |
count | integer | Total number of channels |
per_page | integer | Items per page |
Get Channel
Retrieve a single channel by its ID.
GET /channels/{id}
Path Parameters
| Parameter | Type | Description |
|---|
id | integer | Channel ID |
Example Request
curl -s https://api.wortfreunde.ch/v1/channels/161 \
-H "Authorization: Bearer $WORTFREUNDE_API_KEY" | python3 -m json.tool
Response
{
"data": {
"id": 161,
"title": "Blog",
"platform": "git",
"team": {
"id": 42,
"name": "Wortfreunde"
},
"posts_count": 3,
"created_at": "2026-02-26T09:34:58.251Z",
"updated_at": "2026-02-26T15:29:05.704Z"
}
}
Response Fields
The single channel response includes all fields from the list response, plus:
| Field | Type | Description |
|---|
created_at | string | ISO 8601 creation timestamp |
image_width | integer | Default image width in pixels for this channel |
updated_at | string | ISO 8601 last update timestamp |
Error Responses
Channel Not Found
curl -s https://api.wortfreunde.ch/v1/channels/99999 \
-H "Authorization: Bearer $WORTFREUNDE_API_KEY"
{
"error": {
"code": "not_found",
"message": "Resource not found"
}
}
| Status | Description |
|---|
| 401 | Invalid or missing API key |
| 403 | Insufficient scopes, requires read:channels |
| 404 | Channel not found |
| 429 | Rate limit exceeded |