openapi: 3.1.0 info: title: Kateeva Posts API version: wp/v2 description: 'Public, unauthenticated read access to the Kateeva newsroom archive — press releases, in-the-news coverage, events and the Kateeva Blog (152 published posts at capture) — via the WordPress core REST API. Anonymous access is read-only: the collection answers `Allow: GET` without credentials. Write methods exist on the same routes but require WordPress application-password authentication and are not part of the public surface.' contact: name: Kateeva url: https://kateeva.com/contact/ x-derived-from: https://kateeva.com/wp-json/ route index + per-route HTTP OPTIONS schema documents x-derived-on: '2026-08-23' x-api-evangelist-note: Third-party profile. Kateeva is an OLED display manufacturing equipment maker and publishes no developer program; this documents the anonymously readable WordPress REST content API behind kateeva.com. Every path, parameter and schema here was read from the server's own published route index and OPTIONS documents on 2026-08-23 — nothing is invented. servers: - url: https://kateeva.com/wp-json description: Kateeva WordPress REST API tags: - name: Posts description: Kateeva press releases, news coverage, event notices and blog articles. paths: /wp/v2/posts: get: operationId: listPosts summary: List posts tags: - Posts description: Retrieve a paginated collection of published Kateeva posts (152 at capture). parameters: - name: after in: query schema: type: string format: date-time description: Limit response to posts published after a given ISO8601 compliant date. - name: author in: query schema: type: array items: type: integer default: [] description: Limit result set to posts assigned to specific authors. - name: author_exclude in: query schema: type: array items: type: integer default: [] 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: 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: 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: exclude in: query schema: type: array items: type: integer default: [] description: Ensure result set excludes specific IDs. - name: include in: query schema: type: array items: type: integer default: [] description: Limit result set to specific IDs. - name: modified_after in: query schema: type: string format: date-time description: Limit response to posts modified after 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: 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: 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: search_columns in: query schema: type: array items: type: string enum: - post_title - post_content - post_excerpt default: [] 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 items: type: string enum: - publish - future - draft - pending - private - trash - auto-draft - inherit - request-pending - request-confirmed - request-failed - request-completed - acf-disabled - any default: publish description: Limit result set to posts assigned one or more statuses. - name: sticky in: query schema: type: boolean description: Limit result set to items that are sticky. - 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: tax_relation in: query schema: type: string enum: - AND - OR description: Limit result set based on relationship between multiple taxonomies. - name: wpml_language in: query schema: type: string enum: - en - ko description: WPML's language code responses: '200': description: List posts headers: X-WP-Total: description: Total number of records matching the query. schema: type: integer X-WP-TotalPages: description: Total number of pages available at the current per_page. schema: type: integer Link: description: RFC 8288 pagination links (rel="next" / rel="prev"). schema: type: string content: application/json: schema: type: array items: $ref: '#/components/schemas/Post' '400': description: Invalid parameter(s) — rest_invalid_param. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: Authentication required or insufficient permission — rest_forbidden. content: application/json: schema: $ref: '#/components/schemas/Error' /wp/v2/posts/{id}: get: operationId: getPost summary: Get post tags: - Posts description: Retrieve a single Kateeva post by its numeric WordPress ID. parameters: - name: id in: path required: true description: Unique identifier for the post. schema: type: integer - 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: password in: query schema: type: string description: The password for the post if it is password protected. - name: wpml_language in: query schema: type: string enum: - en - ko description: WPML's language code responses: '200': description: A single post content: application/json: schema: $ref: '#/components/schemas/Post' '400': description: Invalid parameter(s) — rest_invalid_param. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: No post exists with that ID — rest_post_invalid_id. content: application/json: schema: $ref: '#/components/schemas/Error' components: schemas: Error: type: object description: The WordPress REST API error envelope returned on every 4xx/5xx. properties: code: type: string description: Machine-readable error code, e.g. rest_post_invalid_id. message: type: string description: Human-readable error message. data: type: object properties: status: type: integer description: The HTTP status code. params: type: object description: Per-parameter validation messages (rest_invalid_param only). required: - code - message Post: type: object title: post 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. guid: type: object description: The globally unique identifier for the post. readOnly: true properties: raw: type: string description: GUID for the post, as it exists in the database. rendered: type: string description: GUID for the post, transformed for display. id: type: integer description: Unique identifier for the post. readOnly: true link: type: string format: uri description: URL to the post. readOnly: true modified: type: string format: date-time description: The date the post was last modified, in the site's timezone. readOnly: true modified_gmt: type: string format: date-time description: The date the post was last modified, as GMT. readOnly: true 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. type: type: string description: Type of post. readOnly: true password: type: string description: A password to protect access to the content and excerpt. permalink_template: type: string description: Permalink template for the post. readOnly: true generated_slug: type: string description: Slug automatically generated from the post title. readOnly: true title: type: object description: The title for the post. properties: raw: type: string description: Title for the post, as it exists in the database. rendered: type: string description: HTML title for the post, transformed for display. content: type: object description: The content for the post. properties: raw: type: string description: Content for the post, as it exists in the database. rendered: type: string description: HTML content for the post, transformed for display. block_version: type: integer description: Version of the content block format used by the post. protected: type: boolean description: Whether the content is protected with a password. author: type: integer description: The ID for the author of the post. excerpt: type: object description: The excerpt for the post. properties: raw: type: string description: Excerpt for the post, as it exists in the database. rendered: type: string description: HTML excerpt for the post, transformed for display. protected: type: boolean description: Whether the excerpt is protected with a password. 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. properties: footnotes: type: string 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 description: The terms assigned to the post in the category taxonomy. items: type: integer tags: type: array description: The terms assigned to the post in the post_tag taxonomy. items: type: integer acf: type: object description: ACF field data