openapi: 3.1.0 info: title: Ascend Advanced Therapies Content API (WordPress REST) Careers Discovery API version: wp/v2 summary: Public read surface of the Ascend Advanced Therapies corporate site content API. description: Ascend Advanced Therapies publishes its corporate website (ascend-adv.com) on WordPress with the core WordPress REST API enabled and anonymously readable. This specification was DERIVED by discovering the live route index at https://www.ascend-adv.com/wp-json/ and probing each route for anonymous access; only routes verified to return HTTP 200 without credentials are documented here as public operations. The surface exposes the company's News & Insights posts, site pages, media library, taxonomy (categories and tags), site search, content-type and taxonomy metadata, and the `awsm_job_openings` custom post type that backs the Careers listings. Write operations exist on the same routes but require authentication (WordPress Application Passwords) and are not documented here. This is not a product API offered by Ascend to customers; it is the content API of their marketing site, captured for discovery purposes. contact: name: Ascend Advanced Therapies url: https://www.ascend-adv.com/contact-us/ email: hello@www.ascend-adv.com x-apis-io-provenance: method: derived source: https://www.ascend-adv.com/wp-json/ derived_on: '2026-07-19' note: Routes enumerated from the live wp-json discovery document (328 routes across 12 namespaces); each operation below was probed anonymously and returned 200. Schemas reflect fields observed in live responses. No fabricated operations. servers: - url: https://www.ascend-adv.com/wp-json description: Production tags: - name: Discovery description: Site, content-type, and taxonomy metadata. paths: /: get: tags: - Discovery operationId: getApiIndex summary: Get the API index description: 'Returns the WordPress REST API discovery document: site name, description, home URL, registered namespaces, supported authentication methods, and the full route index.' responses: '200': description: API discovery document content: application/json: schema: type: object properties: name: type: string description: type: string url: type: string format: uri home: type: string format: uri namespaces: type: array items: type: string authentication: type: object routes: type: object example: name: Ascend description: Building the Future of Advanced Therapies url: https://www.ascend-adv.com home: https://www.ascend-adv.com namespaces: - oembed/1.0 - wp/v2 - yoast/v1 /wp/v2/types: get: tags: - Discovery operationId: listTypes summary: List content types description: Returns every registered post type with its REST base and namespace. Used to discover custom post types such as `awsm_job_openings`. responses: '200': description: Map of content types keyed by type name content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/ContentType' /wp/v2/types/{type}: get: tags: - Discovery operationId: getType summary: Get a content type parameters: - name: type in: path required: true schema: type: string responses: '200': description: The content type content: application/json: schema: $ref: '#/components/schemas/ContentType' '404': $ref: '#/components/responses/NotFound' /wp/v2/taxonomies: get: tags: - Discovery operationId: listTaxonomies summary: List taxonomies responses: '200': description: Map of taxonomies keyed by taxonomy name content: application/json: schema: type: object additionalProperties: $ref: '#/components/schemas/Taxonomy' /wp/v2/taxonomies/{taxonomy}: get: tags: - Discovery operationId: getTaxonomy summary: Get a taxonomy parameters: - name: taxonomy in: path required: true schema: type: string responses: '200': description: The taxonomy content: application/json: schema: $ref: '#/components/schemas/Taxonomy' '404': $ref: '#/components/responses/NotFound' /wp/v2/statuses: get: tags: - Discovery operationId: listStatuses summary: List post statuses responses: '200': description: Map of statuses keyed by status name content: application/json: schema: type: object additionalProperties: type: object components: schemas: Taxonomy: type: object properties: description: type: string hierarchical: type: boolean name: type: string slug: type: string rest_base: type: string rest_namespace: type: string types: type: array items: type: string _links: type: object ContentType: type: object properties: description: type: string hierarchical: type: boolean name: type: string slug: type: string taxonomies: type: array items: type: string rest_base: type: string rest_namespace: type: string _links: type: object Error: type: object description: The WordPress REST error envelope. Not RFC 9457 problem+json; errors are returned as application/json with a machine-readable `code`, a human `message`, and a `data` object carrying the HTTP status and any per-parameter validation details. required: - code - message - data properties: code: type: string description: Machine-readable error code. examples: - rest_no_route - rest_post_invalid_id - rest_invalid_param - rest_forbidden message: type: string description: Human-readable error message. data: type: object properties: status: type: integer params: type: object additionalProperties: type: string details: type: object responses: NotFound: description: The requested resource does not exist. content: application/json: schema: $ref: '#/components/schemas/Error' example: code: rest_post_invalid_id message: Invalid post ID. data: status: 404 securitySchemes: applicationPassword: type: http scheme: basic description: WordPress Application Passwords. Advertised by the API index at `authentication.application-passwords`, authorized at https://www.ascend-adv.com/wp-admin/authorize-application.php. Required only for write operations and for privileged reads (for example /wp/v2/settings, which returns 401 anonymously). All operations documented in this specification are anonymously readable.