Arbor Biotechnologies Media API

The media library.

Operations 2

GET /wp/v2/media List media items #
GET /wp/v2/media/{id} Get a media item #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/arbor-biotechnologies-media-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

arbor-biotechnologies-media-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Arbor Biotechnologies Content API (WordPress REST) Media API
  version: 1.0.0
  summary: Read-only, anonymously accessible content API served by the Arbor Biotechnologies corporate site.
  description: 'Arbor Biotechnologies publishes no product or developer API. This document was DERIVED by API Evangelist from the live WordPress REST route index at https://arbor.bio/wp-json (18 namespaces, 341 declared routes) on 2026-07-31, and reduced to only those operations that were individually probed WITHOUT credentials and observed returning HTTP 200.


    It is an incidental content-management surface, not a supported API product: Arbor issues no keys, publishes no developer documentation, offers no support channel for it, and its terms of use do not mention API access. Every write, administrative and site-configuration route declared in the route index is excluded here because anonymous callers receive 401 (`rest_forbidden`, `rest_cannot_view_plugins`, `rest_cannot_view_themes`, `rest_user_cannot_view`) or 403 (`rest_comment_disabled`).


    Observed collection sizes on 2026-07-31: 59 posts (press releases, 2018-2026), 11 pages, 11 categories, 0 tags, 394 media items reported by X-WP-Total of which 4 are returned to anonymous callers, 60 searchable objects, 1 contact form.'
  contact:
    name: Arbor Biotechnologies
    url: https://arbor.bio/get-in-touch/
  license:
    name: Proprietary — see Arbor Biotechnologies Terms of Use
    url: https://arbor.bio/terms-of-use/
  x-derived-by: API Evangelist enrichment pipeline
  x-derived-from: https://arbor.bio/wp-json
  x-derived-on: '2026-07-31'
  x-provider-published: false
  x-api-posture: incidental-cms-surface
servers:
- url: https://arbor.bio/wp-json
  description: Production WordPress REST API on the Arbor Biotechnologies corporate site.
security: []
tags:
- name: media
  description: The media library.
paths:
  /wp/v2/media:
    get:
      operationId: listMedia
      summary: List media items
      description: List media library items. X-WP-Total reported 394 on 2026-07-31, but anonymous callers were returned only 4 items — the site restricts most of the library to authenticated users, so the header count and the visible body disagree by design.
      tags:
      - media
      parameters:
      - $ref: '#/components/parameters/page'
      - $ref: '#/components/parameters/perPage'
      - $ref: '#/components/parameters/search'
      - $ref: '#/components/parameters/fields'
      - name: media_type
        in: query
        description: Limit to a media type.
        schema:
          type: string
          enum:
          - image
          - video
          - text
          - application
          - audio
          - file
      responses:
        '200':
          description: A page of media items.
          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/Media'
        '400':
          $ref: '#/components/responses/InvalidParam'
  /wp/v2/media/{id}:
    get:
      operationId: getMedia
      summary: Get a media item
      description: Retrieve a single media item by its integer id.
      tags:
      - media
      parameters:
      - $ref: '#/components/parameters/idPath'
      - $ref: '#/components/parameters/fields'
      responses:
        '200':
          description: The media item.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Media'
        '404':
          $ref: '#/components/responses/InvalidPostId'
components:
  schemas:
    Error:
      type: object
      description: The WordPress REST error envelope. This is NOT RFC 9457 Problem Details — the media type is application/json, there is no `type` URI, and the HTTP status is repeated inside `data.status`.
      required:
      - code
      - message
      - data
      properties:
        code:
          type: string
          description: Machine-readable error code
          e.g. rest_post_invalid_id.: null
        message:
          type: string
          description: Human-readable message.
        data:
          type: object
          properties:
            status:
              type: integer
            params:
              type: object
            details:
              type: object
    Links:
      type: object
      description: HAL-style relation map (self, collection, about, author, wp:featuredmedia, wp:attachment, wp:term, replies). Appending `_embed` inlines these under `_embedded`.
      additionalProperties:
        type: array
        items:
          type: object
          properties:
            href:
              type: string
              format: uri
            embeddable:
              type: boolean
            templated:
              type: boolean
    Media:
      type: object
      description: A media library item.
      properties:
        id:
          type: integer
        date:
          type: string
          format: date-time
        slug:
          type: string
        type:
          type: string
          const: attachment
        link:
          type: string
          format: uri
        title:
          $ref: '#/components/schemas/RenderedText'
        author:
          type: integer
        media_type:
          type: string
          enum:
          - image
          - file
        mime_type:
          type: string
        source_url:
          type: string
          format: uri
          description: Direct URL to the original file.
        alt_text:
          type: string
        caption:
          $ref: '#/components/schemas/RenderedText'
        media_details:
          type: object
          description: Width
          height and the generated size variants.: null
        post:
          type:
          - integer
          - 'null'
          description: The object this file was uploaded to.
        _links:
          $ref: '#/components/schemas/Links'
    RenderedText:
      type: object
      description: WordPress renders text fields into an object with a `rendered` HTML string.
      properties:
        rendered:
          type: string
  parameters:
    search:
      name: search
      in: query
      description: Limit results to those matching a string.
      schema:
        type: string
    perPage:
      name: per_page
      in: query
      description: Items per page. The server rejects values outside 1-100 with HTTP 400.
      schema:
        type: integer
        minimum: 1
        maximum: 100
        default: 10
    idPath:
      name: id
      in: path
      required: true
      description: Integer object id.
      schema:
        type: integer
    page:
      name: page
      in: query
      description: 1-based page number.
      schema:
        type: integer
        minimum: 1
        default: 1
    fields:
      name: _fields
      in: query
      description: Comma-separated allowlist of response fields. Strongly recommended — a full post object carries rendered HTML content plus a `yoast_head` block and is large.
      schema:
        type: string
      example: id,date,slug,link,title
  responses:
    InvalidPostId:
      description: No object exists with that id, or it is not publicly readable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
          example:
            code: rest_post_invalid_id
            message: Invalid post ID.
            data:
              status: 404
    InvalidParam:
      description: A query parameter 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)
  headers:
    XWPTotalPages:
      description: Total number of pages available at the current per_page.
      schema:
        type: integer
    XWPTotal:
      description: Total number of items in the collection, before pagination.
      schema:
        type: integer
  securitySchemes:
    applicationPassword:
      type: http
      scheme: basic
      description: WordPress application passwords (HTTP Basic per RFC 7617), advertised by the site's own route index. Required only for the write and administrative routes, none of which appear in this document. Arbor Biotechnologies issues no public credentials, so this scheme is declared by the platform but unreachable for third parties.
externalDocs:
  description: WordPress REST API handbook — the upstream reference for these routes and parameters.
  url: https://developer.wordpress.org/rest-api/reference/