Ghost Users API
Read staff user accounts for the Ghost publication.
Read staff user accounts for the Ghost publication.
openapi: 3.1.0
info:
title: Ghost Admin Authors Users 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: Users
description: Read staff user accounts for the Ghost publication.
paths:
/users/:
get:
operationId: adminBrowseUsers
summary: Browse users
description: Retrieve a paginated list of staff users for the publication.
tags:
- Users
parameters:
- name: include
in: query
required: false
description: Include related resources. Supports count.posts and roles.
schema:
type: string
- $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 users
content:
application/json:
schema:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/User'
meta:
$ref: '#/components/schemas/PaginationMeta'
'401':
$ref: '#/components/responses/Unauthorized'
/users/{id}/:
get:
operationId: adminReadUser
summary: Read a user by ID
description: Retrieve a single staff user by their unique identifier.
tags:
- Users
parameters:
- $ref: '#/components/parameters/resourceId'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: A single user
content:
application/json:
schema:
type: object
properties:
users:
type: array
items:
$ref: '#/components/schemas/User'
minItems: 1
maxItems: 1
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
schemas:
User:
type: object
description: A staff user account in the Ghost publication.
properties:
id:
type: string
format: uuid
description: Unique identifier
name:
type: string
description: Display name
slug:
type: string
description: URL-safe slug
email:
type: string
format: email
description: Email address
profile_image:
type: string
format: uri
description: Profile image URL
nullable: true
cover_image:
type: string
format: uri
description: Cover image URL
nullable: true
bio:
type: string
description: Biography
nullable: true
website:
type: string
format: uri
description: Personal website URL
nullable: true
location:
type: string
description: Location
nullable: true
facebook:
type: string
description: Facebook username
nullable: true
twitter:
type: string
description: Twitter handle
nullable: true
accessibility:
type: string
description: Accessibility settings JSON
nullable: true
status:
type: string
description: User account status
enum:
- active
- inactive
- locked
meta_title:
type: string
nullable: true
description: SEO meta title
meta_description:
type: string
nullable: true
description: SEO meta description
tour:
type: string
description: Onboarding tour progress JSON
nullable: true
last_seen:
type: string
format: date-time
description: Last login timestamp
nullable: true
url:
type: string
format: uri
description: Full URL of the author page
roles:
type: array
description: Assigned roles
items:
type: object
properties:
id:
type: string
format: uuid
description: Role identifier
name:
type: string
description: Role name
description:
type: string
description: Role description
created_at:
type: string
format: date-time
description: Account creation timestamp
updated_at:
type: string
format: date-time
description: Last update timestamp
PaginationMeta:
type: object
description: Pagination metadata
properties:
pagination:
type: object
properties:
page:
type: integer
description: Current page
minimum: 1
limit:
type: integer
description: Items per page
minimum: 1
pages:
type: integer
description: Total pages
minimum: 1
total:
type: integer
description: Total items
minimum: 0
next:
type: integer
description: Next page number
nullable: true
prev:
type: integer
description: Previous page number
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 error context
nullable: true
parameters:
fields:
name: fields
in: query
required: false
description: Comma-separated list of fields to return in the response.
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.
schema:
type: string
filter:
name: filter
in: query
required: false
description: Apply fine-grained filters using Ghost's NQL query language.
schema:
type: string
limit:
name: limit
in: query
required: false
description: Maximum number of resources to return per page. Defaults to 15.
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 token is missing or invalid
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
NotFound:
description: The requested resource was not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
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/