Accelsius Media API

Public read access to the 903-item accelsius.com media library - NeuCool product renders and photography, thermal diagrams, partner and customer logos, and the PDF white papers, studies and infographics linked from https://accelsius.com/papers-studies/. Each attachment carries source_url for the original file and media_details.sizes for the generated variants, and is organised by the HappyFiles folder taxonomy. Filter with mime_type=application/pdf to reach the document set. Anonymous and read-only.

OpenAPI Specification

accelsius-media-api-openapi.yml Raw ↑
openapi: 3.2.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:
  schemas:
    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
    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
  headers:
    LinkPagination:
      description: RFC 8288 Link header carrying rel="next" and rel="prev" for the collection.
      schema:
        type: string
    XWPTotalPages:
      description: Total number of pages at the requested per_page size.
      schema:
        type: integer
    XWPTotal:
      description: Total number of items in the unpaginated collection.
      schema:
        type: integer
  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.