Automattic Users API
The users API from Automattic — 27 operation(s) for users.
The users API from Automattic — 27 operation(s) for users.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/automattic-users-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Automattic Users API
x-derived-by: API Evangelist enrichment pipeline
x-refined-note:
- x-derived-from differs across the merged source definitions and was not carried
version: '1.0'
description: 'Operations tagged users across 5 of this provider''s published API definitions: automattic-wordpress-com-rest-v1-1-openapi.yml, automattic-wordpress-com-rest-v1-2-openapi.yml, automattic-wordpress-com-rest-v1-3-openapi.yml, automattic-wordpress-com-wp-v2-openapi.yml, automattic-wordpress-com-wpcom-v2-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://public-api.wordpress.com/rest/v1.1
- url: https://public-api.wordpress.com/rest/v1.2
- url: https://public-api.wordpress.com/rest/v1.3
- url: https://public-api.wordpress.com
security:
- bearerAuth: []
tags:
- name: users
paths:
/me:
get:
operationId: getMe
summary: Get metadata about the current user.
description: Get metadata about the current user.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ID:
type: integer
description: Numeric user ID
display_name:
type: string
description: The name to display for a user
username:
type: string
description: Login name of a user
email:
type: string
description: Email address
primary_blog:
type: integer
description: ID of a user's primary blog
primary_blog_url:
type: string
description: URL to primary blog
primary_blog_is_jetpack:
type: boolean
description: Is the primary blog a jetpack site
has_jetpack_partner_access:
type: boolean
description: True if the user can access the Jetpack Partner API
jetpack_partner_types:
type: array
items: {}
description: The partner types of the partner accounts this user has access to.
language:
type: string
description: User language setting
locale_variant:
type: string
description: User locale variant, if any
token_site_id:
type: integer
description: ID of the user's site that the current token provides access to
token_scope:
type: array
items: {}
description: Scopes that the current access token provides access to
token_client_id:
type: integer
description: Client ID of the application that the current access token was issued to
avatar_URL:
type: string
format: uri
description: Gravatar image URL
profile_URL:
type: string
format: uri
description: Gravatar Profile URL
verified:
type: boolean
description: Has the account been verified (via WordPress.com Connect)?
email_verified:
type: boolean
description: Has the account been verified (via email)?
date:
type: string
format: date-time
description: Datetime the user joined WordPress.com
site_count:
type: integer
description: Number of sites where the user is a member
jetpack_site_count:
type: integer
description: Number of Jetpack sites where the user is a member
atomic_site_count:
type: integer
description: Number of atomic sites where the user is a member
garden_site_count:
type: integer
description: Number of garden sites where the user is a member
visible_site_count:
type: integer
description: Number of sites where the user is a member, set to visible in user settings
jetpack_visible_site_count:
type: integer
description: Number of Jetpack sites where the user is a member, set to visible in user settings
atomic_visible_site_count:
type: integer
description: Number of atomic sites where the user is a member, set to visible in user settings
garden_visible_site_count:
type: integer
description: Number of garden sites where the user is a member, set to visible in user settings
has_unseen_notes:
type: boolean
description: Does the account have unseen notifications
newest_note_type:
type: string
description: notification type slug for newest unseen notification or blank if no unseen notes
phone_account:
type: boolean
description: If this is a phone account then the user doenst have a verified email address
meta:
type: object
description: Metadata
is_valid_google_apps_country:
type: boolean
description: Is the user somewhere where Google Workspace can be purchased?
user_ip_country_code:
type: string
description: Country code for the user’s IP address
logout_URL:
type: string
format: uri
description: URL to sign user out of WordPress.com
is_new_reader:
type: boolean
description: Is the user new to the Reader?
social_login_connections:
type: array
items: {}
description: Array of active social login connections
social_signup_service:
type: string
description: The name of the social service this account is linked to
abtests:
type: object
description: User's assigned A/B test variations, where the key is the test name and the value is the variation
lasagna_jwt:
type: string
description: Lasagna service JWT
i18n_empathy_mode:
type: boolean
description: Has the user enabled I18n empathy mode?
use_fallback_for_incomplete_languages:
type: boolean
description: Should UI be displayed in default locale for languages with incomplete translations
had_hosting_trial:
type: boolean
description: Has the user had a hosting trial
is_subscription_only:
type: boolean
description: Is the user a subscription only user
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
- name: abtests
in: query
required: false
schema:
type: string
description: Comma separated names of A/B tests the user may have an assigned variation for
servers:
- url: https://public-api.wordpress.com/rest/v1.1
/me/billing-history:
get:
operationId: getMeBillingHistory
summary: Get list of current user's billing history and upcoming charges.
description: Get list of current user's billing history and upcoming charges.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
billing_history:
type: array
items: {}
description: Limited list of current user's previous purchases.
billing_history_total:
type: integer
description: Number of current user's previous purchases.
upcoming_charges:
type: array
items: {}
description: List of current user's upcoming charges.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
servers:
- url: https://public-api.wordpress.com/rest/v1.1
/me/connected-applications/:
get:
operationId: getMeConnectedApplications
summary: Get current user's connected applications.
description: Get current user's connected applications.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
connected_applications:
type: array
items: {}
description: A list of current user's connected applications.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
servers:
- url: https://public-api.wordpress.com/rest/v1.1
/me/connected-applications/{ID}:
get:
operationId: getMeConnectedApplicationsById
summary: Get one of current user's connected applications.
description: Get one of current user's connected applications.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
connection_ID:
type: integer
description: The ID of the connection.
title:
type: string
description: The name of the application.
icon:
type: string
format: uri
description: The URL the application's icon.
URL:
type: string
format: uri
description: The URL of the application.
description:
type: string
description: The description provided by the application's creator.
permissions:
type: array
items: {}
description: An array of permissions that the application has.
authorized:
type: string
description: The date when the application was authorized.
blog:
type: string
description: An array of information about a blog the application has access to.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: ID
in: path
required: true
schema:
type: integer
description: The ID of the connected application's connection.
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
servers:
- url: https://public-api.wordpress.com/rest/v1.1
/me/connected-applications/{ID}/delete:
post:
operationId: postMeConnectedApplicationsByIdDelete
summary: Delete one of current user's connected application access tokens.
description: Delete one of current user's connected application access tokens.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
success:
type: boolean
description: Was the application access token successfully deleted?
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: ID
in: path
required: true
schema:
type: integer
description: The ID of the connected application's connection.
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
servers:
- url: https://public-api.wordpress.com/rest/v1.1
/me/likes/:
get:
operationId: getMeLikes
summary: Get a list of the current user's likes.
description: Get a list of the current user's likes.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
found:
type: integer
description: The total number of likes for this token.
likes:
type: array
items: {}
description: An array of likes for this token.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
- name: number
in: query
required: false
schema:
type: integer
description: 'The number of likes to return. Limit: 100. Default: 20.'
- name: offset
in: query
required: false
schema:
type: integer
description: The index to start counting from.
- name: page
in: query
required: false
schema:
type: integer
description: 'Return the Nth 1-indexed page of likes. Takes precedence over the offset parameter. Limit: 10.'
- name: order
in: query
required: false
schema:
type: string
enum:
- DESC
- ASC
description: 'DESC: (default) (default) Return likes newest to oldest.; ASC: Return likes oldest to newest.'
- name: after
in: query
required: false
schema:
type: string
format: date-time
description: Return likes dated on or after the specified datetime.
- name: before
in: query
required: false
schema:
type: string
format: date-time
description: Return likes dated on or before the specified datetime.
servers:
- url: https://public-api.wordpress.com/rest/v1.1
/me/preferences/:
get:
operationId: getMePreferences
summary: Get the current user's settings.
description: Get the current user's settings.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
calypso_preferences:
type: object
description: Get the preferences associated with a user's WordPress.com Calypso experience.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTTP status code to always be 200. The JSON response is wrapped in an "envelope" containing the "real" HTTP status code and headers.'
- name: pretty
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Output pretty JSON'
- name: meta
in: query
required: false
schema:
type: string
description: 'Optional. Loads data from the endpoints found in the ''meta'' part of the response. Comma-separated list. Example: meta=site,likes'
- name: fields
in: query
required: false
schema:
type: string
description: 'Optional. Returns specified fields only. Comma-separated list. Example: fields=ID,title'
- name: callback
in: query
required: false
schema:
type: string
description: An optional JSONP callback function.
post:
operationId: postMePreferences
summary: Update the current user's preferences.
description: Update the current user's preferences.
tags:
- users
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
calypso_preferences:
type: object
description: Get the preferences associated with a user's WordPress.com Calypso experience.
'400':
description: Bad request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authorization required
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
parameters:
- name: context
in: query
required: false
schema:
type: string
enum:
- display
- edit
description: 'display: (default) Formats the output as HTML for display. Shortcodes are parsed, paragraph tags are added, etc..; edit: Formats the output for editing. Shortcodes are left unparsed, significant whitespace is kept, etc..'
- name: http_envelope
in: query
required: false
schema:
type: boolean
description: 'false: (default); true: Some environments (like in-browser JavaScript or Flash) block or divert responses with a non-200 HTTP status code. Setting this parameter will force the HTT
# --- truncated at 32 KB (163 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/automattic/refs/heads/main/openapi/automattic-users-api-openapi.yml