Automattic Sharing API
The sharing API from Automattic — 15 operation(s) for sharing.
The sharing API from Automattic — 15 operation(s) for sharing.
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-sharing-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: WordPress.com REST API v1.1 Sharing API
version: v1.1
description: 'The WordPress.com REST API, operated by Automattic. Derived by API Evangelist from Automattic''s own self-describing help document at https://public-api.wordpress.com/rest/v1.1/help (Accept: application/json), which publishes every endpoint''s method, path, description, path/query/body parameters and response fields. Security schemes come from https://public-api.wordpress.com/.well-known/openid-configuration. The error envelope was observed live.'
termsOfService: https://wordpress.com/tos/
contact:
name: WordPress.com Developer Resources
url: https://developer.wordpress.com/docs/api/
x-derived-from: https://public-api.wordpress.com/rest/v1.1/help
x-derived-by: API Evangelist enrichment pipeline
servers:
- url: https://public-api.wordpress.com/rest/v1.1
security:
- bearerAuth: []
tags:
- name: sharing
paths:
/me/keyring-connections/:
get:
operationId: getMeKeyringConnections
summary: Get a list of all the keyring connections associated with the current user.
description: Get a list of all the keyring connections associated with the current user.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
connections:
type: array
items: {}
description: List of Keyring connection. See /me/keyring-connection/%d for individual connection descriptions.
'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.
- name: site
in: query
required: false
schema:
type: string
description: Optional. Only return connections for the given site.
- name: force_external_users_refetch
in: query
required: false
schema:
type: boolean
description: True to force refetch external users, default false
- name: force_connection_test
in: query
required: false
schema:
type: boolean
description: True to force testing the connection and not use the cache, default false
/me/keyring-connections/{keyring_connection_ID}:
get:
operationId: getMeKeyringConnectionsByKeyringConnectionId
summary: Get a single Keyring connection that the current user has setup.
description: Get a single Keyring connection that the current user has setup.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ID:
type: integer
description: The ID of the Keyring connection.
user_ID:
type: integer
description: The user ID that the Keyring connection belongs to.
type:
type: string
description: The type of service that this connection belongs to (publicize or other).
service:
type: string
description: The name of the service associated with this Keyring connection.
label:
type: string
description: The display friendly name of the service associated with this Keyring connection.
issued:
type: string
format: date-time
description: Date when the Keyring connection was first established.
expires:
type: string
format: date-time
description: Date when the Keyring connection expires, if any.
external_ID:
type: string
description: An identifier for the user on the third-party service.
external_name:
type: string
description: A display friendly identifier for the user on the third-party service, usually a username or login name.
external_display:
type: string
description: A display friendly identifier for the user on the third-party service, typically defined by the user and the one that the user has chosen as their preferred identifier.
external_profile_picture:
type: string
description: The URL to the user's profile picture on the third-party service.
additional_external_users:
type: array
items: {}
description: Array of additional external user objects (external_ID, external_name, external_display, external_profile_picture, external_category, external_meta) available for this Keyring connection (e.g. for Facebook pages)
status:
type: string
description: The current status of the connection to the third-party service. "ok" for connections with no problems, and "broken" for connections that need to be fixed fixed.
refresh_url:
type: string
format: uri
description: The URL to refresh the Keyring token.
sites:
type: array
items: {}
description: An array of site IDs currently using this Keyring connection.
meta:
type: object
description: Object with links to the publicize connection, help links and related items.
'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: keyring_connection_ID
in: path
required: true
schema:
type: integer
description: The connection ID to take action on.
- 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.
/me/keyring-connections/{keyring_connection_ID}/delete:
post:
operationId: postMeKeyringConnectionsByKeyringConnectionIdDelete
summary: Delete the Keyring connection (and associated token) with the provided ID. Also deletes all associated publicize connect
description: Delete the Keyring connection (and associated token) with the provided ID. Also deletes all associated publicize connections.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ID:
type: integer
description: The ID of the Keyring connection.
deleted:
type: boolean
description: True if 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: keyring_connection_ID
in: path
required: true
schema:
type: integer
description: The connection ID to take action on.
- 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.
/me/publicize-connections/:
get:
operationId: getMePublicizeConnections
summary: Get a list of publicize connections that the current user has set up.
description: Get a list of publicize connections that the current user has set up.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
connections:
type: array
items: {}
description: List of publicize connections. See /me/publicize-connections/%d for individual connection descriptions.
'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.
- name: service
in: query
required: false
schema:
type: string
description: Optional. Only return connections for the given services.
- name: keyring_connection_ID
in: query
required: false
schema:
type: integer
description: Optional. Only return connections for the given keyring connection ID.
- name: site
in: query
required: false
schema:
type: string
description: Optional. Only return connections for the given site that the user can publicize to. Includes global connections owned by other users on the site.
/me/publicize-connections/{publicize_connection_ID}:
get:
operationId: getMePublicizeConnectionsByPublicizeConnectionId
summary: Get a single publicize connection that the current user has set up.
description: Get a single publicize connection that the current user has set up.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ID:
type: integer
description: The ID of the publicize connection.
site_ID:
type: integer
description: The site ID that the publicize connection belongs to.
user_ID:
type: integer
description: The user ID that the publicize connection belongs to.
keyring_connection_ID:
type: integer
description: The ID of the associated keyring connection.
keyring_connection_user_ID:
type: integer
description: The ID of the user who owns the associated keyring connection.
shared:
type: boolean
description: Is this connection shared?
service:
type: string
description: The name of the service associated with this publicize connection.
label:
type: string
description: The display friendly name of the service associated with this publicize connection.
issued:
type: string
format: date-time
description: Date when the publicize connection was first established.
expires:
type: string
format: date-time
description: Date when the publicize connection expires, if any.
external_ID:
type: string
description: An identifier for the user on the third-party service.
external_name:
type: string
description: A display friendly identifier for the user on the third-party service, usually a username or login name.
external_display:
type: string
description: A display friendly identifier for the user on the third-party service, typically defined by the user and the one that the user has chosen as their preferred identifier.
external_profile_picture:
type: string
description: The URL to the profile picture associated with the third-party account, if the service provides one.
external_profile_URL:
type: string
description: The URL to the external profile on the third-party website, if the service provides one.
external_follower_count:
type: string
description: The number of followers that the user has on the third-party service, if the service returns a number.
URL:
type: string
description: URL to the user's profile on the third-party service. NULL if there is no URL to link to.
status:
type: string
description: The current status of the connection to the third-party service. "ok" for connections with no problems, and "broken" for connections that need to be fixed fixed.
refresh_URL:
type: string
format: uri
description: The URL to refresh the keyring token.
meta:
type: object
description: Object with links to the publicize connection, help links and related items.
'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: publicize_connection_ID
in: path
required: true
schema:
type: integer
description: The publicize connection ID to fetch.
- 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: postMePublicizeConnectionsByPublicizeConnectionId
summary: Update a single publicize connection belonging to the current user.
description: Update a single publicize connection belonging to the current user.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ID:
type: integer
description: The ID of the publicize connection.
site_ID:
type: integer
description: The site ID that the publicize connection belongs to.
user_ID:
type: integer
description: The user ID that the publicize connection belongs to.
keyring_connection_ID:
type: integer
description: The ID of the associated keyring connection.
keyring_connection_user_ID:
type: integer
description: The ID of the user who owns the associated keyring connection.
shared:
type: boolean
description: Is this connection shared?
service:
type: string
description: The name of the service associated with this publicize connection.
label:
type: string
description: The display friendly name of the service associated with this publicize connection.
issued:
type: string
format: date-time
description: Date when the publicize connection was first established.
expires:
type: string
format: date-time
description: Date when the publicize connection expires, if any.
external_ID:
type: string
description: An identifier for the user on the third-party service.
external_name:
type: string
description: A display friendly identifier for the user on the third-party service, usually a username or login name.
external_display:
type: string
description: A display friendly identifier for the user on the third-party service, typically defined by the user and the one that the user has chosen as their preferred identifier.
external_profile_picture:
type: string
description: The URL to the profile picture associated with the third-party account, if the service provides one.
external_profile_URL:
type: string
description: The URL to the external profile on the third-party website, if the service provides one.
external_follower_count:
type: string
description: The number of followers that the user has on the third-party service, if the service returns a number.
URL:
type: string
description: URL to the user's profile on the third-party service. NULL if there is no URL to link to.
status:
type: string
description: The current status of the connection to the third-party service. "ok" for connections with no problems, and "broken" for connections that need to be fixed fixed.
refresh_URL:
type: string
format: uri
description: The URL to refresh the keyring token.
meta:
type: object
description: Object with links to the publicize connection, help links and related items.
'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: publicize_connection_ID
in: path
required: true
schema:
type: integer
description: The publicize connection ID to take action on.
- 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.
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
shared:
type: boolean
description: Optional. True to make the connection global for all users of the site. False to ungloblalize it.
external_user_ID:
type: string
description: Optional. Use to associate a non-default external user (from the keyring connection) with this publicize connection. e.g. associate a Facebook page. False to reset to default.
/me/publicize-connections/{publicize_connection_ID}/delete:
post:
operationId: postMePublicizeConnectionsByPublicizeConnectionIdDelete
summary: Delete the specified publicize connection.
description: Delete the specified publicize connection.
tags:
- sharing
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
ID:
type: integer
description: The ID of the publicize connection.
deleted:
type: boolean
description: True if 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':
# --- truncated at 32 KB (81 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/automattic/refs/heads/main/openapi/automattic-sharing-api-openapi.yml