Strata Oncology Publications API
Press releases and published research.
Press releases and published research.
openapi: 3.2.0
info:
title: Strata Oncology Website Content Publications API
version: wp/v2
summary: Public, anonymous, read-only content API behind strataoncology.com.
description: 'The public read surface of the WordPress REST API that powers strataoncology.com, plus the two custom `api` namespace endpoints the site theme calls to render its News & Publications and Resources pages.
This is the website''s content API, not a clinical or laboratory API. Strata Oncology''s clinical ordering and results surface is the login-gated Strata Request Portal (https://portal.strataoncology.com/), and its EHR integration ships as the Strata Assistant app in the Epic App Orchard; neither publishes a public machine-readable contract.
This document was DERIVED by API Evangelist from the live WordPress REST discovery document at https://strataoncology.com/wp-json/ on 2026-08-02. Every path, parameter name, type, default and enum is read from that document. Only the anonymous-readable GET surface is described here; the discovery document also registers POST/PUT/PATCH/DELETE methods on these collections, but those require WordPress authentication and were not exercised.'
contact:
name: Strata Oncology
url: https://strataoncology.com/contact-us/
x-derived-from: https://strataoncology.com/wp-json/
x-derived-by: API Evangelist enrichment pipeline
x-derived-on: '2026-08-02'
servers:
- url: https://strataoncology.com/wp-json
description: Production
tags:
- name: Publications
description: Press releases and published research.
paths:
/publications:
get:
operationId: listPublications
summary: List publications
description: Press releases and published research listings. Returns a JSON array; total count and page count are returned in the X-WP-Total and X-WP-TotalPages response headers and the next/prev page in Link.
tags:
- Publications
parameters:
- name: after
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts published after a given ISO8601 compliant date.
- name: before
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts published before a given ISO8601 compliant date.
- name: exclude
in: query
required: false
schema:
type: array
items:
type: integer
default: []
description: Ensure result set excludes specific IDs.
- name: include
in: query
required: false
schema:
type: array
items:
type: integer
default: []
description: Limit result set to specific IDs.
- name: modified_after
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts modified after a given ISO8601 compliant date.
- name: modified_before
in: query
required: false
schema:
type: string
format: date-time
description: Limit response to posts modified before a given ISO8601 compliant date.
- name: offset
in: query
required: false
schema:
type: integer
description: Offset the result set by a specific number of items.
- name: order
in: query
required: false
schema:
type: string
enum:
- asc
- desc
default: desc
description: Order sort attribute ascending or descending.
- name: orderby
in: query
required: false
schema:
type: string
enum:
- author
- date
- id
- include
- modified
- parent
- relevance
- slug
- include_slugs
- title
default: date
description: Sort collection by post attribute.
- name: page
in: query
required: false
schema:
type: integer
default: 1
minimum: 1
description: Current page of the collection.
- name: per_page
in: query
required: false
schema:
type: integer
default: 10
minimum: 1
maximum: 100
description: Maximum number of items to be returned in result set.
- name: publication_type
in: query
required: false
schema:
type: object
description: Limit result set to items with specific terms assigned in the publication_type taxonomy.
- name: publication_type_exclude
in: query
required: false
schema:
type: object
description: Limit result set to items except those with specific terms assigned in the publication_type taxonomy.
- name: search
in: query
required: false
schema:
type: string
description: Limit results to those matching a string.
- name: search_columns
in: query
required: false
schema:
type: array
items:
type: string
enum:
- post_title
- post_content
- post_excerpt
default: []
description: Array of column names to be searched.
- name: search_semantics
in: query
required: false
schema:
type: string
enum:
- exact
description: How to interpret the search input.
- name: slug
in: query
required: false
schema:
type: array
items:
type: string
description: Limit result set to posts with one or more specific slugs.
- name: status
in: query
required: false
schema:
type: array
items:
type: string
enum:
- publish
- future
- draft
- pending
- private
- trash
- auto-draft
- inherit
- request-pending
- request-confirmed
- request-failed
- request-completed
- acf-disabled
- dp-rewrite-republish
- email_sent
- email_failed
- email_scheduled
- any
default: publish
description: Limit result set to posts assigned one or more statuses.
- name: tax_relation
in: query
required: false
schema:
type: string
enum:
- AND
- OR
description: Limit result set based on relationship between multiple taxonomies.
responses:
'200':
description: A page of publications.
headers:
X-WP-Total:
description: Total number of matching items.
schema:
type: integer
X-WP-TotalPages:
description: Total number of pages.
schema:
type: integer
Link:
description: RFC 8288 next/prev page links.
schema:
type: string
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/ContentItem'
'400':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
/publications/{id}:
get:
operationId: getPublication
summary: Get a single publication
description: Retrieve one publication by its numeric identifier.
tags:
- Publications
parameters:
- name: id
in: path
required: true
description: Unique identifier for the publication.
schema:
type: integer
responses:
'200':
description: The requested publication.
content:
application/json:
schema:
$ref: '#/components/schemas/ContentItem'
'401':
$ref: '#/components/responses/Error'
'404':
$ref: '#/components/responses/Error'
/api/publications:
get:
operationId: themePublications
summary: Theme endpoint powering the News & Publications page
description: 'Theme endpoint powering the News & Publications page: paged sections of press releases and publications. Takes no query parameters; paging is expressed inside the response sections.'
tags:
- Publications
parameters: []
responses:
'200':
description: A sectioned, paged content payload.
content:
application/json:
schema:
$ref: '#/components/schemas/ThemeSectionsResponse'
'404':
$ref: '#/components/responses/Error'
components:
schemas:
ThemeSectionsResponse:
type: object
description: Envelope returned by the custom `api` namespace endpoints.
properties:
success:
type: boolean
description: Whether the request succeeded.
data:
type: object
properties:
layout:
type: string
description: Layout key used by the theme.
sections:
type: array
description: Content sections, each independently paged.
items:
$ref: '#/components/schemas/ThemeSection'
ThemeSection:
type: object
description: One paged content section.
properties:
name:
type: string
description: Section display name.
btnText:
type: string
description: Call-to-action label.
btnParam:
type: string
description: Slug the CTA filters on.
currentPage:
type: integer
description: Current page number.
totalPosts:
type: integer
description: Total items in the section.
totalPages:
type: integer
description: Total pages in the section.
postsPerPage:
type: integer
description: Items returned per page.
posts:
type: array
description: Items on this page.
items:
type: object
properties:
title:
type: string
content:
type: string
permalink:
type: string
format: uri
Error:
type: object
description: WordPress REST error envelope, as observed live.
properties:
code:
type: string
description: Machine-readable error code, e.g. rest_no_route.
message:
type: string
description: Human-readable message.
data:
type: object
description: Error detail.
properties:
status:
type: integer
description: HTTP status code.
required:
- code
- message
ContentItem:
type: object
description: A WordPress REST content object. Fields observed on live anonymous responses.
properties:
id:
type: integer
description: Unique identifier.
date:
type: string
description: Publication date in the site's timezone.
date_gmt:
type: string
description: Publication date as GMT.
modified:
type: string
description: Last modification date in the site's timezone.
modified_gmt:
type: string
description: Last modification date as GMT.
slug:
type: string
description: Alphanumeric identifier unique to its type.
status:
type: string
description: Named status.
type:
type: string
description: Content type name.
link:
type: string
format: uri
description: Public URL of the item.
guid:
type: object
description: Globally unique identifier.
properties:
rendered:
type: string
title:
type: object
description: Item title.
properties:
rendered:
type: string
content:
type: object
description: Item content.
properties:
rendered:
type: string
protected:
type: boolean
excerpt:
type: object
description: Item excerpt.
properties:
rendered:
type: string
protected:
type: boolean
featured_media:
type: integer
description: Featured media item id.
_links:
type: object
description: HAL-style hypermedia links to related resources.
required:
- id
- slug
- type
- link
responses:
Error:
description: Error response using the WordPress REST error envelope.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
code: rest_no_route
message: No route was found matching the URL and request method.
data:
status: 404