openapi: 3.1.0 info: title: Accelsius Media API version: wp/v2 summary: Public read surface of the accelsius.com media library. description: 'The `attachment` type — product photography and renders of the NeuCool IR150 and MR250 CDUs and cold plates, partner and customer logos, diagrams, and the PDF white papers, infographics and studies linked from accelsius.com/papers-studies/. Each object carries `source_url` for the original file and `media_details.sizes` for the generated variants. The library is organised with the HappyFiles taxonomy (see the Taxonomy API). At time of capture it held 903 attachments. Accelsius publishes accelsius.com on WordPress (WP Engine origin, Cloudflare edge, MalCare firewall) with the WordPress core REST API enabled and anonymously readable. This is NOT a product API that Accelsius offers to customers — Accelsius manufactures two-phase direct-to-chip liquid-cooling hardware and ships no developer program, SDK or product API. It is the content API behind the company marketing site, captured for discovery purposes. Anonymous access is read-only: the `Allow` response header on every collection is `GET`, and write operations require WordPress cookie authentication with an X-WP-Nonce header or an Application Password, returning HTTP 401 to anonymous callers.' contact: name: Accelsius url: https://accelsius.com/contact/ email: info@accelsius.com license: name: Site content - all rights reserved url: https://accelsius.com/privacy-policy/ x-apis-io-provenance: method: derived source: https://accelsius.com/wp-json/ derived_on: '2026-08-06' note: Parameters are transcribed verbatim from the `args` the site publishes for each route in its live WordPress route-discovery document at https://accelsius.com/wp-json/ (387 routes across 16 namespaces). Response schemas are derived from the field names and JSON types observed in live anonymous GET responses on 2026-08-06. Every collection operation documented here was probed anonymously and returned HTTP 200; routes that returned 401 without credentials (settings, menus, menu-items, templates, template-parts, themes, plugins, widgets, block-types, users/me) are deliberately omitted. No operation, parameter or field was invented, and no live response value is reproduced here as an example. x-provider-published: false servers: - url: https://accelsius.com/wp-json description: Production tags: - name: Media description: Images, renders, diagrams and PDF documents in the accelsius.com media library. paths: /wp/v2/media: get: tags: - Media operationId: listMedia summary: List media attachments description: Returns a paginated collection of attachments. Filter with `media_type` (image/file/video/audio) or `mime_type` (for example application/pdf to retrieve only the published white papers and studies). security: [] responses: '200': description: A page of results. 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': description: Invalid parameter (rest_invalid_param), e.g. per_page outside 1-100. content: application/json: schema: $ref: '#/components/schemas/WPError' parameters: - name: context in: query description: Scope under which the request is made; determines fields present in response. schema: type: string enum: - view - embed - edit default: view - name: page in: query description: Current page of the collection. schema: type: integer minimum: 1 default: 1 - name: per_page in: query description: Maximum number of items to be returned in result set. schema: type: integer minimum: 1 maximum: 100 default: 10 - name: search in: query description: Limit results to those matching a string. schema: type: string - name: after in: query description: Limit response to posts published after a given ISO8601 compliant date. schema: type: string format: date-time - name: modified_after in: query description: Limit response to posts modified after a given ISO8601 compliant date. schema: type: string format: date-time - name: author in: query description: Limit result set to posts assigned to specific authors. schema: type: array items: type: integer - name: author_exclude in: query description: Ensure result set excludes posts assigned to specific authors. schema: type: array items: type: integer - name: before in: query description: Limit response to posts published before a given ISO8601 compliant date. schema: type: string format: date-time - name: modified_before in: query description: Limit response to posts modified before a given ISO8601 compliant date. schema: type: string format: date-time - name: exclude in: query description: Ensure result set excludes specific IDs. schema: type: array items: type: integer - name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer - name: search_semantics in: query description: How to interpret the search input. schema: type: string enum: - exact - name: offset in: query description: Offset the result set by a specific number of items. schema: type: integer - name: order in: query description: Order sort attribute ascending or descending. schema: type: string enum: - asc - desc default: desc - name: orderby in: query description: Sort collection by post attribute. schema: type: string enum: - author - date - id - include - modified - parent - relevance - slug - include_slugs - title default: date - name: parent in: query description: Limit result set to items with particular parent IDs. schema: type: array items: type: integer - name: parent_exclude in: query description: Limit result set to all items except those of a particular parent ID. schema: type: array items: type: integer - name: search_columns in: query description: Array of column names to be searched. schema: type: array items: type: string enum: - post_title - post_content - post_excerpt - name: slug in: query description: Limit result set to posts with one or more specific slugs. schema: type: array items: type: string - name: status in: query description: Limit result set to posts assigned one or more statuses. schema: type: array default: inherit items: type: string enum: - inherit - private - trash - name: tax_relation in: query description: Limit result set based on relationship between multiple taxonomies. schema: type: string enum: - AND - OR - name: happyfiles_category in: query description: Limit result set to items with specific terms assigned in the happyfiles_category taxonomy. schema: type: object - name: happyfiles_category_exclude in: query description: Limit result set to items except those with specific terms assigned in the happyfiles_category taxonomy. schema: type: object - name: media_type in: query description: Limit result set to attachments of a particular media type or media types. schema: type: array default: null items: type: string enum: - image - video - text - application - audio - name: mime_type in: query description: Limit result set to attachments of a particular MIME type or MIME types. schema: type: array default: null items: type: string x-observed-total: '903' /wp/v2/media/{id}: get: tags: - Media operationId: getMediaItem summary: Get one media attachment description: Returns a single attachment by its numeric ID, including `source_url` and the full `media_details` size map. security: [] parameters: - name: id in: path description: Unique identifier for the post. required: true schema: type: integer - name: context in: query description: Scope under which the request is made; determines fields present in response. schema: type: string enum: - view - embed - edit default: view responses: '200': description: The requested object. content: application/json: schema: $ref: '#/components/schemas/MediaItem' '400': description: Invalid parameter (rest_invalid_param). content: application/json: schema: $ref: '#/components/schemas/WPError' '404': description: No object exists with that identifier (rest_post_invalid_id / rest_term_invalid). content: application/json: schema: $ref: '#/components/schemas/WPError' components: securitySchemes: applicationPassword: type: http scheme: basic description: WordPress Application Passwords over HTTP Basic. Advertised by the site at https://accelsius.com/wp-json/ under `authentication.application-passwords`. Every operation documented in this file is anonymous and takes no credential; this scheme is declared because it is the only credential the host accepts, and it governs the write and edit-context operations that are deliberately NOT documented here. schemas: WPError: type: object title: WPError description: The WordPress REST error envelope. It is NOT RFC 9457 problem+json — the media type is application/json and the shape is a flat object carrying a machine-readable `code` slug, a human `message`, and a `data` object repeating the HTTP status. properties: code: type: string description: Machine-readable error slug, e.g. rest_post_invalid_id. message: type: string description: Human-readable error message. data: type: object properties: status: type: integer description: HTTP status repeated in the body. required: - code - message MediaItem: type: object title: MediaItem description: An attachment in the accelsius.com media library. properties: id: type: integer description: Unique numeric identifier for the object. date: type: string format: date-time description: Publication date in the site timezone (America/Chicago, GMT-5). date_gmt: type: string format: date-time description: Publication date as GMT. guid: type: object properties: rendered: type: string format: uri description: The globally unique identifier WordPress assigns the object. modified: type: string format: date-time description: Date the object was last modified, in the site timezone. modified_gmt: type: string format: date-time description: Date the object was last modified, as GMT. slug: type: string description: Alphanumeric identifier for the object, unique within its type. status: type: string description: Named publication status. Anonymous reads only ever return "publish". type: type: string description: Post type of the object. link: type: string format: uri description: Canonical URL of the object on accelsius.com. title: type: object properties: rendered: type: string description: Title of the object, rendered to HTML. author: type: integer description: ID of the author of the object. Resolve against /wp/v2/users/{id}. featured_media: type: integer description: ID of the featured attachment. Resolve against /wp/v2/media/{id}. comment_status: type: string description: Whether comments are open on the object. ping_status: type: string description: Whether the object accepts pingbacks. template: type: string description: Theme file used to display the object. meta: type: object properties: _acf_changed: type: boolean content-type: type: string description: Registered meta fields exposed for the object. happyfiles_category: type: array items: {} class_list: type: array items: type: string description: CSS class names WordPress generates for the object. acf: type: array items: {} description: Advanced Custom Fields values registered on this post type by the site. description: type: object properties: rendered: type: string description: Description of the object, rendered to HTML. caption: type: object properties: rendered: type: string description: Attachment caption, rendered to HTML. alt_text: type: string description: Alternative text for the attachment. media_type: type: string description: 'Attachment class: image, file, video or audio.' mime_type: type: string description: MIME type of the attachment. media_details: type: object properties: sizes: type: object properties: full: type: object properties: file: type: string width: type: integer height: type: integer mime_type: type: string source_url: type: string format: uri medium: type: object properties: file: type: string width: type: integer height: type: integer filesize: type: integer mime_type: type: string source_url: type: string format: uri thumbnail: type: object properties: file: type: string width: type: integer height: type: integer filesize: type: integer mime_type: type: string source_url: type: string format: uri filesize: type: integer description: Attachment metadata including the generated size variants. post: description: ID of the post the attachment is associated with. source_url: type: string format: uri description: URL of the original attachment file. filename: type: string filesize: type: integer _links: type: object properties: self: type: array items: type: object properties: href: type: string format: uri targetHints: type: object properties: allow: {} collection: type: array items: type: object properties: href: type: string format: uri about: type: array items: type: object properties: href: type: string format: uri author: type: array items: type: object properties: embeddable: type: boolean href: type: string format: uri replies: type: array items: type: object properties: embeddable: type: boolean href: type: string format: uri wp:term: type: array items: type: object properties: taxonomy: type: string embeddable: type: boolean href: type: string format: uri curies: type: array items: type: object properties: name: type: string href: type: string format: uri templated: type: boolean description: HAL-style link relations (self, collection, author, wp:term, wp:featuredmedia). required: - id - link - slug headers: XWPTotal: description: Total number of items in the unpaginated collection. schema: type: integer XWPTotalPages: description: Total number of pages at the requested per_page size. schema: type: integer LinkPagination: description: RFC 8288 Link header carrying rel="next" and rel="prev" for the collection. schema: type: string