Every API here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for apis
7 MCP tools reach this
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.
All 92 tools →
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/engineering-platform-collection-items-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
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: APIs.io Engineering Platform Postman Collection Items API
description: "The Postman API enables you to programmatically access data stored in your Postman account.\n\n> Certain endpoints may be unavailable depending on your region and/or Postman plan.\n\nFor a comprehensive set of examples of requests and responses, see the [**Postman API** collection](https://www.postman.com/postman/workspace/postman-public-workspace/documentation/12959542-c8142d51-e97c-46b6-bd77-52bb66712c9a).\n\n## Getting started\n\nYou can get started with the Postman API by creating a copy of this definition in your workspace.\n\n### EU users\n\nFor users in the EU with [**Enterprise** plans](https://www.postman.com/pricing/), the Postman API uses the `http://api.eu.postman.com` subdomain. This is available in the definition's list of servers. You can change this by selecting the `http://api.eu.postman.com` subdomain in the **Server** dropdown list below.\n\n## About the Postman API\n\n- You must use a valid API Key to send requests to the API endpoints.\n- The API has [rate and usage limits](https://learning.postman.com/docs/developer/postman-api/postman-api-rate-limits/).\n- The API only responds to HTTPS-secured communications. Any requests sent via HTTP return an HTTP `301` redirect to the corresponding HTTPS resources.\n- The API returns requests responses in JSON format. When an API request returns an error, it is sent in the JSON response as an error key.\n- The request method (verb) determines the nature of action you intend to perform. A request made using the `GET` method implies that you want to fetch something from Postman. The `POST` method implies you want to save something new to Postman.\n- For all requests, API calls respond with their corresponding [HTTP status codes](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes). In the Postman client, the status code also provides help text that details the possible meaning of the response code.\n- When calling the API Builder endpoints, you must send an `Accept` header with the `application/vnd.api.v10+json` value.\n\n### IDs and UIDs\n\nAll items in Postman, such as collections, workspaces, and APIs, have IDs and UIDs:\n\n- An ID is the unique ID assigned to a Postman item. For example, `ec29121c-5203-409f-9e84-e83ffc10f226`.\n- The UID is the **full** ID of a Postman item. This value is the item's unique ID concatenated with the user ID. For example, in the `12345678-ec29121c-5203-409f-9e84-e83ffc10f226` UID:\n - `12345678` is the user's ID.\n - `ec29121c-5203-409f-9e84-e83ffc10f226` is the item's ID.\n\n### Enum values\n\nAny documented enum values should be considered partial lists and may change over time.\n\n### 403 response for unavailable features\n\nDepending on your region and/or Postman [plan](https://www.postman.com/pricing/), some endpoints will return an HTTP `403 Forbidden` response with the \"This feature isn't available in your region.\" detail.\n\n### 503 response\n\nAn HTTP `503 Service Unavailable` response from our servers indicates there is an unexpected spike in API access traffic. The server is usually operational within the next five minutes.\n\nIf the outage persists or you receive any other form of an HTTP `5XX` error, [contact support](https://support.postman.com/hc/en-us/requests/new/).\n\n## Authentication\n\nPostman uses API keys for authentication. The API key tells the API server that the request came from you. Everything that you have access to in Postman is accessible with your API key. You can [generate](https://learning.postman.com/docs/developer/postman-api/authentication/#generate-a-postman-api-key) a Postman API key in the [**API keys**](https://postman.postman.co/settings/me/api-keys) section of your Postman account settings.\n\nYou must include an API key in each request to the Postman API with the `X-API-Key` request header. In Postman, you can store your API key as a [vault secret](https://learning.postman.com/docs/sending-requests/postman-vault/postman-vault-secrets/) or an [environment variable](https://www.getpostman.com/docs/environments). The Postman API [collection](https://www.getpostman.com/docs/collections) will use it to make API calls.\n\n### SCIM authentication\n\nWhile all other endpoints in this collection require a Postman API key, the SCIM endpoints require a [SCIM API key](https://learning.postman.com/docs/administration/scim-provisioning/scim-provisioning-overview/#generating-scim-api-key).\n\n### Authentication error response\n\nIf an API key is missing, malformed, or invalid, you will receive an HTTP `401 Unauthorized` response code.\n\n## Rate and usage limits\n\nAPI access [rate limits](https://learning.postman.com/docs/developer/postman-api/postman-api-rate-limits/) apply at a per-user basis in unit time. The limit is **300 requests per minute**. Postman Monitors, the GET `/collections`, and the GET `/workspaces` endpoint have a rate limit of **10 calls in 10 seconds**. Depending on your [plan](https://www.postman.com/pricing/), you may also have [usage limits](https://learning.postman.com/docs/billing/resource-usage/).\n\nWhen you reach your rate or usage limits, the API returns the following HTTP `429 Too Many Requests` status code with one of the following error responses:\n\n- `rateLimited` — Rate limits reached. The response returns the time after which you can resume calls to the Postman API.\n- `serviceLimitExhausted` — Postman API service limits reached. You will need to contact your Postman Team Admin for assistance.\n\n## Support\n\nFor help regarding accessing the Postman API, you can:\n\n- Visit [Postman Support](https://support.postman.com/hc/en-us) or our [Community and Support](https://www.postman.com/community/) sites.\n- Reach out to the [Postman community](https://community.postman.com/).\n- Submit a help request to [Postman support](https://support.postman.com/hc/en-us/requests/new/).\n\n## Policies\n\n- [Postman Terms of Service](http://www.postman.com/legal/terms/)\n- [Postman Privacy Policy](https://www.postman.com/legal/privacy-policy/)\n"
version: '1.0'
termsOfService: https://www.postman.com/legal/terms/
contact:
name: Postman Support
email: help@postman.com
url: https://www.postman.com/community/
servers:
- url: https://api.getpostman.com
- url: https://api.eu.postman.com
security:
- PostmanApiKey: []
- scimApiKey: []
tags:
- name: Collection Items
description: The **Collection Items** endpoints enable you to manage a collection's items, such as folders and requests.
paths:
/collections/{collectionId}/folders:
parameters:
- $ref: '#/components/parameters/collectionId'
post:
summary: APIs.io Engineering Platform Create a folder
description: 'Creates a folder in a collection. For a complete list of properties, refer to the **Folder** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
You can use this endpoint to to import requests and responses into a newly-created folder. To do this, include the `requests` field and the list of request objects in the request body. For more information, see the provided example.
**Note:**
It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a folder with a blank name.
'
operationId: createCollectionFolder
tags:
- Collection Items
requestBody:
$ref: '#/components/requestBodies/createCollectionFolder'
responses:
'200':
$ref: '#/components/responses/createCollectionFolder'
'400':
$ref: '#/components/responses/collectionFolder400Error'
'401':
$ref: '#/components/responses/collectionFolder401Error'
'500':
$ref: '#/components/responses/common500Error'
/collections/{collectionId}/requests:
parameters:
- $ref: '#/components/parameters/collectionId'
post:
summary: APIs.io Engineering Platform Create a request
description: 'Creates a request in a collection. For a complete list of properties, refer to the **Request** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
**Note:**
It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a request with a blank name.
'
operationId: createCollectionRequest
tags:
- Collection Items
requestBody:
$ref: '#/components/requestBodies/createCollectionRequest'
responses:
'200':
$ref: '#/components/responses/createCollectionRequest'
'400':
$ref: '#/components/responses/collectionRequest400Error'
'401':
$ref: '#/components/responses/collectionRequest401Error'
'500':
$ref: '#/components/responses/common500Error'
parameters:
- $ref: '#/components/parameters/collectionRequestFolderIdQuery'
/collections/{collectionId}/responses:
parameters:
- $ref: '#/components/parameters/collectionId'
post:
summary: APIs.io Engineering Platform Create a response
description: 'Creates a request response in a collection. For a complete list of request body properties, refer to the **Response** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
**Note:**
It is recommended that you pass the `name` property in the request body. If you do not, the system uses a null value. As a result, this creates a response with a blank name.
'
operationId: createCollectionResponse
tags:
- Collection Items
requestBody:
$ref: '#/components/requestBodies/createCollectionResponse'
responses:
'200':
$ref: '#/components/responses/createCollectionResponse'
'400':
$ref: '#/components/responses/collectionResponse400Error'
'401':
$ref: '#/components/responses/collectionResponse401Error'
'500':
$ref: '#/components/responses/common500Error'
parameters:
- $ref: '#/components/parameters/collectionResponseParentRequestId'
/collections/{collectionId}/folders/{folderId}:
parameters:
- $ref: '#/components/parameters/collectionFolderId'
- $ref: '#/components/parameters/collectionId'
get:
summary: APIs.io Engineering Platform Get a folder
description: Gets information about a folder in a collection.
operationId: getCollectionFolder
tags:
- Collection Items
responses:
'200':
$ref: '#/components/responses/getCollectionFolder'
'401':
$ref: '#/components/responses/collectionFolder401Error'
'404':
$ref: '#/components/responses/collectionFolder404Error'
'500':
$ref: '#/components/responses/common500Error'
parameters:
- $ref: '#/components/parameters/collectionItemsIdQuery'
- $ref: '#/components/parameters/collectionItemsUidFormatQuery'
- $ref: '#/components/parameters/collectionItemsPopulateQuery'
put:
summary: APIs.io Engineering Platform Update a folder
description: 'Updates a folder in a collection. For a complete list of properties, refer to the **Folder** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
**Note:**
This endpoint acts like a PATCH method. It only updates the values that you pass in the request body (for example, the `name` property). The endpoint does not update the entire resource.
'
operationId: updateCollectionFolder
tags:
- Collection Items
requestBody:
$ref: '#/components/requestBodies/updateCollectionFolder'
responses:
'200':
$ref: '#/components/responses/updateCollectionFolder'
'400':
$ref: '#/components/responses/collectionFolder400Error'
'401':
$ref: '#/components/responses/collectionFolder401Error'
'404':
$ref: '#/components/responses/collectionFolder404Error'
'500':
$ref: '#/components/responses/common500Error'
delete:
summary: APIs.io Engineering Platform Delete a folder
description: Deletes a folder in a collection.
operationId: deleteCollectionFolder
tags:
- Collection Items
responses:
'200':
$ref: '#/components/responses/deleteCollectionFolder'
'401':
$ref: '#/components/responses/collectionFolder401Error'
'404':
$ref: '#/components/responses/collectionFolder404Error'
'500':
$ref: '#/components/responses/common500Error'
/collections/{collectionId}/requests/{requestId}:
parameters:
- $ref: '#/components/parameters/collectionRequestId'
- $ref: '#/components/parameters/collectionId'
get:
summary: APIs.io Engineering Platform Get a request
description: Gets information about a request in a collection.
operationId: getCollectionRequest
tags:
- Collection Items
responses:
'200':
$ref: '#/components/responses/getCollectionRequest'
'401':
$ref: '#/components/responses/collectionRequest401Error'
'404':
$ref: '#/components/responses/collectionRequest404Error'
'500':
$ref: '#/components/responses/common500Error'
parameters:
- $ref: '#/components/parameters/collectionItemsIdQuery'
- $ref: '#/components/parameters/collectionItemsUidFormatQuery'
- $ref: '#/components/parameters/collectionItemsPopulateQuery'
put:
summary: APIs.io Engineering Platform Update a request
description: 'Updates a request in a collection. For a complete list of properties, refer to the **Request** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
**Note:**
- You must pass a collection ID (`12ece9e1-2abf-4edc-8e34-de66e74114d2`), not a collection(`12345678-12ece9e1-2abf-4edc-8e34-de66e74114d2`), in this endpoint.
- This endpoint does not support changing the folder of a request.
'
operationId: updateCollectionRequest
tags:
- Collection Items
requestBody:
$ref: '#/components/requestBodies/updateCollectionRequest'
responses:
'200':
$ref: '#/components/responses/updateCollectionRequest'
'400':
$ref: '#/components/responses/collectionRequest400Error'
'401':
$ref: '#/components/responses/collectionRequest401Error'
'404':
$ref: '#/components/responses/collectionRequest404Error'
'500':
$ref: '#/components/responses/common500Error'
delete:
summary: APIs.io Engineering Platform Delete a request
description: Deletes a request in a collection.
operationId: deleteCollectionRequest
tags:
- Collection Items
responses:
'200':
$ref: '#/components/responses/deleteCollectionRequest'
'401':
$ref: '#/components/responses/collectionRequest401Error'
'404':
$ref: '#/components/responses/collectionRequest404Error'
'500':
$ref: '#/components/responses/common500Error'
/collections/{collectionId}/responses/{responseId}:
parameters:
- $ref: '#/components/parameters/collectionResponseId'
- $ref: '#/components/parameters/collectionId'
get:
summary: APIs.io Engineering Platform Get a response
description: Gets information about a response in a collection.
operationId: getCollectionResponse
tags:
- Collection Items
responses:
'200':
$ref: '#/components/responses/getCollectionResponse'
'401':
$ref: '#/components/responses/collectionResponse401Error'
'404':
$ref: '#/components/responses/collectionResponse404Error'
'500':
$ref: '#/components/responses/common500Error'
parameters:
- $ref: '#/components/parameters/collectionItemsIdQuery'
- $ref: '#/components/parameters/collectionItemsUidFormatQuery'
- $ref: '#/components/parameters/collectionItemsPopulateQuery'
put:
summary: APIs.io Engineering Platform Update a response
description: 'Updates a response in a collection. For a complete list of properties, see the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
**Note:**
- You must pass a collection ID (`12ece9e1-2abf-4edc-8e34-de66e74114d2`), not a collection UID (`12345678-12ece9e1-2abf-4edc-8e34-de66e74114d2`), in this endpoint.
- This endpoint acts like a PATCH method. It only updates the values that you pass in the request body (for example, the `name` property). The endpoint does not update the entire resource.
'
operationId: updateCollectionResponse
tags:
- Collection Items
requestBody:
$ref: '#/components/requestBodies/updateCollectionResponse'
responses:
'200':
$ref: '#/components/responses/updateCollectionResponse'
'400':
$ref: '#/components/responses/collectionResponse400Error'
'401':
$ref: '#/components/responses/collectionResponse401Error'
'404':
$ref: '#/components/responses/collectionResponse404Error'
'500':
$ref: '#/components/responses/common500Error'
delete:
summary: APIs.io Engineering Platform Delete a response
description: Deletes a response in a collection.
operationId: deleteCollectionResponse
tags:
- Collection Items
responses:
'200':
$ref: '#/components/responses/deleteCollectionResponse'
'401':
$ref: '#/components/responses/collectionResponse401Error'
'404':
$ref: '#/components/responses/collectionResponse404Error'
'500':
$ref: '#/components/responses/common500Error'
components:
responses:
createCollectionRequest:
description: Successful Response
content:
application/json:
schema:
type: object
properties:
data:
type: object
additionalProperties: true
description: Information about the created request. For a complete list of properties, refer to the **Request** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
properties:
id:
type: string
description: The request's ID.
example: c82dd02c-4870-4907-8fcb-593a876cf05b
name:
type: string
description: The request's name.
example: Test Request
owner:
type: string
description: The user ID of the request's owner.
example: '12345678'
folder:
type:
- string
- 'null'
description: Information about the request's parent folder.
example: null
responses:
type: array
description: A list of the request's responses.
items:
type: string
example: []
collection:
type: string
description: The collection ID that the request belongs to.
example: 12ece9e1-2abf-4edc-8e34-de66e74114d2
responses_order:
type: array
description: A list of response IDs and their order in the folder.
items:
type: string
uniqueItems: true
example: []
createdAt:
type: string
format: date-time
description: The requeset's creation date and time.
example: '2022-08-29T16:35:38.831Z'
updatedAt:
type: string
format: date-time
description: The date and time at which the request was last updated.
example: '2022-08-29T16:35:38.831Z'
lastUpdatedBy:
type: string
description: The user ID of the user that last updated the folder.
example: '12345678'
meta:
type: object
description: A Postman-specific response that contains information about the internal performed operation.
additionalProperties: true
model_id:
type: string
description: The request's ID.
example: c82dd02c-4870-4907-8fcb-593a876cf05b
revision:
type: number
description: An internal revision ID. Its value increments each time the resource changes. You can use this ID to track whether there were changes since the last time you fetched the resource.
example: 26531992398
example:
model_id: c82dd02c-4870-4907-8fcb-593a876cf05b
meta:
model: request
action: import
data:
collection: 12ece9e1-2abf-4edc-8e34-de66e74114d2
method: GET
headers:
- key: Host
value: postman-echo.com
- key: user-agent
value: curl/7.88.1
- key: accept
value: '*/*'
- key: content-type
value: application/json
dataMode: raw
url: https://postman-echo.com/get?param=value
name: Example GET Request
description: This is an example GET request.
owner: '12345678'
folder: null
responses_order: []
id: c82dd02c-4870-4907-8fcb-593a876cf05b
lastUpdatedBy: '12345678'
queryParams:
- key: id
value: '{{id}}'
equals: true
description: Optional. The user's ID.
enabled: true
headerData: []
createdAt: '2023-09-07T13:33:17.912Z'
updatedAt: '2023-09-07T13:33:17.912Z'
rawModeData: null
dataOptions:
raw:
language: json
responses: []
revision: 32456338071
getCollectionFolder:
description: Successful Response
content:
application/json:
schema:
type: object
properties:
model_id:
type: string
description: The folder's ID.
example: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
meta:
type: object
description: A Postman-specific response that contains information about the internal performed operation.
additionalProperties: true
data:
type: object
description: Information about the folder. For a complete list of properties, refer to the **Folders** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
additionalProperties: true
properties:
id:
type: string
description: The folder's ID.
example: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
name:
type: string
description: The folder's name.
example: Test Folder
description:
type: string
description: The folder's description.
example: This is a test collection folder.
createdAt:
type: string
format: date-time
description: The folder's creation date and time.
example: '2022-08-29T16:49:19.964Z'
updatedAt:
type: string
format: date-time
description: The date and time at which the folder was last updated.
example: '2022-08-29T16:49:19.964Z'
owner:
type: string
description: The user ID of the folder's owner.
example: '12345678'
lastUpdatedBy:
type: string
description: The user ID of the user that last updated the folder.
example: '12345678'
lastRevision:
type: integer
format: int64
description: An internal revision ID. Its value increments each time the resource changes. You can use this ID to track whether there were changes since the last time you fetched the resource.
example: 24994132707
collection:
type: string
description: The collection ID that the folder belongs to.
example: 12ece9e1-2abf-4edc-8e34-de66e74114d2
example:
model_id: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
meta:
model: folder
populate: false
changeset: false
action: find
data:
owner: '12345678'
collection: 12ece9e1-2abf-4edc-8e34-de66e74114d2
folder: null
id: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
name: Test Folder
description: This is a test collection folder.
variables: null
auth:
type: apikey
apikey:
- key: value
value: XXX
- key: key
value: x-api-key
events: null
order:
- 81b49e05-0b87-4ca4-ac8c-091aaedafea3
- 929acf24-4234-45e1-59cf-dc2b27ea7603
- 3cfc2ac8-00a9-47d2-415d-049773f23268
folders_order:
- 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
- 5c341de9-5751-461f-b7bd-af86bbae740c
createdAt: '2022-08-29T16:49:19.964Z'
updatedAt: '2022-08-29T16:49:19.964Z'
createCollectionFolder:
description: Successful Response
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: Information about the collection folder. For a complete list of properties, refer to the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
additionalProperties: true
properties:
id:
type: string
description: The folder's ID.
example: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
name:
type: string
description: The folder's name.
example: Test Folder
order:
type: array
description: A list of request IDs and their order in the created folder.
items:
type: string
uniqueItems: true
example: []
owner:
type: string
description: The user ID of the folder's owner.
example: '12345678'
folder:
type:
- string
- 'null'
description: Information about the folder.
example: null
folders:
type: array
description: A list of folders.
items:
type: string
example: []
requests:
type: array
description: A list of requests.
items:
type: string
createdAt:
type: string
format: date-time
description: The folder's creation date and time.
example: '2022-08-29T16:49:19.964Z'
updatedAt:
type: string
format: date-time
description: The date and time at which the folder was last updated.
example: '2022-08-29T16:49:19.964Z'
collection:
type: string
description: The collection ID that the folder belongs to.
example: 12ece9e1-2abf-4edc-8e34-de66e74114d2
description:
type: string
description: The folder's description.
example: This is a test collection folder.
folders_order:
type: array
items:
type: string
uniqueItems: true
description: A list of folder IDs and their order in the collection.
example: []
lastUpdatedBy:
type: string
description: The user ID of the user that last updated the folder.
example: '12345678'
meta:
type: object
description: A Postman-specific response that contains information about the internal performed operation.
additionalProperties: true
model_id:
type: string
description: The folder's ID.
example: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
revision:
type: number
description: An internal revision ID. Its value increments each time the resource changes. You can use this ID to track whether there were changes since the last time you fetched the resource.
example: 24994132707
example:
data:
id: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
name: Test Folder
order: []
owner: '12345678'
folder: null
folders: []
requests: []
createdAt: '2022-08-29T16:49:19.964Z'
updatedAt: '2022-08-29T16:49:19.964Z'
collection: 12ece9e1-2abf-4edc-8e34-de66e74114d2
description: This is a test collection folder.
folders_order: []
lastUpdatedBy: '12345678'
meta:
model: folder
action: import
model_id: 65a99e60-8e0a-4b6e-b79c-7d8264cc5caa
revision: 24994132707
updateCollectionResponse:
description: Successful Response
content:
application/json:
schema:
type: object
properties:
data:
type: object
description: Information about the updated response. For a complete list of response properties, refer to the **Response** entry in the [Postman Collection Format documentation](https://schema.postman.com/collection/json/v2.1.0/draft-07/docs/index.html).
additionalProperties: true
properties:
id:
type: string
description: The response's ID.
example: c82dd02c-4870-4907-8fcb-593a876cf05b
name:
type: string
description: The response's name.
example: Test Folder
owner
# --- truncated at 32 KB (87 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/engineering-platform/refs/heads/main/openapi/engineering-platform-collection-items-api-openapi.yml