Starfish Space Pages API
Static pages (The Otter, Company, Missions, Careers, Contact).
Static pages (The Otter, Company, Missions, Careers, Contact).
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/starfish-space-pages-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
title: Starfish Space Website Content API (WordPress REST v2) Pages API
version: '2'
description: 'The public WordPress REST API served by Starfish Space at https://www.starfishspace.com/wp-json/wp/v2. Starfish Space is a Tukwila, Washington satellite-servicing company building the Otter spacecraft; this API is the content interface behind starfishspace.com (news/press releases, pages, media, taxonomies), not a spacecraft, telemetry or mission-data API. Read operations are available anonymously; write operations require an authenticated WordPress user.
This document was DERIVED by API Evangelist from documents the API itself publishes: the machine-readable route index at /wp-json/wp/v2 and the item JSON Schemas returned by HTTP OPTIONS on each collection route. No paths, parameters or schema properties were invented.'
contact:
name: Starfish Space
url: https://www.starfishspace.com/contact/
x-derived-from:
- https://www.starfishspace.com/wp-json/wp/v2
- https://www.starfishspace.com/wp-json/wp/v2/{resource} (HTTP OPTIONS)
servers:
- url: https://www.starfishspace.com/wp-json
description: Production
tags:
- name: pages
description: Static pages (The Otter, Company, Missions, Careers, Contact).
paths:
/wp/v2/pages:
get:
operationId: listPages
tags:
- pages
summary: List pages
description: Retrieve a collection of pages from the Starfish Space WordPress REST API.
parameters:
- name: context
in: query
required: false
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
required: false
description: Current page of the collection.
schema:
type: integer
default: 1
minimum: 1
- name: per_page
in: query
required: false
description: Maximum number of items to be returned in result set.
schema:
type: integer
default: 10
minimum: 1
maximum: 100
- name: search
in: query
required: false
description: Limit results to those matching a string.
schema:
type: string
- name: after
in: query
required: false
description: Limit response to posts published after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: modified_after
in: query
required: false
description: Limit response to posts modified after a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: author
in: query
required: false
description: Limit result set to posts assigned to specific authors.
schema:
type: array
items:
type: integer
default: []
- name: author_exclude
in: query
required: false
description: Ensure result set excludes posts assigned to specific authors.
schema:
type: array
items:
type: integer
default: []
- name: before
in: query
required: false
description: Limit response to posts published before a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: modified_before
in: query
required: false
description: Limit response to posts modified before a given ISO8601 compliant date.
schema:
type: string
format: date-time
- name: exclude
in: query
required: false
description: Ensure result set excludes specific IDs.
schema:
type: array
items:
type: integer
default: []
- name: include
in: query
required: false
description: Limit result set to specific IDs.
schema:
type: array
items:
type: integer
default: []
- name: menu_order
in: query
required: false
description: Limit result set to posts with a specific menu_order value.
schema:
type: integer
- name: search_semantics
in: query
required: false
description: How to interpret the search input.
schema:
type: string
enum:
- exact
- name: offset
in: query
required: false
description: Offset the result set by a specific number of items.
schema:
type: integer
- name: order
in: query
required: false
description: Order sort attribute ascending or descending.
schema:
type: string
default: desc
enum:
- asc
- desc
- name: orderby
in: query
required: false
description: Sort collection by post attribute.
schema:
type: string
default: date
enum:
- author
- date
- id
- include
- modified
- parent
- relevance
- slug
- include_slugs
- title
- menu_order
- name: parent
in: query
required: false
description: Limit result set to items with particular parent IDs.
schema:
type: array
items:
type: integer
default: []
- name: parent_exclude
in: query
required: false
description: Limit result set to all items except those of a particular parent ID.
schema:
type: array
items:
type: integer
default: []
- name: search_columns
in: query
required: false
description: Array of column names to be searched.
schema:
default: []
type: array
items:
enum:
- post_title
- post_content
- post_excerpt
type: string
- name: slug
in: query
required: false
description: Limit result set to posts with one or more specific slugs.
schema:
type: array
items:
type: string
- name: status
in: query
required: false
description: Limit result set to posts assigned one or more statuses.
schema:
default: publish
type: array
items:
enum:
- publish
- future
- draft
- pending
- private
- trash
- auto-draft
- inherit
- request-pending
- request-confirmed
- request-failed
- request-completed
- acf-disabled
- any
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Page'
'400':
description: Invalid parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'403':
description: Not allowed for the current user.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'404':
description: No route or resource matched the request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
post:
operationId: createPages
tags:
- pages
summary: Create or update pages
description: Create or update a page via the Starfish Space WordPress REST API. Requires an authenticated WordPress user with sufficient capabilities.
parameters: []
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'400':
description: Invalid parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'403':
description: Not allowed for the current user.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'404':
description: No route or resource matched the request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
date:
type:
- string
- 'null'
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type:
- string
- 'null'
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
properties:
raw:
description: Title for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML title for the post, transformed for display.
type: string
context:
- view
- edit
- embed
readonly: true
description: The title for the post.
content:
type: object
properties:
raw:
description: Content for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML content for the post, transformed for display.
type: string
context:
- view
- edit
readonly: true
block_version:
description: Version of the content block format used by the post.
type: integer
context:
- edit
readonly: true
protected:
description: Whether the content is protected with a password.
type: boolean
context:
- view
- edit
- embed
readonly: true
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
properties:
raw:
description: Excerpt for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML excerpt for the post, transformed for display.
type: string
context:
- view
- edit
- embed
readonly: true
protected:
description: Whether the excerpt is protected with a password.
type: boolean
context:
- view
- edit
- embed
readonly: true
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
properties:
footnotes:
type: string
title: ''
description: ''
default: ''
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
security:
- basicAuth: []
- cookieNonce: []
/wp/v2/pages/{id}:
get:
operationId: getPagesById
tags:
- pages
summary: Retrieve a single page
description: Retrieve a single page by route parameter from the Starfish Space WordPress REST API.
parameters:
- name: id
in: path
required: true
description: WordPress route parameter id.
schema:
type: integer
- name: context
in: query
required: false
description: Scope under which the request is made; determines fields present in response.
schema:
type: string
enum:
- view
- embed
- edit
default: view
- name: excerpt_length
in: query
required: false
description: Override the default excerpt length.
schema:
type: integer
- name: password
in: query
required: false
description: The password for the post if it is password protected.
schema:
type: string
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'400':
description: Invalid parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'403':
description: Not allowed for the current user.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'404':
description: No route or resource matched the request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
post:
operationId: createPagesById
tags:
- pages
summary: Create or update page
description: Create or update a page via the Starfish Space WordPress REST API. Requires an authenticated WordPress user with sufficient capabilities.
parameters:
- name: id
in: path
required: true
description: WordPress route parameter id.
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'400':
description: Invalid parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'403':
description: Not allowed for the current user.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'404':
description: No route or resource matched the request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
date:
type:
- string
- 'null'
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type:
- string
- 'null'
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
properties:
raw:
description: Title for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML title for the post, transformed for display.
type: string
context:
- view
- edit
- embed
readonly: true
description: The title for the post.
content:
type: object
properties:
raw:
description: Content for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML content for the post, transformed for display.
type: string
context:
- view
- edit
readonly: true
block_version:
description: Version of the content block format used by the post.
type: integer
context:
- edit
readonly: true
protected:
description: Whether the content is protected with a password.
type: boolean
context:
- view
- edit
- embed
readonly: true
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
properties:
raw:
description: Excerpt for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML excerpt for the post, transformed for display.
type: string
context:
- view
- edit
- embed
readonly: true
protected:
description: Whether the excerpt is protected with a password.
type: boolean
context:
- view
- edit
- embed
readonly: true
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
properties:
footnotes:
type: string
title: ''
description: ''
default: ''
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
security:
- basicAuth: []
- cookieNonce: []
put:
operationId: updatePagesById
tags:
- pages
summary: Update page
description: Update a page via the Starfish Space WordPress REST API. Requires an authenticated WordPress user with sufficient capabilities.
parameters:
- name: id
in: path
required: true
description: WordPress route parameter id.
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'400':
description: Invalid parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'403':
description: Not allowed for the current user.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'404':
description: No route or resource matched the request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
date:
type:
- string
- 'null'
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type:
- string
- 'null'
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publish
- future
- draft
- pending
- private
- acf-disabled
description: A named status for the post.
password:
type: string
description: A password to protect access to the content and excerpt.
parent:
type: integer
description: The ID for the parent of the post.
title:
type: object
properties:
raw:
description: Title for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML title for the post, transformed for display.
type: string
context:
- view
- edit
- embed
readonly: true
description: The title for the post.
content:
type: object
properties:
raw:
description: Content for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML content for the post, transformed for display.
type: string
context:
- view
- edit
readonly: true
block_version:
description: Version of the content block format used by the post.
type: integer
context:
- edit
readonly: true
protected:
description: Whether the content is protected with a password.
type: boolean
context:
- view
- edit
- embed
readonly: true
description: The content for the post.
author:
type: integer
description: The ID for the author of the post.
excerpt:
type: object
properties:
raw:
description: Excerpt for the post, as it exists in the database.
type: string
context:
- edit
rendered:
description: HTML excerpt for the post, transformed for display.
type: string
context:
- view
- edit
- embed
readonly: true
protected:
description: Whether the excerpt is protected with a password.
type: boolean
context:
- view
- edit
- embed
readonly: true
description: The excerpt for the post.
featured_media:
type: integer
description: The ID of the featured media for the post.
comment_status:
type: string
enum:
- open
- closed
description: Whether or not comments are open on the post.
ping_status:
type: string
enum:
- open
- closed
description: Whether or not the post can be pinged.
menu_order:
type: integer
description: The order of the post in relation to other posts.
meta:
type: object
properties:
footnotes:
type: string
title: ''
description: ''
default: ''
description: Meta fields.
template:
type: string
description: The theme file to use to display the post.
security:
- basicAuth: []
- cookieNonce: []
patch:
operationId: updatePagesById2
tags:
- pages
summary: Update page
description: Update a page via the Starfish Space WordPress REST API. Requires an authenticated WordPress user with sufficient capabilities.
parameters:
- name: id
in: path
required: true
description: WordPress route parameter id.
schema:
type: integer
responses:
'200':
description: Successful response.
content:
application/json:
schema:
$ref: '#/components/schemas/Page'
'400':
description: Invalid parameter.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'401':
description: Authentication required.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'403':
description: Not allowed for the current user.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
'404':
description: No route or resource matched the request.
content:
application/json:
schema:
$ref: '#/components/schemas/RestError'
requestBody:
required: false
content:
application/json:
schema:
type: object
properties:
date:
type:
- string
- 'null'
format: date-time
description: The date the post was published, in the site's timezone.
date_gmt:
type:
- string
- 'null'
format: date-time
description: The date the post was published, as GMT.
slug:
type: string
description: An alphanumeric identifier for the post unique to its type.
status:
type: string
enum:
- publ
# --- truncated at 32 KB (64 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/starfish-space/refs/heads/main/openapi/starfish-space-pages-api-openapi.yml