LanzaTech WordPress REST API

The public WordPress REST API served by lanzatech.com. Read operations are open to anyone with no authentication, covering 107 blog posts, 16 pages, 314 media items, 4 categories and 141 tags, plus five LanzaTech-specific custom content types that model the company itself - news (35 items of external press coverage), employee (4), board-member (14), download (5 published reports and life-cycle assessments) and testimonial (1). Write operations require a WordPress application password. Collections paginate with page/per_page and signal totals with the X-WP-Total and X-WP-TotalPages response headers plus RFC 8288 Link relations.

OpenAPI Specification

lanzatech-wordpress-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: LanzaTech WordPress REST API
  version: wp/v2
  description: 'The public WordPress REST API served by lanzatech.com. Derived faithfully from the provider''s
    own live discovery document at https://lanzatech.com/wp-json/ on 2026-07-19. Alongside the standard
    WordPress content types (posts, pages, media, categories, tags), LanzaTech publishes five custom content
    types that model the company itself: news (external news coverage), employee, board-member, download
    (published reports and life-cycle assessments) and testimonial. Read operations are publicly accessible
    without authentication; write operations require a WordPress application password.'
  contact:
    name: LanzaTech
    url: https://lanzatech.com/contact/
  termsOfService: https://lanzatech.com/terms-of-use/
  x-generated: '2026-07-19'
  x-method: derived
  x-source: https://lanzatech.com/wp-json/
servers:
- url: https://lanzatech.com/wp-json
  description: Production
tags:
- name: block-directory
- name: block-patterns
- name: block-renderer
- name: block-types
- name: blocks
- name: board-member
- name: categories
- name: comments
- name: download
- name: employee
- name: global-styles
- name: jet-engine
- name: media
- name: menu-items
- name: menu-locations
- name: menus
- name: navigation
- name: news
- name: pages
- name: pattern-directory
- name: plugins
- name: posts
- name: search
- name: settings
- name: sidebars
- name: statuses
- name: tags
- name: taxonomies
- name: template-parts
- name: templates
- name: testimonial
- name: themes
- name: types
- name: users
- name: widget-types
- name: widgets
paths:
  /wp/v2/block-directory/search:
    get:
      operationId: listBlockDirectorySearch
      summary: GET /wp/v2/block-directory/search
      tags:
      - block-directory
      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
          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: term
        in: query
        required: true
        description: Limit result set to blocks matching the search term.
        schema:
          type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
          headers:
            X-WP-Total:
              description: Total items in the collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total pages in the collection.
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev).
              schema:
                type: string
        '400': &id001
          $ref: '#/components/responses/Error'
        '404': *id001
  /wp/v2/block-patterns/categories:
    get:
      operationId: listBlockPatternsCategories
      summary: GET /wp/v2/block-patterns/categories
      tags:
      - block-patterns
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
          headers:
            X-WP-Total:
              description: Total items in the collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total pages in the collection.
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev).
              schema:
                type: string
        '400': *id001
        '404': *id001
  /wp/v2/block-patterns/patterns:
    get:
      operationId: listBlockPatternsPatterns
      summary: GET /wp/v2/block-patterns/patterns
      tags:
      - block-patterns
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
          headers:
            X-WP-Total:
              description: Total items in the collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total pages in the collection.
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev).
              schema:
                type: string
        '400': *id001
        '404': *id001
  /wp/v2/block-renderer/{name}/[a-z0-9-]+):
    parameters:
    - name: name
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: (?P<name>[a-z0-9-]+).'
      schema:
        type: string
    get:
      operationId: getBlockRenderer[aZ09]+)ByName
      summary: GET /wp/v2/block-renderer/{name}/[a-z0-9-]+)
      tags:
      - block-renderer
      parameters:
      - name: name
        in: query
        required: false
        description: Unique registered name for the block.
        schema:
          type: string
      - name: context
        in: query
        required: false
        description: Scope under which the request is made; determines fields present in response.
        schema:
          type: string
          enum: &id002
          - edit
          default: view
      - name: attributes
        in: query
        required: false
        description: Attributes for the block.
        schema:
          type: object
          default: &id003 []
      - name: post_id
        in: query
        required: false
        description: ID of the post context.
        schema:
          type: integer
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
    post:
      operationId: createBlockRenderer[aZ09]+)ByName
      summary: POST /wp/v2/block-renderer/{name}/[a-z0-9-]+)
      tags:
      - block-renderer
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                  description: Unique registered name for the block.
                context:
                  type: string
                  enum: *id002
                  default: view
                  description: Scope under which the request is made; determines fields present in response.
                attributes:
                  type: object
                  default: *id003
                  description: Attributes for the block.
                post_id:
                  type: integer
                  description: ID of the post context.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
  /wp/v2/block-types:
    get:
      operationId: listBlockTypes
      summary: GET /wp/v2/block-types
      tags:
      - block-types
      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: namespace
        in: query
        required: false
        description: Block namespace.
        schema:
          type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
          headers:
            X-WP-Total:
              description: Total items in the collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total pages in the collection.
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev).
              schema:
                type: string
        '400': *id001
        '404': *id001
  /wp/v2/block-types/{namespace}:
    parameters:
    - name: namespace
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [a-zA-Z0-9_-]+).'
      schema:
        type: string
    get:
      operationId: getBlockTypesByNamespace
      summary: GET /wp/v2/block-types/{namespace}
      tags:
      - block-types
      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: namespace
        in: query
        required: false
        description: Block namespace.
        schema:
          type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
  /wp/v2/block-types/{namespace}/{name}:
    parameters:
    - name: namespace
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [a-zA-Z0-9_-]+).'
      schema:
        type: string
    - name: name
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [a-zA-Z0-9_-]+).'
      schema:
        type: string
    get:
      operationId: getBlockTypesByNamespaceByName
      summary: GET /wp/v2/block-types/{namespace}/{name}
      tags:
      - block-types
      parameters:
      - name: name
        in: query
        required: false
        description: Block name.
        schema:
          type: string
      - name: namespace
        in: query
        required: false
        description: Block namespace.
        schema:
          type: string
      - 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
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
  /wp/v2/blocks:
    get:
      operationId: listBlocks
      summary: GET /wp/v2/blocks
      tags:
      - blocks
      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 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: 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: 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: 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
            - any
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
          headers:
            X-WP-Total:
              description: Total items in the collection.
              schema:
                type: integer
            X-WP-TotalPages:
              description: Total pages in the collection.
              schema:
                type: integer
            Link:
              description: RFC 8288 pagination links (rel=next / rel=prev).
              schema:
                type: string
        '400': *id001
        '404': *id001
    post:
      operationId: createBlocks
      summary: POST /wp/v2/blocks
      tags:
      - blocks
      requestBody:
        required: false
        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
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
  /wp/v2/blocks/{id}:
    parameters:
    - name: id
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [\d]+).'
      schema:
        type: integer
    get:
      operationId: getBlocksById
      summary: GET /wp/v2/blocks/{id}
      tags:
      - blocks
      parameters:
      - name: id
        in: query
        required: false
        description: Unique identifier for the post.
        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 post if it is password protected.
        schema:
          type: string
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
    post:
      operationId: createBlocksById
      summary: POST /wp/v2/blocks/{id}
      tags:
      - blocks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: Unique identifier for the post.
                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: &id004
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
    put:
      operationId: replaceBlocksById
      summary: PUT /wp/v2/blocks/{id}
      tags:
      - blocks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: Unique identifier for the post.
                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: *id004
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
    patch:
      operationId: updateBlocksById
      summary: PATCH /wp/v2/blocks/{id}
      tags:
      - blocks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: Unique identifier for the post.
                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: *id004
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
    delete:
      operationId: deleteBlocksById
      summary: DELETE /wp/v2/blocks/{id}
      tags:
      - blocks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                id:
                  type: integer
                  description: Unique identifier for the post.
                force:
                  type: boolean
                  default: false
                  description: Whether to bypass Trash and force deletion.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
  /wp/v2/blocks/{id}/autosaves:
    parameters:
    - name: id
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [\d]+).'
      schema:
        type: integer
    get:
      operationId: getBlocksAutosavesById
      summary: GET /wp/v2/blocks/{id}/autosaves
      tags:
      - blocks
      parameters:
      - 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
          enum:
          - view
          - embed
          - edit
          default: view
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
    post:
      operationId: createBlocksAutosavesById
      summary: POST /wp/v2/blocks/{id}/autosaves
      tags:
      - blocks
      requestBody:
        required: false
        content:
          application/json:
            schema:
              type: object
              properties:
                parent:
                  type: integer
                  description: The ID for the parent of the autosave.
                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
                  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.
                template:
                  type: string
                  description: The theme file to use to display the post.
      security:
      - applicationPassword: []
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '400': *id001
        '401': *id001
        '403': *id001
        '404': *id001
  /wp/v2/blocks/{parent}/autosaves/{id}:
    parameters:
    - name: parent
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [\d]+).'
      schema:
        type: integer
    - name: id
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [\d]+).'
      schema:
        type: integer
    get:
      operationId: getBlocksAutosavesByParentById
      summary: GET /wp/v2/blocks/{parent}/autosaves/{id}
      tags:
      - blocks
      parameters:
      - name: parent
        in: query
        required: false
        description: The ID for the parent of the autosave.
        schema:
          type: integer
      - name: id
        in: query
        required: false
        description: The ID for 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
          enum:
          - view
          - embed
          - edit
          default: view
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
  /wp/v2/blocks/{parent}/revisions:
    parameters:
    - name: parent
      in: path
      required: true
      description: 'Route-matched value (WordPress route pattern: [\d]+).'
      schema:
        type: integer
    get:
      operationId: getBlocksRevisionsByParent
      summary: GET /wp/v2/blocks/{parent}/revisions
      tags:
      - blocks
      parameters:
      - name: parent
        in: query
        required: false
        description: The ID for the parent of the revision.
        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: 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
          minimum: 1
          maximum: 100
      - name: search
        in: query
        required: false
        description: Limit results to those matching a string.
        schema:
          type: string
      - 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 object attribute.
        schema:
          type: string
          enum:
          - date
          - id
          - include
          - relevance
          - slug
          - include_slugs
          - title
          default: date
      responses:
        '200':
          description: Successful response.
          content:
            application/json:
              schema:
                type: object
        '404': *id001
  /wp/v2/blocks/{parent}/revisions/{id}:
    parameters:
    - name: parent
      in: path
      required: true
      description: 'Route-matched value (WordPress route pat

# --- truncated at 32 KB (463 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/lanzatech/refs/heads/main/openapi/lanzatech-wordpress-openapi.yml