Neomorph Comments API

Comment collection. Registered and anonymously reachable, but empty — no post on this deployment carries comments.

Operations 2

GET /wp/v2/comments List comments #
GET /wp/v2/comments/{id} Get a comment #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/neomorph-comments-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

neomorph-comments-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Neomorph Comments API
  version: wp/v2
  summary: Anonymously readable WordPress REST content API behind neomorph.com.
  description: The read-only content surface Neomorph exposes at https://neomorph.com/wp-json. Neomorph, Inc. is a venture-backed, clinical-stage biotechnology company at 5590 Morehouse Drive in San Diego, California, founded in 2020 to design molecular glue degraders that reshape E3 ubiquitin ligases into neomorphic surfaces and eliminate previously undruggable proteins. It runs no developer program and markets no product API. This document is an API Evangelist derivation of the WordPress `wp/v2` and `oembed/1.0` routes the site publishes, restricted to the operations verified to return data anonymously on 2026-08-26. See x-api-evangelist-provenance.
  contact:
    name: Neomorph, Inc.
    url: https://neomorph.com/contact/
  x-api-evangelist-provenance: Derived by the API Evangelist enrichment pipeline from the live WordPress REST route index at https://neomorph.com/wp-json/ (432 routes across 23 namespaces) and from the per-route OPTIONS descriptors that deployment returns, verified against live anonymous responses on 2026-08-26. Every parameter and every response property below appears verbatim in that deployment's own route/schema descriptors, and every collection count in a description was read from the X-WP-Total response header on that date. Neomorph publishes no OpenAPI, no developer portal and no API reference for this surface; the humanURL in apis.yml points at the upstream WordPress REST handbook that defines the wp/v2 contract. Write operations and every authenticated route (/wp/v2/users, /wp/v2/settings, /wp/v2/menu-items, /wp/v2/block-types, /wp/v2/elementor_library, the wp-abilities/v1 namespace and the whole plugin-administration surface) are deliberately excluded - they were probed anonymously and returned 401/403. Nothing here was obtained with credentials.
servers:
- url: https://neomorph.com/wp-json
  description: Production content API
tags:
- name: Comments
  description: Comment collection. Registered and reachable, but empty - no post on this deployment carries comments.
paths:
  /wp/v2/comments:
    get:
      tags:
      - Comments
      operationId: listComments
      summary: List comments
      description: 'Lists published items in the `comments` collection. Comment collection. Registered and reachable, but empty - no post on this deployment carries comments. Paginated; `X-WP-Total` and `X-WP-TotalPages` are returned as response headers and are exposed cross-origin via `Access-Control-Expose-Headers`. Anonymous read returned HTTP 200 with `X-WP-Total: 0` on 2026-08-26.'
      parameters:
      - name: context
        in: query
        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
        description: Current page of the collection.
        schema:
          type: integer
          default: 1
          minimum: 1
      - name: per_page
        in: query
        description: Maximum number of items to be returned in result set.
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
      - name: search
        in: query
        description: Limit results to those matching a string.
        schema:
          type: string
      - name: after
        in: query
        description: Limit response to comments published after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: author
        in: query
        description: Limit result set to comments assigned to specific user IDs. Requires authorization.
        schema:
          type: array
          items:
            type: integer
      - name: author_exclude
        in: query
        description: Ensure result set excludes comments assigned to specific user IDs. Requires authorization.
        schema:
          type: array
          items:
            type: integer
      - name: author_email
        in: query
        description: Limit result set to that from a specific author email. Requires authorization.
        schema:
          type: string
          default: null
          format: email
      - name: before
        in: query
        description: Limit response to comments published before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: exclude
        in: query
        description: Ensure result set excludes specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: include
        in: query
        description: Limit result set to specific IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: offset
        in: query
        description: Offset the result set by a specific number of items.
        schema:
          type: integer
      - name: order
        in: query
        description: Order sort attribute ascending or descending.
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
      - name: orderby
        in: query
        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
        description: Limit result set to comments of specific parent IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: parent_exclude
        in: query
        description: Ensure result set excludes specific parent IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: post
        in: query
        description: Limit result set to comments assigned to specific post IDs.
        schema:
          type: array
          default: []
          items:
            type: integer
      - name: status
        in: query
        description: Limit result set to comments assigned a specific status. Requires authorization.
        schema:
          type: string
          default: approve
      - name: type
        in: query
        description: Limit result set to comments assigned a specific type. Requires authorization.
        schema:
          type: string
          default: comment
      - name: password
        in: query
        description: The password for the post if it is password protected.
        schema:
          type: string
      responses:
        '200':
          description: A page of comments.
          headers:
            X-WP-Total:
              description: Total number of items in the collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available.
              schema:
                type: integer
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Comment'
        '400':
          $ref: '#/components/responses/InvalidParam'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /wp/v2/comments/{id}:
    get:
      tags:
      - Comments
      operationId: getComments
      summary: Get a comment
      description: Retrieves a single comment from the `comments` collection by its numeric WordPress id.
      parameters:
      - name: id
        in: path
        description: Unique identifier for the comment.
        schema:
          type: integer
        required: true
      - name: context
        in: query
        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
        description: The password for the parent post of the comment (if the post is password protected).
        schema:
          type: string
      responses:
        '200':
          description: The requested comment.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Comment'
        '400':
          $ref: '#/components/responses/InvalidParam'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    NotFound:
      description: 'No route or resource matched. Returns `rest_no_route` or a `rest_*_invalid_id` slug with `data.status: 404`.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    InvalidParam:
      description: Invalid parameter. Returns `rest_invalid_param` with a per-parameter breakdown in `data.params`.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: 'Authentication required. Returns `rest_forbidden` (or a route-specific slug) with `data.status: 401`.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Comment:
      type: object
      title: comment
      properties:
        id:
          type: integer
          readOnly: true
          description: Unique identifier for the comment.
        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
          properties:
            raw:
              type: string
            rendered:
              type: string
              readOnly: true
          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.
        link:
          type: string
          format: uri
          readOnly: true
          description: URL to the comment.
        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.
        type:
          type: string
          default: comment
          readOnly: true
          description: Type of the comment.
        meta:
          type: object
          properties:
            _wp_note_status:
              type: string
              enum:
              - resolved
              - reopen
              default: ''
          description: Meta fields.
        acf:
          type: object
          properties: []
          description: ACF field data
    Error:
      type: object
      title: WP_Error
      description: The WordPress REST error envelope. It is NOT RFC 9457 application/problem+json; it is served as application/json.
      properties:
        code:
          type: string
          description: Machine-readable error slug, e.g. rest_post_invalid_id.
        message:
          type: string
          description: Human-readable error message.
        data:
          type: object
          description: Error detail.
          properties:
            status:
              type: integer
              description: HTTP status code.
            params:
              type: object
              description: Per-parameter validation messages, on 400.
            details:
              type: object
              description: Per-parameter validation detail, on 400.
      required:
      - code
      - message