A catalog of critical changes between major Ghost versions
?limit=all
support from all API endpoints.
?limit=all
support)limit
parameter to "all"
has been a useful feature for many tools and integrations.
However, on larger sites it can cause performance and stability issues. Therefore we’ve removed this feature and added a max page size of 100, in line with other similar platforms.
Requesting ?limit=all
from any API endpoint will not error, but instead will return a maximum of 100 items. Attempting to request more than 100 items will also fall back to returning a maximum of 100 items.
To fetch more than 100 items, pagination should be used, being mindful to build in small delays so as not to trigger any rate limits or fair usage policies of your hosts.
If you’re using Ghost as a headless CMS, have custom integrations, or an advanced custom theme please be sure to change these to handle pagination before updating to Ghost 6.0.
created_by
& updated_by
from all tables - these properties were unused and are now deleted. Use the actions
table instead.GET /ghost/api/admin/session/
endpoint - this was an unused endpoint that has been cleaned up. Use GET /ghost/api/admin/users/me/
instead.@blog
, single authors.monthly_price
and yearly_price
attributes, and a separate currency
attribute. (docs)@price
, @products
, @product
and @member.product
. See below for examples of the new syntax for building a custom signup form and account page. (docs)ghost/api/content
and ghost/api/admin
. Breaking changes will continue to be made only in major versions; new features and additions may be added in minor version updates.
Backwards compatibility is now provided by sending an accept-version
header with API requests specifying the compatibility version a client expects. When this header is present in a request, Ghost will respond with a content-version
header indicating the version that responded. In the case that the provided accept-version
is below the minimum version supported by Ghost and a request either cannot be served or has changed significantly, Ghost will notify the site’s administrators via email informing them of the problem.
Requests to the old, versioned URLs are rewritten internally with the relevant accept-version
header set. These requests will return a deprecation
header.
/posts
and /pages
endpoints no longer accept page:(true|false)
as a filter in the query parametersemail_recipient_filter
and send_email_when_published
parameters have been removed from the /posts
endpoint, and email sending is now controlled by the new newsletter
and email_segment
parameters/mail
endpoint has been removed/email_preview
endpoint has been renamed to /email_previews
/authentication/reset_all_passwords
endpoint has been renamed to /authentication/global_password_reset
and returns a 204 No Content
response on success/authentication/passwordreset
endpoint has been renamed to /authentication/password_reset
, and accepts and returns a password_reset
objectDELETE /settings/stripe/connect
endpoint now returns a 204 No Content
response on successPOST /settings/members/email
endpoint now returns a 204 No Content
response on successGET /posts
and GET /pages
endpoints no longer return the page:(true|false)
attribute in the responsemembers/api/site
and members/api/offers
endpoints have been removed, and Portal now uses the Content API/products/*
endpoints have been replaced with /tiers/*
, and all references to products
in requests/responses have been updated to use tiers
monthly_price
and yearly_price
attributes, and a separate currency
attributesubscribed
flag has been deprecated in favor of the newsletters
relation, which includes the newsletters a member is subscribed toconfig.url
is set to http
/newsletters/* endpoints
)/v4/
(stable) and /canary/
(experimental) API versions have been added./v3/
(maintenance) endpoints will not receive any further changes./v2/
(deprecated) endpoints will be removed in the next major version./settings/
endpoint no longer supports the ?type
query parameter./settings/
endpoint only accepts boolean values for the key unsplash
.redirects.json
has been deprecated in favour of redirects.yaml
."engines": {"ghost-api": "vX"}}
to the package.json
file.width
/ height
attributes, themes with CSS that use max-width
may need to add height: auto
to prevent images appearing squashed or stretched.{{date}}
helper is now a localised short date string (ll
).@site.lang
has been deprecated in favour of @site.locale
.express:sess
to ghost-private
./members/
endpoint no longer supports the ?paid
query parameter/members/
endpoints now have subscriptions on the subscriptions
key, rather than stripe.subscriptions
./posts/
endpoint has deprecated the send_email_when_published
flag in favour of email_recipient_filter
.@labs.members
theme helper always returns true
, and will be removed in the next major version.foreach
in themes is now all
.default_payment_card_last4
property of member subscriptions now returns ****
instead of null
if the data is unavailable.portal-
prefixes.ghost-membersjs-root
to ghost-portal-root
.WEBHOOK_SECRET
, and live stripe keys are no longer supported in non-production environments.ghost.url.api()
must upgrade to the Content API client library.{{author}}
for either {{#primary_author}}
or {{authors}}
./v3/
(stable) and /canary/
(experimental) API versions have been added./v2/
(maintenance) endpoints will not receive any further changes./posts/
& /pages/
don’t return primary_tag
or primary_author
when ?include=tags,authors
isn’t specified (these were returned as null previously)./posts/
& /pages/
no longer return page: true|false
./settings/
no longer returns ghost_head or ghost_foot
, use codeinjection_head
and codeinjection_foot
instead./subscribers/*
endpoints are removed and replaced with /members/*
.client_id
and client_secret
are replaced with a single key
, found by configuring a new Custom Integration in Ghost Admin.ghost-sdk.min.js
and ghost.url.api()
are replaced with the @tryghost/content-api
client library.@tryghost/admin-api
client library supports easily creating content via JWT auth./v2/
API replaces the deprecated /v0.1/
API.{{#get "users"}}
should be replaced with {{#get "authors"}}
{{#primary_author}}
or {{authors}}
."engines": {"ghost-api": "vX"}}
to the package.json
file.@blog
has been renamed to @site
, use GScan to make sure your theme is fully 2.0 compatible./posts/
& /pages/
endpoints, instead of just /posts/
./authors/
endpoint instead of /users/
./posts/
and /pages/
automatically include tags and authors without needing ?includes=
./shared/ghost-url.min.js
util has been moved and renamed to /public/ghost-sdk.min.js
clients
and trusted_domains
so these aren’t imported to your new site - you’ll need to update any scripts with a new client_id
and client_secret
from your 1.0 install.