openapi: 3.1.0
info:
title: MindMaze Therapeutics Content API
version: wp/v2
summary: The public, read-only WordPress REST API behind mindmazetherapeutics.com.
description: 'MindMaze Therapeutics publishes no developer portal and no product API for its
neurotherapeutics platform, but its corporate site at mindmazetherapeutics.com runs on WordPress
and serves the standard WordPress REST API anonymously at https://mindmazetherapeutics.com/wp-json/.
That surface is a real, machine-readable, unauthenticated read API over MindMaze content: 450
posts, 49 pages, 1,070 media items, 11 categories and cross-content search. Because MindMaze
Therapeutics Holding SA is listed on the SIX Swiss Exchange (MMTX), the post corpus is dominated
by regulatory disclosure: 309 posts in the "EQS" category, 162 in "Ad hoc news" (EQS ad-hoc
announcements), 147 in "Other IR news", 27 in "Press releases", 92 "In the media", 17 "Events",
7 "Testimonials" and 2 "Products". This document is DERIVED from the live route discovery
document at https://mindmazetherapeutics.com/wp-json/ (saved verbatim as
mindmaze-content-wp-routes-original.json); every path and method here comes from that document,
and every operation listed was verified to return HTTP 200 anonymously on 2026-08-01. Write
methods (POST/PUT/PATCH/DELETE) and the administrative namespaces (settings, themes, plugins,
menus, block-types, widgets, users/me, jetpack, yoast, redirection, ai1wm) are deliberately
excluded: they exist on the host but return 401 rest_forbidden and are not a public API. This
is a corporate content and investor-relations API - it is NOT a clinical, device or patient-data
API. MindMaze products (Companion, MindMotion GO, MindPod, Izar, Physilog, TOAP Run) are
regulated medical devices; no public API, SDK or contract for them exists.'
contact:
name: MindMaze Therapeutics
url: https://mindmazetherapeutics.com/about/contact/
termsOfService: https://mindmazetherapeutics.com/terms-and-conditions/
x-provenance:
method: derived
source: https://mindmazetherapeutics.com/wp-json/
derived: '2026-08-01'
note: Derived by API Evangelist from the live WordPress route discovery document; not
published by MindMaze Therapeutics.
servers:
- url: https://mindmazetherapeutics.com/wp-json
description: Production
tags:
- name: Posts
description: 'MindMaze Therapeutics news: EQS regulatory and ad-hoc announcements, investor-relations
news, press releases, in-the-media coverage, events, testimonials and product announcements.'
- name: Pages
description: Marketing, product, platform, research and investor-relations pages on
mindmazetherapeutics.com.
- name: Media
description: Images, documents and files in the MindMaze media library.
- name: Taxonomy
description: The categories and tags used to classify MindMaze posts, including the EQS,
ad-hoc-news and other-ir-news disclosure categories.
- name: Discovery
description: 'Self-describing metadata: the API index, registered content types, taxonomies and
post statuses.'
- name: Search
description: Cross-content-type search over published mindmazetherapeutics.com content.
- name: oEmbed
description: oEmbed representation of a mindmazetherapeutics.com URL.
security:
- {}
paths:
/:
get:
operationId: getApiIndex
summary: Get the API index
description: The WordPress REST API discovery document - site name, description, URL, the
registered namespaces and every registered route with its methods, arguments and argument
schemas. This is the self-describing root this OpenAPI was derived from.
tags:
- Discovery
security:
- {}
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiIndex'
/wp/v2:
get:
operationId: getNamespaceIndex
summary: Get the wp/v2 namespace index
description: The route index scoped to the wp/v2 namespace.
tags:
- Discovery
security:
- {}
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/ApiIndex'
/wp/v2/posts:
get:
operationId: listPosts
summary: List posts
description: 'MindMaze Therapeutics news items. 450 published records on 2026-08-01. Filter
by category to isolate a disclosure stream: 24 = EQS ad-hoc news, 23 = EQS, 25 = Other IR
news, 8 = Press releases, 9 = In the media, 10 = Events, 11 = Testimonials, 16 = Products.'
tags:
- Posts
security:
- {}
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/orderby'
- $ref: '#/components/parameters/slug'
- $ref: '#/components/parameters/fields'
- name: categories
in: query
description: Limit result set to items assigned to the given category term ids.
schema:
type: array
items:
type: integer
style: form
explode: false
- name: tags
in: query
description: Limit result set to items assigned to the given tag term ids.
schema:
type: array
items:
type: integer
style: form
explode: false
responses:
'200':
description: Successful response.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
Link:
$ref: '#/components/headers/LinkPagination'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Post'
examples:
pressReleases:
summary: Three MindMaze press releases (category 8)
externalValue: ../examples/mindmaze-press-releases.json
eqsAdHoc:
summary: Three EQS ad-hoc regulatory announcements (category 24)
externalValue: ../examples/mindmaze-eqs-ad-hoc-news.json
'400':
$ref: '#/components/responses/InvalidParam'
/wp/v2/posts/{id}:
get:
operationId: getPost
summary: Get a post
description: Retrieve a single MindMaze news item, press release or regulatory announcement
by its numeric id.
tags:
- Posts
security:
- {}
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Post'
'404':
$ref: '#/components/responses/NotFound'
/wp/v2/pages:
get:
operationId: listPages
summary: List pages
description: Marketing, platform, product, research and investor-relations pages. 49 published
records on 2026-08-01.
tags:
- Pages
security:
- {}
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/orderby'
- $ref: '#/components/parameters/slug'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Successful response.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
Link:
$ref: '#/components/headers/LinkPagination'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Page'
'400':
$ref: '#/components/responses/InvalidParam'
/wp/v2/pages/{id}:
get:
operationId: getPage
summary: Get a page
description: Retrieve a single mindmazetherapeutics.com page by its numeric id.
tags:
- Pages
security:
- {}
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'404':
$ref: '#/components/responses/NotFound'
/wp/v2/media:
get:
operationId: listMedia
summary: List media
description: Images, PDFs and other files in the MindMaze media library, including investor
presentations and financial report attachments. 1,070 records on 2026-08-01.
tags:
- Media
security:
- {}
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/after'
- $ref: '#/components/parameters/before'
- $ref: '#/components/parameters/order'
- $ref: '#/components/parameters/orderby'
- $ref: '#/components/parameters/fields'
- name: media_type
in: query
description: Limit result set to attachments of a particular media type.
schema:
type: string
enum: [image, video, text, application, audio]
- name: mime_type
in: query
description: Limit result set to attachments of a particular MIME type.
schema:
type: string
responses:
'200':
description: Successful response.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
Link:
$ref: '#/components/headers/LinkPagination'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/MediaItem'
'400':
$ref: '#/components/responses/InvalidParam'
/wp/v2/media/{id}:
get:
operationId: getMediaItem
summary: Get a media item
description: Retrieve a single media library record by its numeric id.
tags:
- Media
security:
- {}
parameters:
- $ref: '#/components/parameters/id'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/MediaItem'
'404':
$ref: '#/components/responses/NotFound'
/wp/v2/categories:
get:
operationId: listCategories
summary: List categories
description: 'The 11 category terms used to classify MindMaze posts. The disclosure-bearing
terms are: eqs (309), eqs-ad-hoc (162), eqs-other-ir (147), in-the-media (92), press-releases
(27), events (17), testimonials (7), products (2).'
tags:
- Taxonomy
security:
- {}
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/slug'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Successful response.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Term'
examples:
categories:
summary: The 11 MindMaze post categories
externalValue: ../examples/mindmaze-categories.json
'400':
$ref: '#/components/responses/InvalidParam'
/wp/v2/categories/{id}:
get:
operationId: getCategory
summary: Get a category
description: Retrieve a single category term by its numeric id.
tags:
- Taxonomy
security:
- {}
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Term'
'404':
$ref: '#/components/responses/NotFound'
/wp/v2/tags:
get:
operationId: listTags
summary: List tags
description: Post tag terms. One term is registered on 2026-08-01.
tags:
- Taxonomy
security:
- {}
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- $ref: '#/components/parameters/search'
- $ref: '#/components/parameters/slug'
- $ref: '#/components/parameters/fields'
responses:
'200':
description: Successful response.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Term'
'400':
$ref: '#/components/responses/InvalidParam'
/wp/v2/tags/{id}:
get:
operationId: getTag
summary: Get a tag
description: Retrieve a single tag term by its numeric id.
tags:
- Taxonomy
security:
- {}
parameters:
- $ref: '#/components/parameters/id'
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Term'
'404':
$ref: '#/components/responses/NotFound'
/wp/v2/taxonomies:
get:
operationId: listTaxonomies
summary: List taxonomies
description: The registered taxonomies and the content types each applies to.
tags:
- Discovery
security:
- {}
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties:
$ref: '#/components/schemas/Taxonomy'
examples:
taxonomies:
summary: Registered taxonomies
externalValue: ../examples/mindmaze-taxonomies.json
/wp/v2/types:
get:
operationId: listContentTypes
summary: List content types
description: The registered content types and their REST base paths. MindMaze registers no
custom public post type - the corpus is core posts, pages and media.
tags:
- Discovery
security:
- {}
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties:
$ref: '#/components/schemas/ContentType'
examples:
types:
summary: Registered content types
externalValue: ../examples/mindmaze-content-types.json
/wp/v2/statuses:
get:
operationId: listStatuses
summary: List post statuses
description: The publicly queryable post statuses.
tags:
- Discovery
security:
- {}
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
additionalProperties:
type: object
/wp/v2/search:
get:
operationId: searchContent
summary: Search site content
description: Cross-content-type search over published mindmazetherapeutics.com content,
returning id, title, url, type and subtype for each hit.
tags:
- Search
security:
- {}
parameters:
- $ref: '#/components/parameters/page'
- $ref: '#/components/parameters/perPage'
- name: search
in: query
required: true
description: The search term.
schema:
type: string
- name: type
in: query
description: Limit results to items of an object type.
schema:
type: string
enum: [post, term, post-format]
- name: subtype
in: query
description: Limit results to items of one or more object subtypes.
schema:
type: string
responses:
'200':
description: Successful response.
headers:
X-WP-Total:
$ref: '#/components/headers/XWPTotal'
X-WP-TotalPages:
$ref: '#/components/headers/XWPTotalPages'
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SearchResult'
examples:
search:
summary: Search results for "stroke"
externalValue: ../examples/mindmaze-search.json
'400':
$ref: '#/components/responses/InvalidParam'
/oembed/1.0/embed:
get:
operationId: getOEmbed
summary: Get an oEmbed response
description: Returns the oEmbed representation of a mindmazetherapeutics.com URL.
tags:
- oEmbed
security:
- {}
parameters:
- name: url
in: query
required: true
description: The URL of the resource for which to fetch oEmbed data.
schema:
type: string
format: uri
- name: format
in: query
description: The oEmbed format to use.
schema:
type: string
enum: [json, xml]
default: json
- name: maxwidth
in: query
description: The maximum width of the embed frame in pixels.
schema:
type: integer
default: 600
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: object
'404':
$ref: '#/components/responses/NotFound'
components:
headers:
XWPTotal:
description: Total number of matching records.
schema:
type: integer
XWPTotalPages:
description: Total number of pages available.
schema:
type: integer
LinkPagination:
description: RFC 8288 Link header carrying rel="next" and rel="prev" page URLs.
schema:
type: string
parameters:
id:
name: id
in: path
required: true
description: Unique numeric identifier for the object.
schema:
type: integer
page:
name: page
in: query
description: Current page of the collection.
schema:
type: integer
default: 1
minimum: 1
perPage:
name: per_page
in: query
description: Maximum number of items to be returned in the result set.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
search:
name: search
in: query
description: Limit results to those matching a string.
schema:
type: string
after:
name: after
in: query
description: Limit response to posts published after a given ISO 8601 compliant date.
schema:
type: string
format: date-time
before:
name: before
in: query
description: Limit response to posts published before a given ISO 8601 compliant date.
schema:
type: string
format: date-time
order:
name: order
in: query
description: Order sort attribute ascending or descending.
schema:
type: string
enum: [asc, desc]
default: desc
orderby:
name: orderby
in: query
description: Sort collection by object attribute.
schema:
type: string
enum: [author, date, id, include, modified, parent, relevance, slug, title]
default: date
slug:
name: slug
in: query
description: Limit result set to items with one or more specific slugs.
schema:
type: array
items:
type: string
style: form
explode: false
fields:
name: _fields
in: query
description: Limit the fields returned in the response, as a comma-separated list.
schema:
type: string
example: id,date,slug,link,title,categories
responses:
InvalidParam:
description: One or more query parameters failed validation.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: rest_invalid_param
message: 'Invalid parameter(s): per_page'
data:
status: 400
params:
per_page: per_page must be between 1 (inclusive) and 100 (inclusive)
NotFound:
description: The requested object does not exist.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: rest_post_invalid_id
message: Invalid post ID.
data:
status: 404
schemas:
Error:
type: object
description: The WordPress REST API error envelope. Not RFC 9457 problem+json.
properties:
code:
type: string
description: Machine-readable error code.
message:
type: string
description: Human-readable error message.
data:
type: object
properties:
status:
type: integer
description: HTTP status code.
params:
type: object
description: Per-parameter validation messages, on rest_invalid_param.
details:
type: object
description: Per-parameter structured error detail, on rest_invalid_param.
required: [code, message, data]
Rendered:
type: object
description: A rendered content field.
properties:
rendered:
type: string
protected:
type: boolean
Post:
type: object
description: A MindMaze Therapeutics news item, press release or regulatory announcement.
properties:
id:
type: integer
date:
type: string
format: date-time
date_gmt:
type: string
format: date-time
modified:
type: string
format: date-time
slug:
type: string
status:
type: string
type:
type: string
link:
type: string
format: uri
title:
$ref: '#/components/schemas/Rendered'
content:
$ref: '#/components/schemas/Rendered'
excerpt:
$ref: '#/components/schemas/Rendered'
author:
type: integer
featured_media:
type: integer
categories:
type: array
items:
type: integer
tags:
type: array
items:
type: integer
Page:
type: object
description: A mindmazetherapeutics.com page.
properties:
id:
type: integer
date:
type: string
format: date-time
modified:
type: string
format: date-time
slug:
type: string
status:
type: string
type:
type: string
link:
type: string
format: uri
title:
$ref: '#/components/schemas/Rendered'
content:
$ref: '#/components/schemas/Rendered'
parent:
type: integer
menu_order:
type: integer
MediaItem:
type: object
description: A file in the MindMaze media library.
properties:
id:
type: integer
date:
type: string
format: date-time
slug:
type: string
link:
type: string
format: uri
title:
$ref: '#/components/schemas/Rendered'
media_type:
type: string
mime_type:
type: string
source_url:
type: string
format: uri
alt_text:
type: string
media_details:
type: object
post:
type: integer
description: The id of the post this media item is attached to.
Term:
type: object
description: A category or tag term.
properties:
id:
type: integer
count:
type: integer
description:
type: string
link:
type: string
format: uri
name:
type: string
slug:
type: string
taxonomy:
type: string
parent:
type: integer
Taxonomy:
type: object
properties:
name:
type: string
slug:
type: string
rest_base:
type: string
hierarchical:
type: boolean
types:
type: array
items:
type: string
ContentType:
type: object
properties:
name:
type: string
slug:
type: string
rest_base:
type: string
rest_namespace:
type: string
taxonomies:
type: array
items:
type: string
SearchResult:
type: object
properties:
id:
type: integer
title:
type: string
url:
type: string
format: uri
type:
type: string
subtype:
type: string
ApiIndex:
type: object
description: The WordPress REST API discovery document.
properties:
name:
type: string
description:
type: string
url:
type: string
format: uri
home:
type: string
format: uri
namespaces:
type: array
items:
type: string
authentication:
type: object
routes:
type: object