TBBN.MerchantDocs
Available

Blog

The TBBN blog — posts, likes and comments, and writing for it.

get/v1/blog/posts

Published blog posts, sorted and filtered

curl -X GET https://api.tbbnetwork.com/v1/blog/posts \
  -H "Authorization: Bearer sk_sandbox_..." \

Parameters

sortqueryoptional
categoryqueryoptional
tagqueryoptional
qqueryoptional
pagequeryoptional
limitqueryoptional

Response (200)

FieldTypeRequired
sortstring—
pageinteger—
pagesinteger—
totalinteger—
dataobject[]—
Example 200 response
{
  "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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/blog/taxonomy

Categories and tags used on published posts, with post counts

curl -X GET https://api.tbbnetwork.com/v1/blog/taxonomy \
  -H "Authorization: Bearer sk_sandbox_..." \
get/v1/blog/index

Every 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_..." \
get/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

slugpathrequired

Response (200)

FieldTypeRequired
idstring (uuid)—
slugstring—
titlestring—
excerptstring—
coverImageUrlstringnull—
coverImageAltstringnull—
categorystring—
tagsstring[]—
publishedAtstring (date-time)—
featuredboolean—
readingMinutesinteger—
likeCountinteger—
commentCountinteger—
viewCountinteger—
shareCountinteger—
authorobject—
bodystring—
seoTitlestringnull—
seoDescriptionstringnull—
updatedAtstring (date-time)—
likedByMeboolean—
relatedobject[]—
Example 200 response
{
  "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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/blog/posts/{slug}/comments

A 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

slugpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/blog/posts/{slug}/comments

Comment 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

slugpathrequired

Request body

FieldTypeRequired
bodystringyes
parentIdstring (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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
put/v1/blog/posts/{slug}/like

Like 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

slugpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
delete/v1/blog/posts/{slug}/like

Take 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

slugpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/blog/posts/{slug}/view

Count 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

slugpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/blog/posts/{slug}/share

Count a share of a post

curl -X POST https://api.tbbnetwork.com/v1/blog/posts/{slug}/share \
  -H "Authorization: Bearer sk_sandbox_..." \
  -H "Idempotency-Key: 5f2f...b91" \
  -H "Content-Type: application/json" \
  -d '{
  "channel": "channel"
}'

Parameters

slugpathrequired

Request body

FieldTypeRequired
channelstring—

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
delete/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

idpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/blog/manage/me

Your 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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/blog/manage/posts

Posts 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

statusqueryoptional

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/blog/manage/posts

Start 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

FieldTypeRequired
titlestring—
slugstring—
excerptstring—
bodystring—
coverImageUrlstring,null (uri)—
coverImageAltstringnull—
categorystring—
tagsstring[]—
seoTitlestringnull—
seoDescriptionstringnull—
featuredboolean—

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/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

idpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
patch/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

idpathrequired

Request body

FieldTypeRequired
titlestring—
slugstring—
excerptstring—
bodystring—
coverImageUrlstring,null (uri)—
coverImageAltstringnull—
categorystring—
tagsstring[]—
seoTitlestringnull—
seoDescriptionstringnull—
featuredboolean—

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
delete/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

idpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/blog/manage/posts/{id}/publish

Publish 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

idpathrequired

Request body

FieldTypeRequired
atstring (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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
post/v1/blog/manage/posts/{id}/unpublish

Take 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

idpathrequired

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
get/v1/blog/manage/comments

Comments 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

statusqueryoptional
postIdqueryoptional

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}
patch/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

idpathrequired

Request body

FieldTypeRequired
statusVISIBLE | HIDDENyes

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.

Example error response
{
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "A human-readable description of what went wrong.",
    "requestId": "req_01hxyz..."
  }
}