Perfect Day comments API
The WordPress REST `comments` resource on perfectday.com.
The WordPress REST `comments` resource on perfectday.com.
openapi: 3.1.0
info:
title: Perfect Day Content API (comments)
version: wp/v2
description: Public content API for perfectday.com, served by the WordPress REST API `wp/v2` namespace. Perfect Day is a
precision-fermentation food-ingredient company and publishes no product/developer API; this is the one machine-readable
surface it operates. Read operations on this resource were verified to respond anonymously (HTTP 200) on 2026-08-02; write
operations require authentication (WordPress application passwords). This document was DERIVED by the API Evangelist enrichment
pipeline from the route metadata the server itself publishes at https://perfectday.com/wp-json/wp/v2 — no operations,
parameters, enums or defaults were invented.
contact:
name: Perfect Day
url: https://perfectday.com/contact-us/
x-apievangelist-method: derived
x-apievangelist-source: https://perfectday.com/wp-json/wp/v2
x-apievangelist-generated: '2026-08-02'
servers:
- url: https://perfectday.com/wp-json
description: Perfect Day WordPress REST API
tags:
- name: comments
description: WordPress REST `comments` resource on perfectday.com.
security: []
paths:
/wp/v2/comments:
get:
operationId: getComments
summary: GET /wp/v2/comments
description: GET https://perfectday.com/wp-json/wp/v2/comments — derived from the route metadata WordPress publishes
for this site at https://perfectday.com/wp-json/wp/v2.
tags:
- comments
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
minimum: 1
- name: per_page
in: query
required: false
description: Maximum number of items to be returned in result set.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
- 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 comments published after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: author
in: query
required: false
description: Limit result set to comments assigned to specific user IDs. Requires authorization.
schema:
type: array
items:
type: integer
- name: author_exclude
in: query
required: false
description: Ensure result set excludes comments assigned to specific user IDs. Requires authorization.
schema:
type: array
items:
type: integer
- name: author_email
in: query
required: false
description: Limit result set to that from a specific author email. Requires authorization.
schema:
type: string
format: email
- name: before
in: query
required: false
description: Limit response to comments published 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: 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 comment attribute.
schema:
type: string
enum:
- date
- date_gmt
- id
- include
- post
- parent
- type
default: date_gmt
- name: parent
in: query
required: false
description: Limit result set to comments of specific parent IDs.
schema:
type: array
default: []
items:
type: integer
- name: parent_exclude
in: query
required: false
description: Ensure result set excludes specific parent IDs.
schema:
type: array
default: []
items:
type: integer
- name: post
in: query
required: false
description: Limit result set to comments assigned to specific post IDs.
schema:
type: array
default: []
items:
type: integer
- name: status
in: query
required: false
description: Limit result set to comments assigned a specific status. Requires authorization.
schema:
type: string
default: approve
- name: type
in: query
required: false
description: Limit result set to comments assigned a specific type. Requires authorization.
schema:
type: string
default: comment
- name: password
in: query
required: false
description: The password for the post if it is password protected.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: array
items:
type: object
'400':
description: Invalid request — a parameter failed validation (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication required or insufficient capability (rest_forbidden).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden — the authenticated user lacks the required capability.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found — no route matched, or the item does not exist (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: createComments
summary: POST /wp/v2/comments
description: POST https://perfectday.com/wp-json/wp/v2/comments — derived from the route metadata WordPress publishes
for this site at https://perfectday.com/wp-json/wp/v2.
tags:
- comments
parameters: []
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: array
items:
type: object
'400':
description: Invalid request — a parameter failed validation (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication required or insufficient capability (rest_forbidden).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden — the authenticated user lacks the required capability.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found — no route matched, or the item does not exist (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
author:
type: integer
description: The ID of the user object, if author was a user.
author_email:
type: string
format: email
description: Email address for the comment author.
author_ip:
type: string
format: ip
description: IP address for the comment author.
author_name:
type: string
description: Display name for the comment author.
author_url:
type: string
format: uri
description: URL for the comment author.
author_user_agent:
type: string
description: User agent for the comment author.
content:
type: object
description: The content for the comment.
date:
type: string
format: date-time
description: The date the comment was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the comment was published, as GMT.
parent:
type: integer
default: 0
description: The ID for the parent of the comment.
post:
type: integer
default: 0
description: The ID of the associated post object.
status:
type: string
description: State of the comment.
meta:
type: object
description: Meta fields.
security:
- applicationPassword: []
x-requires-authentication: true
/wp/v2/comments/{id}:
get:
operationId: getCommentsId
summary: GET /wp/v2/comments/{id}
description: GET https://perfectday.com/wp-json/wp/v2/comments/{id} — derived from the route metadata WordPress publishes
for this site at https://perfectday.com/wp-json/wp/v2.
tags:
- comments
parameters:
- name: id
in: path
required: true
description: Unique identifier for the comment.
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: password
in: query
required: false
description: The password for the parent post of the comment (if the post is password protected).
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
'400':
description: Invalid request — a parameter failed validation (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication required or insufficient capability (rest_forbidden).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden — the authenticated user lacks the required capability.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found — no route matched, or the item does not exist (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
operationId: createCommentsId
summary: POST /wp/v2/comments/{id}
description: POST https://perfectday.com/wp-json/wp/v2/comments/{id} — derived from the route metadata WordPress publishes
for this site at https://perfectday.com/wp-json/wp/v2.
tags:
- comments
parameters:
- name: id
in: path
required: true
description: Unique identifier for the comment.
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
'400':
description: Invalid request — a parameter failed validation (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication required or insufficient capability (rest_forbidden).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden — the authenticated user lacks the required capability.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found — no route matched, or the item does not exist (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
author:
type: integer
description: The ID of the user object, if author was a user.
author_email:
type: string
format: email
description: Email address for the comment author.
author_ip:
type: string
format: ip
description: IP address for the comment author.
author_name:
type: string
description: Display name for the comment author.
author_url:
type: string
format: uri
description: URL for the comment author.
author_user_agent:
type: string
description: User agent for the comment author.
content:
type: object
description: The content for the comment.
date:
type: string
format: date-time
description: The date the comment was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the comment was published, as GMT.
parent:
type: integer
description: The ID for the parent of the comment.
post:
type: integer
description: The ID of the associated post object.
status:
type: string
description: State of the comment.
meta:
type: object
description: Meta fields.
security:
- applicationPassword: []
x-requires-authentication: true
patch:
operationId: patchCommentsId
summary: PATCH /wp/v2/comments/{id}
description: PATCH https://perfectday.com/wp-json/wp/v2/comments/{id} — derived from the route metadata WordPress publishes
for this site at https://perfectday.com/wp-json/wp/v2.
tags:
- comments
parameters:
- name: id
in: path
required: true
description: Unique identifier for the comment.
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
'400':
description: Invalid request — a parameter failed validation (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication required or insufficient capability (rest_forbidden).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden — the authenticated user lacks the required capability.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found — no route matched, or the item does not exist (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
author:
type: integer
description: The ID of the user object, if author was a user.
author_email:
type: string
format: email
description: Email address for the comment author.
author_ip:
type: string
format: ip
description: IP address for the comment author.
author_name:
type: string
description: Display name for the comment author.
author_url:
type: string
format: uri
description: URL for the comment author.
author_user_agent:
type: string
description: User agent for the comment author.
content:
type: object
description: The content for the comment.
date:
type: string
format: date-time
description: The date the comment was published, in the site's timezone.
date_gmt:
type: string
format: date-time
description: The date the comment was published, as GMT.
parent:
type: integer
description: The ID for the parent of the comment.
post:
type: integer
description: The ID of the associated post object.
status:
type: string
description: State of the comment.
meta:
type: object
description: Meta fields.
security:
- applicationPassword: []
x-requires-authentication: true
delete:
operationId: deleteCommentsId
summary: DELETE /wp/v2/comments/{id}
description: DELETE https://perfectday.com/wp-json/wp/v2/comments/{id} — derived from the route metadata WordPress publishes
for this site at https://perfectday.com/wp-json/wp/v2.
tags:
- comments
parameters:
- name: id
in: path
required: true
description: Unique identifier for the comment.
schema:
type: integer
- name: force
in: query
required: false
description: Whether to bypass Trash and force deletion.
schema:
type: boolean
default: false
- name: password
in: query
required: false
description: The password for the parent post of the comment (if the post is password protected).
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
'400':
description: Invalid request — a parameter failed validation (rest_invalid_param).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Authentication required or insufficient capability (rest_forbidden).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Forbidden — the authenticated user lacks the required capability.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Not found — no route matched, or the item does not exist (rest_no_route / rest_post_invalid_id).
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
security:
- applicationPassword: []
x-requires-authentication: true
components:
securitySchemes:
applicationPassword:
type: http
scheme: basic
description: WordPress application passwords (HTTP Basic). Required for all write operations; anonymous requests to
write routes return HTTP 401 rest_forbidden.
schemas:
Error:
type: object
description: WordPress REST API error envelope (not RFC 9457).
properties:
code:
type: string
description: Machine-readable error code, e.g. rest_forbidden.
message:
type: string
description: Human-readable error message.
data:
type: object
properties:
status:
type: integer
description: Repeated HTTP status code.