Blog Authors

Blog Authors require blog scopes. Reads use read_blog; writes use write_blog. Names and slugs are store-scoped, avatars reference uploaded image media, and deleting an author detaches assigned posts without deleting them.

Endpoints#

Blog Author limits

GET read_blog

Fetch blog author limits.

Returns field, pagination, search, and store caps from the canonical contract.

Headers

Name Type Description
Authorization required string

Bearer Store API token.

List blog authors

GET read_blog

List store blog authors.

Returns a strictly paginated list. Search and sorting are validated against the canonical contract.

Query parameters

Name Type Description
page integer

Page number.

Example: 1
limit integer

Page size.

Example: 20
search string

Search by name or slug.

Example: avery
sort_by string

Sort field.

Allowed values
namepost_countupdated_at
Example: name
sort_direction string

Sort direction.

Allowed values
ascdesc
Example: asc

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Get a blog author

GET read_blog

Fetch one blog author.

Returns the author when it belongs to the token's store.

Path parameters

Name Type Description
id required uuid

Blog Author id.

Example: 5ff7d4ea-3250-4a4d-9d26-07f64d917d31

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 404 BLOG_AUTHOR_NOT_FOUND

    Blog Author does not exist in this store.

  • 400 BLOG_AUTHOR_NAME_REQUIRED

    Name is required.

  • 400 BLOG_AUTHOR_NAME_TOO_LONG

    Name exceeds the contract limit.

  • 400 BLOG_AUTHOR_BIO_TOO_LONG

    Bio exceeds the contract limit.

  • 400 BLOG_AUTHOR_LIMIT_REACHED

    The store author limit has been reached.

Create a blog author

POST write_blog

Create a store-scoped blog author.

The backend generates the slug from name. Avatar must reference an image in this store.

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Body parameters

Name Type Description
name required string

Author display name.

Example: Avery Stone
bio string

Author biography.

Example: Writes product and company updates.
avatar_media_id uuid

Image media id; null clears on update.

Example: f_8f2a1c2b9d4e

Errors

  • 404 BLOG_AUTHOR_NOT_FOUND

    Blog Author does not exist in this store.

  • 400 BLOG_AUTHOR_NAME_REQUIRED

    Name is required.

  • 400 BLOG_AUTHOR_NAME_TOO_LONG

    Name exceeds the contract limit.

  • 400 BLOG_AUTHOR_BIO_TOO_LONG

    Bio exceeds the contract limit.

  • 400 BLOG_AUTHOR_LIMIT_REACHED

    The store author limit has been reached.

Update a blog author

PUT write_blog

Update one blog author.

Omitted fields are unchanged. Renaming regenerates the backend-owned slug.

Path parameters

Name Type Description
id required uuid

Blog Author id.

Example: 5ff7d4ea-3250-4a4d-9d26-07f64d917d31

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Body parameters

Name Type Description
name string

Author display name.

Example: Avery Stone
bio string

Author biography.

Example: Writes product and company updates.
avatar_media_id uuid

Image media id; null clears on update.

Example: f_8f2a1c2b9d4e

Errors

  • 404 BLOG_AUTHOR_NOT_FOUND

    Blog Author does not exist in this store.

  • 400 BLOG_AUTHOR_NAME_REQUIRED

    Name is required.

  • 400 BLOG_AUTHOR_NAME_TOO_LONG

    Name exceeds the contract limit.

  • 400 BLOG_AUTHOR_BIO_TOO_LONG

    Bio exceeds the contract limit.

  • 400 BLOG_AUTHOR_LIMIT_REACHED

    The store author limit has been reached.

Delete a blog author

DELETE write_blog

Delete one blog author.

Deleting an author detaches assigned posts; it does not delete them.

Path parameters

Name Type Description
id required uuid

Blog Author id.

Example: 5ff7d4ea-3250-4a4d-9d26-07f64d917d31

Headers

Name Type Description
Authorization required string

Bearer Store API token.

Errors

  • 404 BLOG_AUTHOR_NOT_FOUND

    Blog Author does not exist in this store.

  • 400 BLOG_AUTHOR_NAME_REQUIRED

    Name is required.

  • 400 BLOG_AUTHOR_NAME_TOO_LONG

    Name exceeds the contract limit.

  • 400 BLOG_AUTHOR_BIO_TOO_LONG

    Bio exceeds the contract limit.

  • 400 BLOG_AUTHOR_LIMIT_REACHED

    The store author limit has been reached.

Fields#

Field

Kind

Create

Update

Required

Translatable

name

text

Yes

Yes

create

No

slug

slug

No

No

No

bio

textarea

Yes

Yes

No

avatar_media_id

image

Yes

Yes

No

post_count

integer

No

No

No

created_at

datetime

No

No

No

updated_at

datetime

No

No

No

Webhook events#

Blog Author webhook events are declared by the Blog Author resource contract. The event cards below include the topic, subscription scope, store permission, payload schema, and sample payload.

Blog author created

EVENT blog_authors/create write_blog blog:write

Fired when a blog author is created.

Payload fields

Field Type Description
blog_author.id string Always present
blog_author.name string Can be removed/added via the Payload builder
blog_author.slug string Can be removed/added via the Payload builder
blog_author.bio string Can be removed/added via the Payload builder
blog_author.avatar_url string Can be removed/added via the Payload builder
blog_author.created_at string Can be removed/added via the Payload builder

Blog author updated

EVENT blog_authors/update write_blog blog:write

Fired when a blog author is updated.

Payload fields

Field Type Description
blog_author.id string Always present
blog_author.name string Can be removed/added via the Payload builder
blog_author.slug string Can be removed/added via the Payload builder
blog_author.bio string Can be removed/added via the Payload builder
blog_author.avatar_url string Can be removed/added via the Payload builder
blog_author.created_at string Can be removed/added via the Payload builder

Blog author deleted

EVENT blog_authors/delete write_blog blog:write

Fired when a blog author is deleted.

Payload fields

Field Type Description
blog_author.id string Always present
blog_author.name string Can be removed/added via the Payload builder
blog_author.slug string Can be removed/added via the Payload builder