Ghost's RESTful Content API delivers published content to the world and can be accessed in a read-only manner by any client to render in a website, app or other embedded media.
Access control is managed via an API key, and even the most complex filters are made simple with our SDK. The Content API is designed to be fully cachable, meaning you can fetch data as often as you like without limitation.
API Clients
JavaScript Client Library
We've developed an API client for JavaScript, that will allow you to quickly and easily interact with the Content API. The client is an advanced wrapper on top of our REST API - everything that can be done with the Content API can be done using the client, with no need to deal with the details of authentication or the request & response format.
Handlebars
You can upgrade your Ghost theme to use the v3 Content API by specifying the ghost-api
version in the engines
field of your package.json. See the handlebars reference for an example.
Authentication
Url
https://{admin_domain}
Your admin domain can be different to your main domain. Using the correct domain and protocol are critical to getting consistent behaviour, particularly when dealing with CORS in the browser. All Ghost(Pro) blogs have a *.ghost.io domain
as their admin domain and require https.
Path & Version
/ghost/api/{version}/content/
Each API is prefixed with the same path, followed by a specific version. Version strings are required and always start with v
. The api versioning guide explains the current available versions and stability index.
Key
?key={key}
Content API keys are provided via a query parameter in the url. These keys are safe for use in browsers and other insecure environments, as they only ever provide access to public data. Sites in private mode should consider where they share any keys they create.
The Content API URL and key can be obtained by creating a new Custom Integration
under the Integrations screen in Ghost Admin.
Working Example
# Real endpoint - copy and paste to see!
curl "https://demo.ghost.io/ghost/api/v3/content/posts/?key=22444f78447824223cefc48062"
Endpoints
The Content API provides access to Posts, Pages, Tags, Authors and Settings. All endpoints return JSON.
Verb | Path | Method |
---|---|---|
GET | /posts/ | Browse posts |
GET | /posts/{id}/ | Read a post by ID |
GET | /posts/slug/{slug}/ | Read a post by slug |
GET | /authors/ | Browse authors |
GET | /authors/{id}/ | Read an author by ID |
GET | /authors/slug/{slug}/ | Read a author by slug |
GET | /tags/ | Browse tags |
GET | /tags/{id}/ | Read a tag by ID |
GET | /tags/slug/{slug}/ | Read a tag by slug |
GET | /pages/ | Browse pages |
GET | /pages/{id}/ | Read a page by ID |
GET | /pages/slug/{slug}/ | Read a page by slug |
GET | /settings/ | Browse settings |
The Content API supports two types of request: Browse and Read. Browse endpoints allow you to fetch lists of resources, whereas Read endpoints allow you to fetch a single resource.
NOTE: This content is copied from https://ghost.org/docs/api/v3/content/ just for demo purpose