CaaMTech Wp/v2 API

The wp/v2 API from CaaMTech — 106 operation(s) for wp/v2.

OpenAPI Specification

caamtech-wp-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CaaMTech WordPress REST Wp/v2 API
  version: wp/v2
  summary: The public WordPress REST API served by caam.tech.
  description: 'Machine-readable description of the REST API that caam.tech serves at /wp-json/. CaaMTech publishes no developer program and no product API; this is the standard WordPress REST API exposed by the company web site, which does make the company''s published research updates, pages, categories and media programmatically readable without credentials.


    PROVENANCE: this document was DERIVED by API Evangelist from the discovery document the site itself publishes at https://caam.tech/wp-json/ (saved verbatim alongside as caamtech-wordpress-rest-routes-original.json). Every path, method, parameter name, type, enum and default below is copied from that document. CaaMTech did not author or publish this OpenAPI. Response schemas are not described in the WordPress discovery document and are therefore left open rather than invented.'
  x-provenance:
    method: derived
    source: https://caam.tech/wp-json/
    derived_from: openapi/caamtech-wordpress-rest-routes-original.json
    derived_by: API Evangelist enrichment pipeline
    generated: '2026-08-08'
    provider_authored: false
servers:
- url: https://caam.tech/wp-json
  description: WordPress REST API root on caam.tech
tags:
- name: wp/v2
paths:
  /wp/v2:
    get:
      operationId: get_wp_v2
      summary: GET /wp/v2
      tags:
      - wp/v2
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '404':
          description: No route was found matching the URL and request method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
      parameters:
      - name: namespace
        in: query
        required: false
        schema:
          default: wp/v2
      - name: context
        in: query
        required: false
        schema:
          default: view
  /wp/v2/posts:
    get:
      operationId: get_wp_v2_posts
      summary: GET /wp/v2/posts
      tags:
      - wp/v2
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '404':
          description: No route was found matching the URL and request method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
      parameters:
      - 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: page
        in: query
        required: false
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - 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: search
        in: query
        required: false
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published after a given ISO8601 compliant date.
      - name: modified_after
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified after a given ISO8601 compliant date.
      - name: author
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to posts assigned to specific authors.
      - name: author_exclude
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes posts assigned to specific authors.
      - name: before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - name: modified_before
        in: query
        required: false
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified before a given ISO8601 compliant date.
      - 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: search_semantics
        in: query
        required: false
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - 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:
          - author
          - date
          - id
          - include
          - modified
          - parent
          - relevance
          - slug
          - include_slugs
          - title
          default: date
        description: Sort collection by post attribute.
      - name: search_columns
        in: query
        required: false
        schema:
          type: array
          default: []
          items:
            enum:
            - post_title
            - post_content
            - post_excerpt
            type: string
        description: Array of column names to be searched.
      - name: slug
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
        description: Limit result set to posts with one or more specific slugs.
      - name: status
        in: query
        required: false
        schema:
          type: array
          default: publish
          items:
            enum:
            - publish
            - future
            - draft
            - pending
            - private
            - trash
            - auto-draft
            - inherit
            - request-pending
            - request-confirmed
            - request-failed
            - request-completed
            - in-progress
            - failed
            - acf-disabled
            - any
            type: string
        description: Limit result set to posts assigned one or more statuses.
      - name: tax_relation
        in: query
        required: false
        schema:
          type: string
          enum:
          - AND
          - OR
        description: Limit result set based on relationship between multiple taxonomies.
      - name: categories
        in: query
        required: false
        schema:
          type:
          - object
          - array
        description: Limit result set to items with specific terms assigned in the categories taxonomy.
      - name: categories_exclude
        in: query
        required: false
        schema:
          type:
          - object
          - array
        description: Limit result set to items except those with specific terms assigned in the categories taxonomy.
      - name: tags
        in: query
        required: false
        schema:
          type:
          - object
          - array
        description: Limit result set to items with specific terms assigned in the tags taxonomy.
      - name: tags_exclude
        in: query
        required: false
        schema:
          type:
          - object
          - array
        description: Limit result set to items except those with specific terms assigned in the tags taxonomy.
      - name: sticky
        in: query
        required: false
        schema:
          type: boolean
        description: Limit result set to items that are sticky.
      - name: ignore_sticky
        in: query
        required: false
        schema:
          type: boolean
          default: true
        description: Whether to ignore sticky posts or not.
      - name: format
        in: query
        required: false
        schema:
          type: array
          items:
            enum:
            - standard
            - aside
            - chat
            - gallery
            - link
            - image
            - quote
            - status
            - video
            - audio
            type: string
        description: Limit result set to items assigned one or more given formats.
    post:
      operationId: post_wp_v2_posts
      summary: POST /wp/v2/posts
      tags:
      - wp/v2
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '404':
          description: No route was found matching the URL and request method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
      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
                  - in-progress
                  - failed
                  - acf-disabled
                  description: A named status for the post.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                title:
                  type: object
                  properties:
                    raw:
                      description: Title for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML title for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The title for the post.
                content:
                  type: object
                  properties:
                    raw:
                      description: Content for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML content for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      readonly: true
                    block_version:
                      description: Version of the content block format used by the post.
                      type: integer
                      context:
                      - edit
                      readonly: true
                    protected:
                      description: Whether the content is protected with a password.
                      type: boolean
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  properties:
                    raw:
                      description: Excerpt for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML excerpt for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                    protected:
                      description: Whether the excerpt is protected with a password.
                      type: boolean
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The excerpt for the post.
                featured_media:
                  type: integer
                  description: The ID of the featured media for the post.
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not the post can be pinged.
                format:
                  type: string
                  enum:
                  - standard
                  - aside
                  - chat
                  - gallery
                  - link
                  - image
                  - quote
                  - status
                  - video
                  - audio
                  description: The format for the post.
                meta:
                  type: object
                  properties:
                    _acf_changed:
                      type: boolean
                      title: ''
                      description: ''
                      default: false
                    footnotes:
                      type: string
                      title: ''
                      description: ''
                      default: ''
                  description: Meta fields.
                sticky:
                  type: boolean
                  description: Whether or not the post should be treated as sticky.
                template:
                  type: string
                  description: The theme file to use to display the post.
                categories:
                  type: array
                  items:
                    type: integer
                  description: The terms assigned to the post in the category taxonomy.
                tags:
                  type: array
                  items:
                    type: integer
                  description: The terms assigned to the post in the post_tag taxonomy.
      security:
      - applicationPassword: []
      - cookieAuth: []
  /wp/v2/posts/{id}:
    get:
      operationId: get_wp_v2_posts_id
      summary: GET /wp/v2/posts/{id}
      tags:
      - wp/v2
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '404':
          description: No route was found matching the URL and request method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - 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: excerpt_length
        in: query
        required: false
        schema:
          type: integer
        description: Override the default excerpt length.
      - name: password
        in: query
        required: false
        schema:
          type: string
        description: The password for the post if it is password protected.
    post:
      operationId: post_wp_v2_posts_id
      summary: POST /wp/v2/posts/{id}
      tags:
      - wp/v2
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '404':
          description: No route was found matching the URL and request method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      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
                  - in-progress
                  - failed
                  - acf-disabled
                  description: A named status for the post.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                title:
                  type: object
                  properties:
                    raw:
                      description: Title for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML title for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The title for the post.
                content:
                  type: object
                  properties:
                    raw:
                      description: Content for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML content for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      readonly: true
                    block_version:
                      description: Version of the content block format used by the post.
                      type: integer
                      context:
                      - edit
                      readonly: true
                    protected:
                      description: Whether the content is protected with a password.
                      type: boolean
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  properties:
                    raw:
                      description: Excerpt for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML excerpt for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                    protected:
                      description: Whether the excerpt is protected with a password.
                      type: boolean
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The excerpt for the post.
                featured_media:
                  type: integer
                  description: The ID of the featured media for the post.
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not the post can be pinged.
                format:
                  type: string
                  enum:
                  - standard
                  - aside
                  - chat
                  - gallery
                  - link
                  - image
                  - quote
                  - status
                  - video
                  - audio
                  description: The format for the post.
                meta:
                  type: object
                  properties:
                    _acf_changed:
                      type: boolean
                      title: ''
                      description: ''
                      default: false
                    footnotes:
                      type: string
                      title: ''
                      description: ''
                      default: ''
                  description: Meta fields.
                sticky:
                  type: boolean
                  description: Whether or not the post should be treated as sticky.
                template:
                  type: string
                  description: The theme file to use to display the post.
                categories:
                  type: array
                  items:
                    type: integer
                  description: The terms assigned to the post in the category taxonomy.
                tags:
                  type: array
                  items:
                    type: integer
                  description: The terms assigned to the post in the post_tag taxonomy.
      security:
      - applicationPassword: []
      - cookieAuth: []
    put:
      operationId: put_wp_v2_posts_id
      summary: PUT /wp/v2/posts/{id}
      tags:
      - wp/v2
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
        '404':
          description: No route was found matching the URL and request method
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPRestError'
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      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
                  - in-progress
                  - failed
                  - acf-disabled
                  description: A named status for the post.
                password:
                  type: string
                  description: A password to protect access to the content and excerpt.
                title:
                  type: object
                  properties:
                    raw:
                      description: Title for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML title for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The title for the post.
                content:
                  type: object
                  properties:
                    raw:
                      description: Content for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML content for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      readonly: true
                    block_version:
                      description: Version of the content block format used by the post.
                      type: integer
                      context:
                      - edit
                      readonly: true
                    protected:
                      description: Whether the content is protected with a password.
                      type: boolean
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  properties:
                    raw:
                      description: Excerpt for the post, as it exists in the database.
                      type: string
                      context:
                      - edit
                    rendered:
                      description: HTML excerpt for the post, transformed for display.
                      type: string
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                    protected:
                      description: Whether the excerpt is protected with a password.
                      type: boolean
                      context:
                      - view
                      - edit
                      - embed
                      readonly: true
                  description: The excerpt for the post.
                featured_media:
                  type: integer
                  description: The ID of the featured media for the post.
                comment_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum:
                  - open
                  - closed
                  description: Whether or not the post can be pinged.
                format:
                  type: string
                  enum:
                  - standard
                  - aside
                  - chat
                  - gallery
                  - link
                  - image
                  - quote
                  - status
                  - video
                  - audio
                  description: The format for the post.
                meta:
                  type: object
                  properties:
                    _acf_changed:
                      type: boolean
                      title: ''
                      description: ''
                      default: false
                    footnotes:
                      type: string
                      title: ''
                      description: ''
                      default: ''
                  description: Meta fields.

# --- truncated at 32 KB (567 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/caamtech/refs/heads/main/openapi/caamtech-wp-v2-api-openapi.yml