Ghost Authors API
Authors represent the staff users who create content in a Ghost publication.
Authors represent the staff users who create content in a Ghost publication.
openapi: 3.1.0
info:
title: Ghost Admin Authors API
description: The Ghost Admin API provides full read and write access to all content and configuration within a Ghost publication. It enables developers to create, update, and delete posts, pages, tags, members, tiers, newsletters, and offers programmatically. Authentication is handled via JSON Web Tokens generated from an Admin API key, integration tokens, or staff access tokens. The Admin API supports everything the Ghost Admin interface can do and more, making it suitable for building custom publishing workflows, content automation, member management systems, and advanced integrations.
version: '5.0'
contact:
name: Ghost Foundation
url: https://ghost.org/docs/admin-api/
termsOfService: https://ghost.org/terms/
servers:
- url: https://{site}.ghost.io/ghost/api/admin
description: Ghost Pro Hosted Site
variables:
site:
default: your-site
description: Your Ghost site subdomain
- url: '{protocol}://{domain}/ghost/api/admin'
description: Self-Hosted Ghost Instance
variables:
protocol:
default: https
enum:
- https
- http
domain:
default: localhost:2368
description: Your Ghost instance domain and port
security:
- adminApiToken: []
tags:
- name: Authors
description: Authors represent the staff users who create content in a Ghost publication.
paths:
/authors/:
get:
operationId: browseAuthors
summary: Browse authors
description: Retrieve a paginated list of authors (staff users) for the publication. Supports including a count of posts per author using the include=count.posts parameter.
tags:
- Authors
parameters:
- $ref: '#/components/parameters/includeAuthorRelations'
- $ref: '#/components/parameters/fields'
- $ref: '#/components/parameters/filter'
- $ref: '#/components/parameters/limit'
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/order'
responses:
'200':
description: A list of authors
content:
application/json:
schema:
type: object
properties:
authors:
type: array
items:
$ref: '#/components/schemas/Author'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
/authors/{id}/:
get:
operationId: readAuthorById
summary: Read an author by ID
description: Retrieve a single author by their unique identifier.
tags:
- Authors
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/includeAuthorRelations'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: A single author
content:
application/json:
schema:
type: object
properties:
authors:
type: array
items:
$ref: '#/components/schemas/Author'
minItems: 1
maxItems: 1
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/authors/slug/{slug}/:
get:
operationId: readAuthorBySlug
summary: Read an author by slug
description: Retrieve a single author by their URL slug.
tags:
- Authors
parameters:
- $ref: '#/components/parameters/resourceSlug'
- $ref: '#/components/parameters/includeAuthorRelations'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: A single author
content:
application/json:
schema:
type: object
properties:
authors:
type: array
items:
$ref: '#/components/schemas/Author'
minItems: 1
maxItems: 1
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
parameters:
fields:
name: fields
in: query
required: false
description: Comma-separated list of fields to return in the response. Use this to limit the size of the response by only requesting the fields you need.
schema:
type: string
page:
name: page
in: query
required: false
description: Page number for paginated results. Defaults to 1.
schema:
type: integer
minimum: 1
default: 1
order:
name: order
in: query
required: false
description: Field and direction to order results by, for example published_at DESC or title ASC.
schema:
type: string
resourceSlug:
name: slug
in: path
required: true
description: The URL slug of the resource
schema:
type: string
includeAuthorRelations:
name: include
in: query
required: false
description: Include a count of posts associated with each author.
schema:
type: string
enum:
- count.posts
filter:
name: filter
in: query
required: false
description: Apply fine-grained filters using Ghost's NQL query language. Examples include featured:true, tag:getting-started, visibility:public, and combinations using plus and comma operators.
schema:
type: string
limit:
name: limit
in: query
required: false
description: Maximum number of resources to return per page. Defaults to 15. Use all to return all resources without pagination.
schema:
oneOf:
- type: integer
minimum: 1
- type: string
enum:
- all
default: 15
resourceId:
name: id
in: path
required: true
description: The unique identifier of the resource
schema:
type: string
format: uuid
responses:
Unauthorized:
description: Authentication failed or API key is missing
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: The requested resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
PaginationMeta:
type: object
description: Pagination metadata included in browse responses
properties:
pagination:
type: object
properties:
page:
type: integer
description: Current page number
minimum: 1
limit:
type: integer
description: Number of items per page
minimum: 1
pages:
type: integer
description: Total number of pages
minimum: 1
total:
type: integer
description: Total number of items across all pages
minimum: 0
next:
type: integer
description: Next page number, null if on last page
nullable: true
prev:
type: integer
description: Previous page number, null if on first page
nullable: true
ErrorResponse:
type: object
description: Standard Ghost API error response
properties:
errors:
type: array
items:
type: object
properties:
message:
type: string
description: Human-readable error message
type:
type: string
description: Error type identifier
context:
type: string
description: Additional context about the error
nullable: true
Author:
type: object
description: An author represents a staff user who creates content in a Ghost publication.
properties:
id:
type: string
format: uuid
description: Unique identifier for the author
name:
type: string
description: Display name of the author
slug:
type: string
description: URL-safe slug for the author
profile_image:
type: string
format: uri
description: Profile image URL
nullable: true
cover_image:
type: string
format: uri
description: Cover image URL for the author page
nullable: true
bio:
type: string
description: Author biography
nullable: true
website:
type: string
format: uri
description: Author personal website URL
nullable: true
location:
type: string
description: Author location
nullable: true
facebook:
type: string
description: Facebook username
nullable: true
twitter:
type: string
description: Twitter handle
nullable: true
meta_title:
type: string
description: SEO meta title for the author page
nullable: true
meta_description:
type: string
description: SEO meta description for the author page
nullable: true
url:
type: string
format: uri
description: Full URL of the author page
count:
type: object
description: Count data, included when requested via include=count.posts
properties:
posts:
type: integer
description: Number of posts by this author
minimum: 0
securitySchemes:
adminApiToken:
type: http
scheme: bearer
bearerFormat: JWT
description: JSON Web Token generated from an Admin API key. The key is split into an ID and secret at the colon separator. The ID is used as the kid header and the secret is used to sign the token with HS256.
externalDocs:
description: Ghost Admin API Documentation
url: https://ghost.org/docs/admin-api/