Leapcure posts API
The posts API from Leapcure — 6 operation(s) for posts.
The posts API from Leapcure — 6 operation(s) for posts.
openapi: 3.1.0
info:
title: Leapcure Blog Content API (WordPress REST API) categories posts API
version: wp/v2
description: Public content API for the Leapcure blog (blog.leapcure.com), served by the WordPress REST API `wp/v2` namespace. Read operations on posts, pages, categories, tags, users, media, comments, search, taxonomies, types and statuses were verified to respond anonymously on 2026-07-19; write operations require authentication via WordPress application passwords. This document was derived by the API Evangelist enrichment pipeline from the route metadata the server itself publishes at https://blog.leapcure.com/wp-json/wp/v2 — no operations, parameters or schemas were invented.
contact:
name: Leapcure
email: info@leapcure.com
url: https://leapcure.com/
servers:
- url: https://blog.leapcure.com/wp-json
description: Leapcure blog WordPress REST API
security: []
tags:
- name: posts
paths:
/wp/v2/posts:
get:
operationId: listWpV2Posts
summary: GET /wp/v2/posts
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: page
in: query
required: false
description: Current page of the collection.
schema:
type: integer
default: 1
- name: per_page
in: query
required: false
description: Maximum number of items to be returned in result set.
schema:
type: integer
default: 10
- name: search
in: query
required: false
description: Limit results to those matching a string.
schema:
type: string
- name: after
in: query
required: false
description: Limit response to posts published after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: modified_after
in: query
required: false
description: Limit response to posts modified after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: author
in: query
required: false
description: Limit result set to posts assigned to specific authors.
schema:
type: array
default: []
items:
type: integer
- name: author_exclude
in: query
required: false
description: Ensure result set excludes posts assigned to specific authors.
schema:
type: array
default: []
items:
type: integer
- name: before
in: query
required: false
description: Limit response to posts published before a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: modified_before
in: query
required: false
description: Limit response to posts modified before a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: exclude
in: query
required: false
description: Ensure result set excludes specific IDs.
schema:
type: array
default: []
items:
type: integer
- name: include
in: query
required: false
description: Limit result set to specific IDs.
schema:
type: array
default: []
items:
type: integer
- name: search_semantics
in: query
required: false
description: How to interpret the search input.
schema:
type: string
enum:
- exact
- name: offset
in: query
required: false
description: Offset the result set by a specific number of items.
schema:
type: integer
- name: order
in: query
required: false
description: Order sort attribute ascending or descending.
schema:
type: string
enum:
- asc
- desc
default: desc
- name: orderby
in: query
required: false
description: Sort collection by post attribute.
schema:
type: string
enum:
- author
- date
- id
- include
- modified
- parent
- relevance
- slug
- include_slugs
- title
default: date
- name: search_columns
in: query
required: false
description: Array of column names to be searched.
schema:
type: array
default: []
items:
type: string
enum:
- post_title
- post_content
- post_excerpt
- name: slug
in: query
required: false
description: Limit result set to posts with one or more specific slugs.
schema:
type: array
items:
type: string
- name: status
in: query
required: false
description: Limit result set to posts assigned one or more statuses.
schema:
type: array
default: publish
items:
type: string
enum:
- publish
- future
- draft
- pending
- private
- trash
- auto-draft
- inherit
- request-pending
- request-confirmed
- request-failed
- request-completed
- spam
- jp-temp-feedback
- email_sent
- email_failed
- email_scheduled
- any
- name: tax_relation
in: query
required: false
description: Limit result set based on relationship between multiple taxonomies.
schema:
type: string
enum:
- AND
- OR
- name: categories
in: query
required: false
description: Limit result set to items with specific terms assigned in the categories taxonomy.
schema:
type: object
- name: categories_exclude
in: query
required: false
description: Limit result set to items except those with specific terms assigned in the categories taxonomy.
schema:
type: object
- name: tags
in: query
required: false
description: Limit result set to items with specific terms assigned in the tags taxonomy.
schema:
type: object
- name: tags_exclude
in: query
required: false
description: Limit result set to items except those with specific terms assigned in the tags taxonomy.
schema:
type: object
- name: sticky
in: query
required: false
description: Limit result set to items that are sticky.
schema:
type: boolean
- name: ignore_sticky
in: query
required: false
description: Whether to ignore sticky posts or not.
schema:
type: boolean
default: true
- name: format
in: query
required: false
description: Limit result set to items assigned one or more given formats.
schema:
type: array
items:
type: string
enum:
- standard
- aside
- chat
- gallery
- link
- image
- quote
- status
- video
- audio
post:
operationId: createWpV2Posts
summary: POST /wp/v2/posts
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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'
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
format:
type: string
enum:
- standard
- aside
- chat
- gallery
- link
- image
- quote
- status
- video
- audio
description: The format for the post.
meta:
type: object
description: Meta fields.
sticky:
type: boolean
description: Whether or not the post should be treated as sticky.
template:
type: string
description: The theme file to use to display the post.
categories:
type: array
items:
type: integer
description: The terms assigned to the post in the category taxonomy.
tags:
type: array
items:
type: integer
description: The terms assigned to the post in the post_tag taxonomy.
jetpack_publicize_connections:
type: array
default: []
items:
type: object
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
security:
- applicationPassword: []
/wp/v2/posts/{id}:
get:
operationId: getWpV2PostsById
summary: GET /wp/v2/posts/{id}
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
- name: context
in: query
required: false
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: excerpt_length
in: query
required: false
description: Override the default excerpt length.
schema:
type: integer
- name: password
in: query
required: false
description: The password for the post if it is password protected.
schema:
type: string
post:
operationId: createWpV2PostsById
summary: POST /wp/v2/posts/{id}
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
format:
type: string
enum:
- standard
- aside
- chat
- gallery
- link
- image
- quote
- status
- video
- audio
description: The format for the post.
meta:
type: object
description: Meta fields.
sticky:
type: boolean
description: Whether or not the post should be treated as sticky.
template:
type: string
description: The theme file to use to display the post.
categories:
type: array
items:
type: integer
description: The terms assigned to the post in the category taxonomy.
tags:
type: array
items:
type: integer
description: The terms assigned to the post in the post_tag taxonomy.
jetpack_publicize_connections:
type: array
items:
type: object
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
security:
- applicationPassword: []
put:
operationId: replaceWpV2PostsById
summary: PUT /wp/v2/posts/{id}
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
format:
type: string
enum:
- standard
- aside
- chat
- gallery
- link
- image
- quote
- status
- video
- audio
description: The format for the post.
meta:
type: object
description: Meta fields.
sticky:
type: boolean
description: Whether or not the post should be treated as sticky.
template:
type: string
description: The theme file to use to display the post.
categories:
type: array
items:
type: integer
description: The terms assigned to the post in the category taxonomy.
tags:
type: array
items:
type: integer
description: The terms assigned to the post in the post_tag taxonomy.
jetpack_publicize_connections:
type: array
items:
type: object
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
security:
- applicationPassword: []
patch:
operationId: updateWpV2PostsById
summary: PATCH /wp/v2/posts/{id}
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
date:
type: string
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- spam
- auto-draft
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
title:
type: object
description: The title for the post.
content:
type: object
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
format:
type: string
enum:
- standard
- aside
- chat
- gallery
- link
- image
- quote
- status
- video
- audio
description: The format for the post.
meta:
type: object
description: Meta fields.
sticky:
type: boolean
description: Whether or not the post should be treated as sticky.
template:
type: string
description: The theme file to use to display the post.
categories:
type: array
items:
type: integer
description: The terms assigned to the post in the category taxonomy.
tags:
type: array
items:
type: integer
description: The terms assigned to the post in the post_tag taxonomy.
jetpack_publicize_connections:
type: array
items:
type: object
jetpack_likes_enabled:
type: boolean
description: Are Likes enabled?
jetpack_sharing_enabled:
type: boolean
description: Are sharing buttons enabled?
security:
- applicationPassword: []
delete:
operationId: deleteWpV2PostsById
summary: DELETE /wp/v2/posts/{id}
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
- name: force
in: query
required: false
description: Whether to bypass Trash and force deletion.
schema:
type: boolean
default: false
security:
- applicationPassword: []
/wp/v2/posts/{id}/autosaves:
get:
operationId: getWpV2PostsByIdAutosaves
summary: GET /wp/v2/posts/{id}/autosaves
tags:
- posts
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication 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
- name: parent
in: query
required: false
description: The ID for the parent of the autosave.
schema:
type: integer
- name: context
in: query
required: false
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
# --- truncated at 32 KB (45 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/leapcure/refs/heads/main/openapi/leapcure-posts-api-openapi.yml