openapi: 3.1.0 info: title: iECURE Team API version: wp/v2 description: 'The `portfolio` custom post type as deployed by iECURE, which carries team members rather than portfolio work - 35 items at harvest time, classified by the portfolio_entries taxonomy into Leadership, BOD, Advisors, Team and TeamMembers. Derived by API Evangelist from the live WordPress REST route index published at https://iecure.com/wp-json/ and from anonymous responses observed on 2026-08-22. iECURE is a clinical-stage genetic-medicines company and runs no developer program; this is the content API its own website is built on, not a product API. Only routes that returned 200 without credentials are described here - administrative and plugin routes that answered 401 are deliberately excluded.' contact: name: iECURE url: https://iecure.com/contact/ email: info@iecure.com x-source: https://iecure.com/wp-json/ x-harvested: '2026-08-22' x-upstream-contract: https://developer.wordpress.org/rest-api/ servers: - url: https://iecure.com/wp-json description: iECURE WordPress REST API tags: - name: team description: The `portfolio` custom post type as deployed by iECURE, which carries team members rather than portfolio work - 35 items at harvest time, classified by the portfolio_entries taxonomy into Leadership, BOD, Advisors, Team and TeamMembers. paths: /wp/v2/portfolio: get: operationId: listTeamMembers summary: listTeamMembers description: GET https://iecure.com/wp-json/wp/v2/portfolio - observed anonymously reachable on 2026-08-22. tags: - team responses: '200': description: Success. content: application/json: schema: type: array items: type: object headers: X-WP-Total: description: Total number of matching items. schema: type: integer X-WP-TotalPages: description: Total number of pages available. schema: type: integer Link: description: RFC 8288 pagination links (rel="next" / rel="prev"). schema: type: string '400': description: rest_invalid_param - a query parameter failed validation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: rest_no_route or rest_post_invalid_id. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' parameters: - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Scope under which the request is made; determines fields present in response. - 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: search in: query required: false schema: type: string description: Limit results to those matching a string. - 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: 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: author in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to posts assigned to specific authors. - name: author_exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes posts assigned to specific authors. - 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: 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: exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes specific IDs. - name: include in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to specific IDs. - name: menu_order in: query required: false schema: type: integer description: Limit result set to posts with a specific menu_order value. - name: search_semantics in: query required: false schema: type: string enum: - exact description: How to interpret the search input. - 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 - menu_order default: date description: Sort collection by post attribute. - name: search_columns in: query required: false schema: type: array default: [] items: type: string enum: - post_title - post_content - post_excerpt description: Array of column names to be searched. - 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 default: publish 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 - any 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. - name: tags in: query required: false schema: type: object description: Limit result set to items with specific terms assigned in the tags taxonomy. - name: tags_exclude in: query required: false schema: type: object description: Limit result set to items except those with specific terms assigned in the tags taxonomy. - name: portfolio_entries in: query required: false schema: type: object description: Limit result set to items with specific terms assigned in the portfolio_entries taxonomy. - name: portfolio_entries_exclude in: query required: false schema: type: object description: Limit result set to items except those with specific terms assigned in the portfolio_entries taxonomy. /wp/v2/portfolio/{id}: get: operationId: getTeamMember summary: getTeamMember description: GET https://iecure.com/wp-json/wp/v2/portfolio/{id} - observed anonymously reachable on 2026-08-22. tags: - team responses: '200': description: Success. content: application/json: schema: type: object '400': description: rest_invalid_param - a query parameter failed validation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: rest_no_route or rest_post_invalid_id. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' parameters: - name: id in: path required: true description: Identifier of the requested id. schema: type: integer - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Scope under which the request is made; determines fields present in response. - name: excerpt_length in: query required: false schema: type: integer description: Override the default excerpt length. - name: password in: query required: false schema: type: string description: The password for the post if it is password protected. /wp/v2/portfolio_entries: get: operationId: listTeamGroups summary: listTeamGroups description: GET https://iecure.com/wp-json/wp/v2/portfolio_entries - observed anonymously reachable on 2026-08-22. tags: - team responses: '200': description: Success. content: application/json: schema: type: array items: type: object headers: X-WP-Total: description: Total number of matching items. schema: type: integer X-WP-TotalPages: description: Total number of pages available. schema: type: integer Link: description: RFC 8288 pagination links (rel="next" / rel="prev"). schema: type: string '400': description: rest_invalid_param - a query parameter failed validation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: rest_no_route or rest_post_invalid_id. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' parameters: - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Scope under which the request is made; determines fields present in response. - 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: search in: query required: false schema: type: string description: Limit results to those matching a string. - name: exclude in: query required: false schema: type: array default: [] items: type: integer description: Ensure result set excludes specific IDs. - name: include in: query required: false schema: type: array default: [] items: type: integer description: Limit result set to specific IDs. - name: order in: query required: false schema: type: string enum: - asc - desc default: asc description: Order sort attribute ascending or descending. - name: orderby in: query required: false schema: type: string enum: - id - include - name - slug - include_slugs - term_group - description - count default: name description: Sort collection by term attribute. - name: hide_empty in: query required: false schema: type: boolean default: false description: Whether to hide terms not assigned to any posts. - name: parent in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific parent. - name: post in: query required: false schema: type: integer description: Limit result set to terms assigned to a specific post. - name: slug in: query required: false schema: type: array items: type: string description: Limit result set to terms with one or more specific slugs. /wp/v2/portfolio_entries/{id}: get: operationId: getTeamGroup summary: getTeamGroup description: GET https://iecure.com/wp-json/wp/v2/portfolio_entries/{id} - observed anonymously reachable on 2026-08-22. tags: - team responses: '200': description: Success. content: application/json: schema: type: object '400': description: rest_invalid_param - a query parameter failed validation. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' '404': description: rest_no_route or rest_post_invalid_id. content: application/json: schema: $ref: '#/components/schemas/ErrorResponse' parameters: - name: id in: path required: true description: Identifier of the requested id. schema: type: integer - name: context in: query required: false schema: type: string enum: - view - embed - edit default: view description: Scope under which the request is made; determines fields present in response. components: schemas: ErrorResponse: type: object description: The WordPress REST error envelope. Not RFC 9457 problem details. required: - code - message - data properties: code: type: string description: Machine-readable error code - the stable discriminator. message: type: string description: Human-readable message, localized to the site language. data: type: object properties: status: type: integer params: type: object description: Per-parameter messages. Present only on rest_invalid_param. details: type: object description: Per-parameter structured detail with a nested code.