LEAF4Life Content Pages API

The page collection behind leafforlife.com — 8 published pages covering the mission, the science, leadership, the advisory board and contact. Anonymously readable. Verified 2026-08-25: content.rendered is empty on every page because the theme assembles bodies with a page builder, so the route yields page identity, links and dates but no page text.

Operations 2

GET /wp/v2/pages List published pages #
GET /wp/v2/pages/{id} Retrieve a single page #

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/leaf4life-pages-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

leaf4life-pages-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LEAF4Life Content Pages API
  version: wp/v2
  summary: Anonymously readable WordPress page collection behind leafforlife.com.
  description: The read-only content surface LEAF4Life exposes at https://leafforlife.com/wp-json. LEAF4Life Inc. is a privately held clinical-stage biopharmaceutical company in Woburn, Massachusetts developing KizaVie™ (LEAF-4L6715), a proprietary liposomal formulation of transcrocetin for hypoxia-related disorders. It runs no developer program and markets no product API. This document is an API Evangelist derivation of the WordPress REST route index the site publishes at /wp-json/, restricted to operations verified to return data anonymously on 2026-08-25. This document covers the page collection — the only route on the deployment that carries the company's substantive published narrative.
  contact:
    name: LEAF4Life Inc.
    url: https://leafforlife.com/contact-us/
  x-api-evangelist-provenance: Derived by the API Evangelist enrichment pipeline from the live WordPress REST route index published at https://leafforlife.com/wp-json/ (150 routes across 7 namespaces) and verified against live anonymous responses on 2026-08-25. Every parameter below appears verbatim in that route index's `args` for the endpoint it is attached to, and every collection count quoted in a description was read from the `X-WP-Total` response header on that date. LEAF4Life 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. Routes that returned HTTP 401 anonymously (/wp/v2/settings, /wp/v2/block-types, /wp/v2/menu-items, /wp/v2/template-parts, the whole akismet/v1, wp-super-cache/v1, wp-site-health/v1 and wp-abilities/v1 namespaces) and every write method are deliberately excluded. Nothing here was obtained with credentials.
servers:
- url: https://leafforlife.com/wp-json
  description: Production WordPress REST content API
tags:
- name: pages
  description: Static site pages — mission, science, leadership, advisory board and contact (8 published at harvest time).
paths:
  /wp/v2/pages:
    get:
      tags:
      - pages
      operationId: listPages
      summary: List published pages
      description: 'Lists published pages. On this deployment the collection is the entire public website — 8 pages: Home (137), Our Science (881), Leadership (1236, slug management-team), Contact Us (3182), Advisory Board (2603), and three leadership biography pages (2479 Clet Niyikiza PhD, 2509 Victor Moyo MD, 2540 Professor Xavier Pivot). Paginated; X-WP-Total and X-WP-TotalPages are exposed. IMPORTANT, verified 2026-08-25: `content.rendered` and `excerpt.rendered` are the empty string on all 8 pages. Every page uses the theme template `template-modular.php` and its body is assembled by a page builder that stores blocks in postmeta rather than in `post_content`, so the API returns page identity and dates but no page body. An agent that needs the science or leadership narrative must fetch the HTML at `link`.'
      parameters:
      - name: after
        in: query
        description: Limit response to posts published after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: author
        in: query
        description: Limit result set to posts assigned to specific authors.
        schema:
          type: array
          items:
            type: integer
          default: []
      - name: author_exclude
        in: query
        description: Ensure result set excludes posts assigned to specific authors.
        schema:
          type: array
          items:
            type: integer
          default: []
      - name: before
        in: query
        description: Limit response to posts published before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - 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: exclude
        in: query
        description: Ensure result set excludes specific IDs.
        schema:
          type: array
          items:
            type: integer
          default: []
      - name: include
        in: query
        description: Limit result set to specific IDs.
        schema:
          type: array
          items:
            type: integer
          default: []
      - name: menu_order
        in: query
        description: Limit result set to posts with a specific menu_order value.
        schema:
          type: integer
      - name: modified_after
        in: query
        description: Limit response to posts modified after a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - name: modified_before
        in: query
        description: Limit response to posts modified before a given ISO8601 compliant date.
        schema:
          type: string
          format: date-time
      - 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 post attribute.
        schema:
          type: string
          enum:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          - menu_order
          default: date
      - name: page
        in: query
        description: Current page of the collection.
        schema:
          type: integer
          default: 1
          minimum: 1
      - name: parent
        in: query
        description: Limit result set to items with particular parent IDs.
        schema:
          type: array
          items:
            type: integer
          default: []
      - name: parent_exclude
        in: query
        description: Limit result set to all items except those of a particular parent ID.
        schema:
          type: array
          items:
            type: integer
          default: []
      - 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: search_columns
        in: query
        description: Array of column names to be searched.
        schema:
          type: array
          items:
            type: string
            enum:
            - post_title
            - post_content
            - post_excerpt
          default: []
      - name: search_semantics
        in: query
        description: How to interpret the search input.
        schema:
          type: string
          enum:
          - exact
      - name: slug
        in: query
        description: Limit result set to posts with one or more specific slugs.
        schema:
          type: array
          items:
            type: string
      - name: status
        in: query
        description: Limit result set to posts assigned one or more statuses.
        schema:
          type: array
          items:
            type: string
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - any
          default: publish
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
          headers:
            X-WP-Total:
              description: Total number of items in the unpaginated collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total number of pages available at the current per_page.
              schema:
                type: integer
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /wp/v2/pages/{id}:
    get:
      tags:
      - pages
      operationId: getPage
      summary: Retrieve a single page
      description: 'Retrieves one page by numeric id. Known ids on this deployment at harvest time: 137 (Home, the front page), 881 (Our Science), 1236 (Leadership), 3182 (Contact Us), 2603 (Advisory Board), 2479 / 2509 / 2540 (leadership bios). `content.rendered` is empty on every one of them — see the collection operation for why — so the useful fields here are id, slug, title.rendered, link, date and modified.'
      parameters:
      - name: id
        in: path
        description: Unique identifier for the post.
        required: true
        schema:
          type: integer
      - 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: excerpt_length
        in: query
        description: Override the default excerpt length.
        schema:
          type: integer
      - name: password
        in: query
        description: The password for the post if it is password protected.
        schema:
          type: string
      responses:
        '200':
          description: Success.
          content:
            application/json:
              schema:
                type: object
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
components:
  responses:
    Unauthorized:
      description: Anonymous request to a route this deployment restricts (rest_forbidden, rest_cannot_view). Observed on /wp/v2/settings, /wp/v2/block-types, /wp/v2/menu-items, /wp/v2/template-parts and the akismet/v1, wp-super-cache/v1, wp-site-health/v1 and wp-abilities/v1 namespaces.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WPError'
    NotFound:
      description: No route matched (rest_no_route) or the requested resource id does not exist.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WPError'
    BadRequest:
      description: Invalid parameter (rest_invalid_param) or missing required parameter (rest_missing_callback_param).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/WPError'
  schemas:
    WPError:
      type: object
      description: The WordPress REST error envelope. Not RFC 9457 problem+json; served as application/json.
      properties:
        code:
          type: string
          description: Machine-readable error code, e.g. rest_forbidden, rest_no_route, rest_post_invalid_id.
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          properties:
            status:
              type: integer
              description: HTTP status code, repeated in the body.
            params:
              type: object
              description: Present on rest_invalid_param; maps the offending parameter name to its validation message.
      required:
      - code
      - message