Work with this as data
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.
Call it yourself
curl for this page
This API
curl "https://apis.io/api/v1/apis/port-io:port-io-apps-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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 Specification
openapi: 3.2.0
info:
title: Port Apps API
version: '1.0'
tags:
- name: Apps
paths:
/v1/apps:
get:
summary: Get all credentials
tags:
- Apps
description: This route allows you to fetch all credentials in your Port organization.
parameters:
- schema:
type: array
items:
type: string
enum:
- id
- name
- createdAt
- updatedAt
- secret
- enabled
in: query
name: fields
required: false
description: The fields to include in the response. If not specified, all fields will be included.
security:
- bearer:
- read:apps
x-should-be-exposed-to-customers: true
responses:
'200':
description: Retrieved successfully.
content:
application/json:
schema:
properties:
ok:
enum:
- true
apps:
type: array
items:
type: object
properties:
name:
type: string
enabled:
type: boolean
id:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
secret:
type: string
required:
- ok
additionalProperties: false
description: Retrieved successfully.
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
operationId: getV1Apps
x-operation-id-source: derived
/v1/apps/{id}/rotate-secret:
post:
summary: Rotate secret
tags:
- Apps
description: This route allows you to rotate the secret of a set of credentials in your Port organization.
parameters:
- schema:
type: string
in: path
name: id
required: true
description: The `id` of the credentials set you want to operate on.
security:
- bearer:
- update:apps
x-should-be-exposed-to-customers: true
responses:
'200':
description: OK
content:
application/json:
schema:
properties:
ok:
enum:
- true
app:
type: object
properties:
name:
type: string
enabled:
type: boolean
id:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
secret:
type: string
required:
- ok
additionalProperties: false
description: OK
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: postV1AppsByIdRotateSecret
x-operation-id-source: derived
/v1/apps/{id}:
delete:
summary: Delete credentials
tags:
- Apps
description: This route allows you to delete a set of credentials in your Port organization.
parameters:
- schema:
type: string
in: path
name: id
required: true
description: The `id` of the credentials set you want to operate on.
security:
- bearer:
- update:apps
x-should-be-exposed-to-customers: true
responses:
'200':
description: Deleted successfully.
content:
application/json:
schema:
description: Deleted successfully.
properties:
ok:
enum:
- true
required:
- ok
additionalProperties: false
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: deleteV1AppsById
x-operation-id-source: derived
put:
summary: Change the name of a credentials set
tags:
- Apps
description: This route allows you to change the name of a set of credentials in your Port organization.
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
description: The new name of the credentials set.
additionalProperties: false
required:
- name
required: true
parameters:
- schema:
type: string
in: path
name: id
required: true
description: The `id` of the credentials set you want to operate on.
security:
- bearer:
- update:apps
x-should-be-exposed-to-customers: true
responses:
'200':
description: Updated successfully.
content:
application/json:
schema:
properties:
ok:
enum:
- true
app:
type: object
properties:
name:
type: string
enabled:
type: boolean
id:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
secret:
type: string
required:
- ok
additionalProperties: false
description: Updated successfully.
'401':
description: Default Response
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
'404':
description: A resource with the provided identifier was not found
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: A resource with the provided identifier was not found
'413':
description: Request body is too large (limit is 1MiB)
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
additionalProperties: false
description: Request body is too large (limit is 1MiB)
'422':
description: The json provided does not match the route's schema
content:
application/json:
schema:
properties:
ok:
const: false
error:
type: string
message:
type: string
required:
- ok
- error
- message
additionalProperties: false
description: The json provided does not match the route's schema
operationId: putV1AppsById
x-operation-id-source: derived
components:
securitySchemes:
bearer:
type: apiKey
name: Authorization
in: header
x-provenance:
method: harvested
publisher: Port
source: https://api.port.io/swagger/json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)