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