openapi: 3.2.0 info: title: Circle Pharma Content API (WordPress REST API) Comments API version: wp/v2 description: Anonymously readable content API for circlepharma.com, derived from the WordPress REST API route index the site publishes at https://circlepharma.com/wp-json/. It exposes Circle Pharma press releases, publications, in-the-news items and pages (posts/pages), the media library, the leadership/board roster (team + member_type), the events calendar (all_events + event_type), and site search. Circle Pharma does not publish a developer program or a hand-authored specification; this document is a faithful derivation of the routes, parameters and defaults the site itself advertises, restricted to the read operations verified to return HTTP 200 without credentials. Write operations exist on the same routes but are authenticated administrative endpoints, not a public API offering, and are deliberately not modelled here. contact: name: Circle Pharma email: info@circlepharma.com url: https://circlepharma.com/contact-us x-derived-from: https://circlepharma.com/wp-json/ x-derived-on: '2026-08-01' x-api-evangelist-note: Derived by the API Evangelist enrichment pipeline from the provider-published WordPress REST route index; not authored or endorsed by Circle Pharma. servers: - url: https://circlepharma.com/wp-json description: Production security: - {} tags: - name: Comments description: Comments on posts paths: /wp/v2/comments: get: operationId: listComments tags: - Comments summary: List Comment records description: Collection is paginated with `page` and `per_page`; the response carries `X-WP-Total` and `X-WP-TotalPages` headers and RFC 8288 `Link` rel="next"/"prev". parameters: - name: after in: query required: false schema: type: string format: date-time description: Limit response to comments published after a given ISO8601 compliant date. - name: author in: query required: false schema: type: array items: type: integer description: Limit result set to comments assigned to specific user IDs. Requires authorization. - name: author_email in: query required: false schema: type: string format: email default: null description: Limit result set to that from a specific author email. Requires authorization. - name: author_exclude in: query required: false schema: type: array items: type: integer description: Ensure result set excludes comments assigned to specific user IDs. Requires authorization. - name: before in: query required: false schema: type: string format: date-time description: Limit response to comments published before a given ISO8601 compliant date. - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Scope under which the request is made; determines fields present in response. - name: exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes specific IDs. - name: include in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to specific IDs. - name: offset in: query required: false schema: type: integer description: Offset the result set by a specific number of items. - name: order in: query required: false schema: type: string enum: - asc - desc default: desc description: Order sort attribute ascending or descending. - name: orderby in: query required: false schema: type: string enum: - date - date_gmt - id - include - post - parent - type default: date_gmt description: Sort collection by comment attribute. - name: page in: query required: false schema: type: integer default: 1 minimum: 1 description: Current page of the collection. - name: parent in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to comments of specific parent IDs. - name: parent_exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes specific parent IDs. - name: password in: query required: false schema: type: string description: The password for the post if it is password protected. - name: per_page in: query required: false schema: type: integer default: 10 minimum: 1 maximum: 100 description: Maximum number of items to be returned in result set. - name: post in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to comments assigned to specific post IDs. - name: search in: query required: false schema: type: string description: Limit results to those matching a string. - name: status in: query required: false schema: type: string default: approve description: Limit result set to comments assigned a specific status. Requires authorization. - name: type in: query required: false schema: type: string default: comment description: Limit result set to comments assigned a specific type. Requires authorization. security: - {} responses: '200': description: A page of Comment records headers: X-WP-Total: description: Total number of records schema: type: integer X-WP-TotalPages: description: Total number of pages schema: type: integer Link: description: RFC 8288 pagination links (rel="next", rel="prev") schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Comment' '400': $ref: '#/components/responses/Error' '404': $ref: '#/components/responses/Error' /wp/v2/comments/{id}: get: operationId: getComment tags: - Comments summary: Get a single Comment record parameters: - name: id in: path required: true schema: type: integer description: Unique identifier for the comment. - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Scope under which the request is made; determines fields present in response. - name: password in: query required: false schema: type: string description: The password for the parent post of the comment (if the post is password protected). security: - {} responses: '200': description: The Comment record content: application/json: schema: $ref: '#/components/schemas/Comment' '404': $ref: '#/components/responses/Error' components: schemas: Comment: type: object properties: id: type: integer post: type: integer parent: type: integer author: type: integer author_name: type: string author_url: type: string date: type: string format: date-time content: type: object properties: rendered: type: string link: type: string format: uri status: type: string type: type: string _links: type: object Error: type: object required: - code - message properties: code: type: string description: Machine-readable WordPress error code. message: type: string description: Human-readable error message. data: type: object properties: status: type: integer description: HTTP status code. params: type: object details: type: object responses: Error: description: WordPress REST error envelope content: application/json: schema: $ref: '#/components/schemas/Error' example: code: rest_post_invalid_id message: Invalid post ID. data: status: 404 securitySchemes: applicationPassword: type: http scheme: basic description: WordPress Application Passwords (RFC 7617 Basic over TLS). Required only for write and administrative routes, which are out of scope for this document — every operation modelled here is anonymous.