API Documentation
Table of Contents
Overview
The Update Brief API is a RESTful API that allows you to access the brief update summaries of both WordPress Core updates and WordPress plugin updates, generated by Update Brief.
The API is designed to be easy to use with predictable, simple URLs. It uses standard HTTP response codes and requires an API Token for authentication. All responses are returned as JSON with a Content-Type: application/json header.
If you are using our MainWP add-on, then please see the Update Brief for MainWP plugin documentation.
The documentation below is for the current active version of the Update Brief API, which is version 2.
( For reference, documentation for the older version of the Update Brief API, version 1, can be found here)
Quick Start
To get started, make an authenticated GET request to one of the API endpoints. Here is a complete example using curl to retrieve the update summary for the Akismet plugin, upgrading from version 5.6 to 5.7:
curl -H "Authorization: Bearer YourApiToken" \
https://updatebrief.com/api/v2/en/plugins/akismet/5.6/5.7
A successful request returns a JSON response like this:
{
"status": 200,
"language": "en",
"plugin_slug": "akismet",
"start_version": "5.6",
"end_version": "5.7",
"summary": "This update enhances the platform by adding Abilities API support for stats and comment checking, integrating with the MCP tool, and preparing for the new Connectors page in WordPress 7.0. It also improves the detection of automated spam submissions, makes comment history sorting more robust, and incorporates security enhancements like safer inline script output. Additionally, action hooks have been added for customizing admin page elements, and accessibility has been improved."
}
Your API Token can be found in the Update Brief Dashboard. Read on for full details on authentication, endpoints, and response formats.
Authentication
The Update Brief API uses API key authentication. To make an API request, include your API Token in the Authorization header as a Bearer token:
Authorization: Bearer YourApiToken
For example, using curl:
curl -H "Authorization: Bearer YourApiToken" https://updatebrief.com/api/v2/en/plugins/akismet/5.6/5.7
Or, using PHP with WordPress:
$response = wp_remote_get(
'https://updatebrief.com/api/v2/en/plugins/akismet/5.6/5.7',
array(
'headers' => array(
'Authorization' => 'Bearer YourApiToken',
),
)
);
$body = json_decode( wp_remote_retrieve_body( $response ), true );
Your API Token can be found in the Update Brief Dashboard.
Requests
The Update Brief API only accepts GET requests. Any other HTTP method (POST, PUT, DELETE, etc.) will return a 405 error.
The base URL for all requests is:
https://updatebrief.com/api/v2/
Note: Update Brief and the API currently support WordPress Core and plugin updates. Theme updates are not supported at this time.
Plugins
To request a brief update summary for a WordPress or Premium plugin update, use:
https://updatebrief.com/api/v2/{language}/plugins/{slug}/{startVersion}/{endVersion}
| Parameter | Description |
|---|---|
| {language} | The language you would like to use for the summary. (Options are 'en' for English, 'es' for Spanish, 'fr' for French, 'de' for German, 'it' for Italian or 'nl' for Dutch) |
| {slug} | The slug (directory name) of the plugin. For plugins on WordPress.org, this is the last segment of the plugin's URL, e.g. wordpress.org/plugins/akismet/ |
| {startVersion} | The version number you have upgraded from |
| {endVersion} | The version number you have upgraded to |
Examples:
# Akismet Anti Spam, in English, from version 5.6 to 5.7 https://updatebrief.com/api/v2/en/plugins/akismet/5.6/5.7 # Yoast SEO, in German, from version 27.4 to 27.5 https://updatebrief.com/api/v2/de/plugins/wordpress-seo/27.4/27.5
WordPress Core
To request a brief update summary for a WordPress Core update, use:
https://updatebrief.com/api/v2/{language}/core/{startVersion}/{endVersion}
| Parameter | Description |
|---|---|
| {language} | The language you would like to use for the summary. (Options are 'en' for English, 'es' for Spanish, 'fr' for French, 'de' for German, 'it' for Italian or 'nl' for Dutch) |
| {startVersion} | The WordPress version you have upgraded from |
| {endVersion} | The WordPress version you have upgraded to |
Examples:
# WordPress Core, in English, from version 6.8.3 to 6.9 https://updatebrief.com/api/v2/en/core/6.8.3/6.9 # WordPress Core, in Spanish, from version 6.9.2 to 6.9.4 https://updatebrief.com/api/v2/es/core/6.9.2/6.9.4
Responses
All responses from the Update Brief API are returned as JSON. The API uses standard HTTP response codes to indicate success or failure.
Plugins
A successful plugin request returns a 200 status code with the language, plugin slug, version range, and summary:
{
"status": 200,
"language": "en",
"plugin_slug": "seo-by-rank-math",
"start_version": "1.0.268",
"end_version": "1.0.269",
"summary": "This update introduces a new feature-based usage system for Content AI, replacing the old AI credits system and offering higher monthly limits per feature. Several bugs have also been fixed, including an issue where deleting a backup incorrectly changed other backup names, JavaScript warnings in the browser console, and the visibility of the redirect option to unauthorized users."
}
If no summary is available for the requested version range, the API will return a 200 status code, but with a summary value of null:
{
"status": 200,
"language": "en",
"plugin_slug": "seo-by-rank-math",
"start_version": "1.0.268",
"end_version": "99.9.99",
"summary": null
}
WordPress Core
A successful WordPress Core request returns a 200 status code with the language, update type, version range, and summary:
{
"status": 200,
"language": "en",
"update": "WP Core",
"start_version": "6.8.3",
"end_version": "6.9",
"summary": "This update introduces WordPress 6.9, focusing on team collaboration, performance, and future automation. The new Notes feature enables block-level commenting for streamlined reviews, while the Command Palette offers faster dashboard navigation. A key addition is the Abilities API, providing a standardized permissions system for potential AI integration. Performance is enhanced through optimized page loading, and accessibility is improved with over 30 fixes."
}
As with plugins, if no summary is available the response will contain "summary": null:
{
"status": 200,
"language": "en",
"update": "WP Core",
"start_version": "6.8",
"end_version": "99.9",
"summary": null
}
Response Field Reference
| Field | Type | Description |
|---|---|---|
| status | integer | The HTTP status code as a number |
| language | string | The summary language code as a string |
| plugin_slug | string | The plugin slug (plugin responses only) |
| update | string | The update type, e.g. "WP Core" (core responses only) |
| start_version | string | The version upgraded from |
| end_version | string | The version upgraded to |
| summary | string | The update summary, or null if unavailable. Plain text, HTML-entity-encoded — render directly in the DOM without additional escaping. May contain standard punctuation including double quotes. Parse with a standard JSON library — do not manually parse this field. |
Error Handling
Error responses are returned as JSON with a status code and a message describing the problem:
{
"status": 401,
"message": "Unauthorized - Please check your API authorization credentials"
}
The table below lists all error codes returned by the API, along with troubleshooting guidance.
| Code | Message | Troubleshooting |
|---|---|---|
| 401 | Unauthorized - Please check your API authorization credentials |
Check that your API Token is included in the Authorization header as a Bearer token: Authorization: Bearer YourApiToken |
| 403 | Forbidden - Please check your current subscription is active | Your Update Brief subscription may have expired or there may be an issue with your payment card. Check your subscription status in the Update Brief dashboard. |
| 403 | Forbidden - Exceeded number of plugins allowed in your subscription plan | Your plan allows a set number of unique plugins per month. Requesting the same plugin multiple times counts as one unique plugin, but each different plugin counts separately. Upgrade your plan to increase this limit. |
| 404 | Not Found - Please check the format of your request |
Check the request URL matches the correct format: Plugins: ..{language}/plugins/{slug}/{start}/{end} Core: ..{language}/core/{start}/{end} See the Requests section for full details. |
| 404 | Not Found - Please check your plugin slug is valid | The plugin slug must correspond to a valid WordPress plugin. For premium plugins, check that the plugin is listed on the available premium plugins page. |
| 405 | Method Not Allowed - Only the GET method is allowed | The API only accepts GET requests. POST, PUT, DELETE, and other HTTP methods are not supported. |
| 429 | Too Many Requests - Monthly rate limit exceeded, please upgrade your subscription | You have exceeded the monthly API request limit for your plan. Upgrade your subscription to increase this limit. |
| 429 | Too Many Requests - Per minute rate limit exceeded, slow down your requests | You are sending requests too quickly. Wait briefly and retry. See the Rate Limiting section for per-minute limits by plan. |
| 500 | Internal Server Error - Please try again later | An unexpected error occurred on the server. Please retry your request after a short wait. If the problem persists, then please contact us for assistance. |
Rate Limiting
To ensure fair and efficient use of the API, rate limits are applied for all users. The per-minute limits are as follows:
| Plan | Requests per Minute |
|---|---|
| Developer | 240 |
| Agency | 240 |
| Business | 240 |
| Managed | 240 |
Rate Limit Headers
Every API response includes headers so you can monitor your usage programmatically:
| Header | Description |
|---|---|
| X-RateLimit-Limit-Month | Maximum requests allowed per month |
| X-RateLimit-Remaining-Month | Requests remaining this month |
| X-RateLimit-Reset-Month | Time until the monthly limit resets |
| X-RateLimit-Limit-Minute | Maximum requests allowed per minute |
| X-RateLimit-Remaining-Minute | Requests remaining this minute |
| X-RateLimit-Reset-Minute | Time until the per-minute limit resets |
If you have any questions about using the Update Brief API, or need help, then please contact us. We are happy to help!