Blog
The TBBN blog — posts, likes and comments, and writing for it.
/v1/blog/postsPublished blog posts, sorted and filtered
curl -X GET https://api.tbbnetwork.com/v1/blog/posts \
-H "Authorization: Bearer sk_sandbox_..." \Parameters
| sort | query | optional |
| category | query | optional |
| tag | query | optional |
| q | query | optional |
| page | query | optional |
| limit | query | optional |
Response (200)
| Field | Type | Required |
|---|---|---|
| sort | string | — |
| page | integer | — |
| pages | integer | — |
| total | integer | — |
| data | object[] | — |
{
"sort": "sort",
"page": 1,
"pages": 1,
"total": 1,
"data": [
{
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"slug": "example-slug",
"title": "title",
"excerpt": "excerpt",
"coverImageUrl": null,
"coverImageAlt": null,
"category": "category",
"tags": [],
"publishedAt": "2026-07-01T12:00:00Z",
"featured": false,
"readingMinutes": 1,
"likeCount": 1,
"commentCount": 1,
"viewCount": 1,
"shareCount": 1,
"author": {
"name": "Acme Co."
}
}
]
}Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/taxonomyCategories and tags used on published posts, with post counts
curl -X GET https://api.tbbnetwork.com/v1/blog/taxonomy \
-H "Authorization: Bearer sk_sandbox_..." \/v1/blog/indexEvery published post's address and dates, for sitemaps and feeds
curl -X GET https://api.tbbnetwork.com/v1/blog/index \
-H "Authorization: Bearer sk_sandbox_..." \/v1/blog/posts/{slug}One published post, with related posts
curl -X GET https://api.tbbnetwork.com/v1/blog/posts/{slug} \
-H "Authorization: Bearer sk_sandbox_..." \Parameters
| slug | path | required |
Response (200)
| Field | Type | Required |
|---|---|---|
| id | string (uuid) | — |
| slug | string | — |
| title | string | — |
| excerpt | string | — |
| coverImageUrl | stringnull | — |
| coverImageAlt | stringnull | — |
| category | string | — |
| tags | string[] | — |
| publishedAt | string (date-time) | — |
| featured | boolean | — |
| readingMinutes | integer | — |
| likeCount | integer | — |
| commentCount | integer | — |
| viewCount | integer | — |
| shareCount | integer | — |
| author | object | — |
| body | string | — |
| seoTitle | stringnull | — |
| seoDescription | stringnull | — |
| updatedAt | string (date-time) | — |
| likedByMe | boolean | — |
| related | object[] | — |
{
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"slug": "example-slug",
"title": "title",
"excerpt": "excerpt",
"coverImageUrl": null,
"coverImageAlt": null,
"category": "category",
"tags": [
"value"
],
"publishedAt": "2026-07-01T12:00:00Z",
"featured": false,
"readingMinutes": 1,
"likeCount": 1,
"commentCount": 1,
"viewCount": 1,
"shareCount": 1,
"author": {
"name": "Acme Co."
},
"body": "body",
"seoTitle": null,
"seoDescription": null,
"updatedAt": "2026-07-01T12:00:00Z",
"likedByMe": false,
"related": [
{
"id": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d",
"slug": "example-slug",
"title": "title",
"excerpt": "excerpt",
"coverImageUrl": null,
"coverImageAlt": null,
"category": "category",
"tags": [],
"publishedAt": "2026-07-01T12:00:00Z",
"featured": false,
"readingMinutes": 1,
"likeCount": 1,
"commentCount": 1,
"viewCount": 1,
"shareCount": 1,
"author": {
"name": "Acme Co."
}
}
]
}Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/posts/{slug}/commentsA post's comments, with replies under the comment they answer
curl -X GET https://api.tbbnetwork.com/v1/blog/posts/{slug}/comments \
-H "Authorization: Bearer sk_sandbox_..." \Parameters
| slug | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/posts/{slug}/commentsComment on a post, or reply to a comment
curl -X POST https://api.tbbnetwork.com/v1/blog/posts/{slug}/comments \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"body": "body",
"parentId": "a1b2c3d4-5e6f-4a7b-8c9d-0e1f2a3b4c5d"
}'Parameters
| slug | path | required |
Request body
| Field | Type | Required |
|---|---|---|
| body | string | yes |
| parentId | string (uuid) | — |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/posts/{slug}/likeLike a post (liking twice changes nothing)
curl -X PUT https://api.tbbnetwork.com/v1/blog/posts/{slug}/like \
-H "Authorization: Bearer <session access token>" \Parameters
| slug | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/posts/{slug}/likeTake back a like
curl -X DELETE https://api.tbbnetwork.com/v1/blog/posts/{slug}/like \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \Parameters
| slug | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/posts/{slug}/viewCount a read of a post (send once a visit)
curl -X POST https://api.tbbnetwork.com/v1/blog/posts/{slug}/view \
-H "Authorization: Bearer sk_sandbox_..." \
-H "Idempotency-Key: 5f2f...b91" \Parameters
| slug | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/comments/{id}Delete your own comment
curl -X DELETE https://api.tbbnetwork.com/v1/blog/comments/{id} \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \Parameters
| id | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/meYour blog role (AUTHOR or EDITOR); 403 if you don't write for the blog
curl -X GET https://api.tbbnetwork.com/v1/blog/manage/me \
-H "Authorization: Bearer <session access token>" \Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/postsPosts you can manage — your own as an author, every post as an editor
curl -X GET https://api.tbbnetwork.com/v1/blog/manage/posts \
-H "Authorization: Bearer <session access token>" \Parameters
| status | query | optional |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/postsStart a post (as a draft)
curl -X POST https://api.tbbnetwork.com/v1/blog/manage/posts \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"title": "title",
"slug": "example-slug",
"excerpt": "excerpt",
"body": "body",
"coverImageUrl": null,
"coverImageAlt": null,
"category": "category",
"tags": [
"value"
],
"seoTitle": null,
"seoDescription": null,
"featured": false
}'Request body
| Field | Type | Required |
|---|---|---|
| title | string | — |
| slug | string | — |
| excerpt | string | — |
| body | string | — |
| coverImageUrl | string,null (uri) | — |
| coverImageAlt | stringnull | — |
| category | string | — |
| tags | string[] | — |
| seoTitle | stringnull | — |
| seoDescription | stringnull | — |
| featured | boolean | — |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/posts/{id}A post you can manage, in full
curl -X GET https://api.tbbnetwork.com/v1/blog/manage/posts/{id} \
-H "Authorization: Bearer <session access token>" \Parameters
| id | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/posts/{id}Edit a post
curl -X PATCH https://api.tbbnetwork.com/v1/blog/manage/posts/{id} \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"title": "title",
"slug": "example-slug",
"excerpt": "excerpt",
"body": "body",
"coverImageUrl": null,
"coverImageAlt": null,
"category": "category",
"tags": [
"value"
],
"seoTitle": null,
"seoDescription": null,
"featured": false
}'Parameters
| id | path | required |
Request body
| Field | Type | Required |
|---|---|---|
| title | string | — |
| slug | string | — |
| excerpt | string | — |
| body | string | — |
| coverImageUrl | string,null (uri) | — |
| coverImageAlt | stringnull | — |
| category | string | — |
| tags | string[] | — |
| seoTitle | stringnull | — |
| seoDescription | stringnull | — |
| featured | boolean | — |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/posts/{id}Delete a post, with its likes and comments (editors; authors only their drafts)
curl -X DELETE https://api.tbbnetwork.com/v1/blog/manage/posts/{id} \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \Parameters
| id | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/posts/{id}/publishPublish a post now, or schedule it with at
curl -X POST https://api.tbbnetwork.com/v1/blog/manage/posts/{id}/publish \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"at": "2026-07-01T12:00:00Z"
}'Parameters
| id | path | required |
Request body
| Field | Type | Required |
|---|---|---|
| at | string (date-time) | — |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/posts/{id}/unpublishTake a post off the blog (back to a draft, or archived if it was public)
curl -X POST https://api.tbbnetwork.com/v1/blog/manage/posts/{id}/unpublish \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \Parameters
| id | path | required |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/commentsComments to moderate on the posts you manage
curl -X GET https://api.tbbnetwork.com/v1/blog/manage/comments \
-H "Authorization: Bearer <session access token>" \Parameters
| status | query | optional |
| postId | query | optional |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}/v1/blog/manage/comments/{id}Hide a comment, or show it again
curl -X PATCH https://api.tbbnetwork.com/v1/blog/manage/comments/{id} \
-H "Authorization: Bearer <session access token>" \
-H "Idempotency-Key: 5f2f...b91" \
-H "Content-Type: application/json" \
-d '{
"status": "VISIBLE"
}'Parameters
| id | path | required |
Request body
| Field | Type | Required |
|---|---|---|
| status | VISIBLE | HIDDEN | yes |
Possible errors
Any other failure (validation, auth, rate limiting, a resource that doesn't exist) returns this same envelope with a non-2xx status — error.code is stable and safe to branch on; error.requestId is worth logging and including in a support request.
{
"error": {
"code": "VALIDATION_ERROR",
"message": "A human-readable description of what went wrong.",
"requestId": "req_01hxyz..."
}
}