EFFECT Photonics Wp/v2 API

WordPress core content API (posts, pages, media, taxonomies, users, settings) plus the site's custom post types — products, careers, events, partners, team members and FAQs — and the optical hardware taxonomies attached to products. Published content reads anonymously (HTTP 200 observed); writes and privileged reads are capability-gated.

OpenAPI Specification

effect-photonics-wp-v2-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: EFFECT Photonics WordPress REST Wp/v2 API
  version: wp/v2
  summary: The live WordPress REST API served by the EFFECT Photonics corporate website.
  description: 'Derived verbatim from the route-discovery document the EFFECT Photonics web server publishes at https://effectphotonics.com/wp-json/ (fetched 2026-08-12, HTTP 200). Every path, method, parameter
    name, type, default and enum in this document was read from that live response; nothing was invented.


    This is the content-management API of the corporate marketing site, not a product, network-management or optical-transceiver API. EFFECT Photonics is an optical-semiconductor company (coherent optical
    transceivers and monolithically integrated InP photonic circuits) and publishes no developer product API, no developer portal and no SDK. The surface is catalogued because it is a real, live, self-describing
    HTTP contract on the provider''s own host, because it carries a first-party custom namespace (`effect/v1`), and because the same install exposes two Model Context Protocol servers under the `mcp` namespace
    guarded by an OAuth 2.1 authorization server (see mcp/effect-photonics-mcp.yml).


    Only the WordPress core and first-party namespaces are represented (`wp/v2`, `wp-abilities/v1`, `mcp`, `oembed/1.0`, `effect/v1`, and the root index). Third-party plugin namespaces advertised by the
    same discovery document (akismet/v1, litespeed/v1, litespeed/v3, yoast/v1, connector/v1, duplicate-post/v1, wp-site-health/v1, wp-block-editor/v1) are intentionally excluded as vendor plugin internals.'
  x-derived-from: https://effectphotonics.com/wp-json/
  x-derived-on: '2026-08-12'
  x-apievangelist-method: derived
servers:
- url: https://effectphotonics.com
  description: Production
tags:
- name: wp/v2
  description: WordPress core content API (posts, pages, media, custom post types, taxonomies, users, settings). Public read on published content; writes and privileged reads are capability-gated.
paths:
  /wp-json/wp/v2:
    get:
      operationId: getWpV2
      summary: GET /wp/v2
      description: WordPress REST API route `/wp/v2` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      parameters:
      - name: namespace
        in: query
        schema:
          default: wp/v2
      - name: context
        in: query
        schema:
          default: view
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-json/wp/v2/posts:
    get:
      operationId: getWpV2Posts
      summary: GET /wp/v2/posts
      description: WordPress REST API route `/wp/v2/posts` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      parameters:
      - name: context
        in: query
        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
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        schema:
          type: integer
          default: 10
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: search
        in: query
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: after
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts published after a given ISO8601 compliant date.
      - name: modified_after
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified after a given ISO8601 compliant date.
      - name: author
        in: query
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to posts assigned to specific authors.
      - name: author_exclude
        in: query
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes posts assigned to specific authors.
      - name: before
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts published before a given ISO8601 compliant date.
      - name: modified_before
        in: query
        schema:
          type: string
          format: date-time
        description: Limit response to posts modified before a given ISO8601 compliant date.
      - name: exclude
        in: query
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to specific IDs.
      - name: search_semantics
        in: query
        schema:
          type: string
          enum:
          - exact
        description: How to interpret the search input.
      - name: offset
        in: query
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        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
        schema:
          type: array
          default: []
          items:
            type: string
            enum:
            - post_title
            - post_content
            - post_excerpt
        description: Array of column names to be searched.
      - name: slug
        in: query
        schema:
          type: array
          items:
            type: string
        description: Limit result set to posts with one or more specific slugs.
      - name: status
        in: query
        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
            - acf-disabled
            - dp-rewrite-republish
            - any
        description: Limit result set to posts assigned one or more statuses.
      - name: tax_relation
        in: query
        schema:
          type: string
          enum:
          - AND
          - OR
        description: Limit result set based on relationship between multiple taxonomies.
      - name: categories
        in: query
        schema:
          type: object
        description: Limit result set to items with specific terms assigned in the categories taxonomy.
      - name: categories_exclude
        in: query
        schema:
          type: object
        description: Limit result set to items except those with specific terms assigned in the categories taxonomy.
      - name: tags
        in: query
        schema:
          type: object
        description: Limit result set to items with specific terms assigned in the tags taxonomy.
      - name: tags_exclude
        in: query
        schema:
          type: object
        description: Limit result set to items except those with specific terms assigned in the tags taxonomy.
      - name: sticky
        in: query
        schema:
          type: boolean
        description: Limit result set to items that are sticky.
      - name: ignore_sticky
        in: query
        schema:
          type: boolean
          default: true
        description: Whether to ignore sticky posts or not.
      - name: format
        in: query
        schema:
          type: array
          items:
            type: string
            enum:
            - standard
            - aside
            - chat
            - gallery
            - link
            - image
            - quote
            - status
            - video
            - audio
        description: Limit result set to items assigned one or more given formats.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: postWpV2Posts
      summary: POST /wp/v2/posts
      description: WordPress REST API route `/wp/v2/posts` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      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
                  - 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
                  description: The title for the post.
                content:
                  type: object
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  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
                  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.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-json/wp/v2/posts/{id}:
    get:
      operationId: getWpV2PostsId
      summary: GET /wp/v2/posts/{id}
      description: WordPress REST API route `/wp/v2/posts/(?P<id>[\d]+)` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: context
        in: query
        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
        schema:
          type: integer
        description: Override the default excerpt length.
      - name: password
        in: query
        schema:
          type: string
        description: The password for the post if it is password protected.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    post:
      operationId: postWpV2PostsId
      summary: POST /wp/v2/posts/{id}
      description: WordPress REST API route `/wp/v2/posts/(?P<id>[\d]+)` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      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: &id001
                  - publish
                  - future
                  - draft
                  - pending
                  - private
                  - 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
                  description: The title for the post.
                content:
                  type: object
                  description: The content for the post.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  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: &id002
                  - open
                  - closed
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum: &id003
                  - open
                  - closed
                  description: Whether or not the post can be pinged.
                format:
                  type: string
                  enum: &id004
                  - standard
                  - aside
                  - chat
                  - gallery
                  - link
                  - image
                  - quote
                  - status
                  - video
                  - audio
                  description: The format for the post.
                meta:
                  type: object
                  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.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    put:
      operationId: putWpV2PostsId
      summary: PUT /wp/v2/posts/{id}
      description: WordPress REST API route `/wp/v2/posts/(?P<id>[\d]+)` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      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: *id001
                  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.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  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: *id002
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum: *id003
                  description: Whether or not the post can be pinged.
                format:
                  type: string
                  enum: *id004
                  description: The format for the post.
                meta:
                  type: object
                  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.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    patch:
      operationId: patchWpV2PostsId
      summary: PATCH /wp/v2/posts/{id}
      description: WordPress REST API route `/wp/v2/posts/(?P<id>[\d]+)` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      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: *id001
                  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.
                author:
                  type: integer
                  description: The ID for the author of the post.
                excerpt:
                  type: object
                  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: *id002
                  description: Whether or not comments are open on the post.
                ping_status:
                  type: string
                  enum: *id003
                  description: Whether or not the post can be pinged.
                format:
                  type: string
                  enum: *id004
                  description: The format for the post.
                meta:
                  type: object
                  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.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
    delete:
      operationId: deleteWpV2PostsId
      summary: DELETE /wp/v2/posts/{id}
      description: WordPress REST API route `/wp/v2/posts/(?P<id>[\d]+)` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: force
        in: query
        schema:
          type: boolean
          default: false
        description: Whether to bypass Trash and force deletion.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-json/wp/v2/posts/{parent}/revisions:
    get:
      operationId: getWpV2PostsParentRevisions
      summary: GET /wp/v2/posts/{parent}/revisions
      description: WordPress REST API route `/wp/v2/posts/(?P<parent>[\d]+)/revisions` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      parameters:
      - name: parent
        in: path
        required: true
        schema:
          type: string
      - name: context
        in: query
        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
        schema:
          type: integer
          default: 1
          minimum: 1
        description: Current page of the collection.
      - name: per_page
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
        description: Maximum number of items to be returned in result set.
      - name: search
        in: query
        schema:
          type: string
        description: Limit results to those matching a string.
      - name: exclude
        in: query
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Ensure result set excludes specific IDs.
      - name: include
        in: query
        schema:
          type: array
          default: []
          items:
            type: integer
        description: Limit result set to specific IDs.
      - name: offset
        in: query
        schema:
          type: integer
        description: Offset the result set by a specific number of items.
      - name: order
        in: query
        schema:
          type: string
          enum:
          - asc
          - desc
          default: desc
        description: Order sort attribute ascending or descending.
      - name: orderby
        in: query
        schema:
          type: string
          enum:
          - date
          - id
          - include
          - relevance
          - slug
          - include_slugs
          - title
          default: date
        description: Sort collection by object attribute.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
  /wp-json/wp/v2/posts/{parent}/revisions/{id}:
    get:
      operationId: getWpV2PostsParentRevisionsId
      summary: GET /wp/v2/posts/{parent}/revisions/{id}
      description: WordPress REST API route `/wp/v2/posts/(?P<parent>[\d]+)/revisions/(?P<id>[\d]+)` in namespace `wp/v2`, as advertised by the live route-discovery document at https://effectphotonics.com/wp-json/.
      tags:
      - wp/v2
      parameters:
      - name: parent
        in: path
        required: true
        schema:
          type: string
      - name: id
        in: path
        required: true
        schema:
          type: string
      - name: context
        in: query
        schema:
          type: string
          enum:
          - view
          - embed
          - edit
          default: view
        description: Scope under which the request is made; determines fields present in response.
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema: {}
        '401':
          description: Authentication required or capability missing
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WPError'
        '404':
          description: No route or resource found
          c

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