openapi: 3.1.0 info: title: KSQ Therapeutics Press Releases API version: wp/v2 summary: Anonymously readable WordPress REST content surface behind ksqtx.com. description: The read-only content surface KSQ Therapeutics exposes at https://ksqtx.com/wp-json. KSQ Therapeutics is a clinical-stage biotechnology company in Lexington, Massachusetts that applies genome-scale CRISPR/Cas9 functional genomic screening — its CRISPRomics platform — to identify therapeutic targets, and develops CRISPR/Cas9-engineered tumor-infiltrating lymphocyte (eTIL) therapies and small molecules in oncology. It runs no developer program and markets no product API. This document is an API Evangelist derivation of the WordPress REST route index the site publishes at /wp-json/, restricted to operations verified to return data anonymously on 2026-08-23. Every parameter below appears verbatim in that route index under the endpoint args. Write operations and the whole administrative surface — /wp/v2/settings, /wp/v2/users, /wp/v2/plugins, /wp/v2/themes, and the aioseo/v1, cky/v1, redirection/v1, divi/v1, wp-block-editor/v1, wp-site-health/v1 and wp-abilities/v1 namespaces — return HTTP 401 rest_forbidden anonymously and are deliberately excluded. contact: name: KSQ Therapeutics url: https://ksqtx.com/ email: info@ksqtx.com x-api-evangelist-provenance: 'Derived by the API Evangelist enrichment pipeline on 2026-08-23 from the live WordPress REST route index at https://ksqtx.com/wp-json/ (349 routes across 9 namespaces: oembed/1.0, aioseo/v1, cky/v1, redirection/v1, divi/v1, wp/v2, wp-site-health/v1, wp-block-editor/v1, wp-abilities/v1) and verified against live anonymous responses on that date. Collection counts quoted in descriptions were read from the X-WP-Total response header. KSQ Therapeutics publishes no OpenAPI, no developer documentation and no API reference for this surface; the humanURL in apis.yml points at the upstream WordPress REST handbook that defines the wp/v2 contract. Nothing here was obtained with credentials.' servers: - url: https://ksqtx.com/wp-json description: Production content API tags: - name: press_release description: Press Releases API operations on the ksqtx.com WordPress deployment. paths: /wp/v2/press_release: get: tags: - press_release operationId: listPressReleases summary: List press releases description: Lists the press_release custom post type — the KSQ Therapeutics news archive. 39 items returned anonymously on 2026-08-23 (X-WP-Total), spanning the Takeda and Ono collaborations, the CRISPR Therapeutics license agreement, the KSQ-001EX / KSQ-004EX / KSQ-4279 IND clearances and first-patient-dosed announcements, and conference poster presentations. responses: '200': description: Success. content: application/json: schema: type: array items: type: object headers: X-WP-Total: description: Total number of items in the unpaginated collection. schema: type: integer X-WP-TotalPages: description: Total number of pages available at the current per_page. schema: type: integer Link: description: RFC 8288 pagination links (rel="next", rel="prev"). schema: type: string '400': description: Invalid parameter — one or more query arguments failed WordPress REST argument validation. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: rest_forbidden — the requested scope or route requires authentication. Returned for context=edit and for every administrative namespace on this deployment. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: rest_no_route or rest_post_invalid_id — no route matched, or the requested item does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' 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 default: 1 minimum: 1 - name: per_page in: query description: Maximum number of items to be returned in result set. schema: type: integer default: 10 minimum: 1 maximum: 100 - 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: 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 default: [] - name: include in: query description: Limit result set to specific IDs. schema: type: array items: type: integer default: [] - name: menu_order in: query description: Limit result set to posts with a specific menu_order value. schema: 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 - menu_order default: date - 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 default: [] - 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 items: type: string enum: - publish - future - draft - pending - private - trash - auto-draft - inherit - request-pending - request-confirmed - request-failed - request-completed - acf-disabled - any default: publish - name: tax_relation in: query description: Limit result set based on relationship between multiple taxonomies. schema: type: string enum: - AND - OR - name: categories in: query description: Limit result set to items with specific terms assigned in the categories taxonomy. schema: type: object - name: categories_exclude in: query description: Limit result set to items except those with specific terms assigned in the categories taxonomy. schema: type: object - name: tags in: query description: Limit result set to items with specific terms assigned in the tags taxonomy. schema: type: object - name: tags_exclude in: query description: Limit result set to items except those with specific terms assigned in the tags taxonomy. schema: type: object /wp/v2/press_release/{id}: get: tags: - press_release operationId: getPressRelease summary: Get a press release by id description: Returns a single press release. responses: '200': description: Success. content: application/json: schema: type: object '400': description: Invalid parameter — one or more query arguments failed WordPress REST argument validation. content: application/json: schema: $ref: '#/components/schemas/Error' '401': description: rest_forbidden — the requested scope or route requires authentication. Returned for context=edit and for every administrative namespace on this deployment. content: application/json: schema: $ref: '#/components/schemas/Error' '404': description: rest_no_route or rest_post_invalid_id — no route matched, or the requested item does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: - name: id in: path required: true description: Unique identifier for the resource. schema: type: integer - name: id in: query description: Unique identifier for the post. 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 - name: excerpt_length in: query description: Override the default excerpt length. schema: type: integer - name: password in: query description: The password for the post if it is password protected. schema: type: string components: schemas: Error: type: object description: The WordPress REST API error envelope. Not RFC 9457 problem+json — served as application/json. required: - code - message - data properties: code: type: string description: Machine-readable error slug, e.g. rest_no_route, rest_forbidden, rest_post_invalid_id. examples: - rest_no_route message: type: string description: Human-readable message. examples: - No route was found matching the URL and request method. data: type: object description: Error payload. Always carries the HTTP status; parameter errors add params and details. properties: status: type: integer examples: - 404