Artie SSH Tunnels API
The SSH Tunnels API from Artie — 2 operation(s) for ssh tunnels.
The SSH Tunnels API from Artie — 2 operation(s) for ssh tunnels.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/artie:artie-ssh-tunnels-api"
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.
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:
description: External API endpoints for Artie
title: Artie SSH Tunnels API
version: v1.0.139
servers:
- url: https://api.artie.com
security:
- ApiKey: []
tags:
- name: SSH Tunnels
paths:
/ssh-tunnels:
post:
description: Creates a new SSH tunnel for the authenticated company.
operationId: ssh_tunnel_create
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RouterSSHTunnelCreateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSSHTunnel'
description: OK
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Create an SSH tunnel
tags:
- SSH Tunnels
x-artie-mcp:
destructiveHint: false
exposure: exposed
idempotentHint: false
inputSensitivity: none
openWorldHint: false
operationId: ssh_tunnel_create
outputSensitivity: none
readOnlyHint: false
requiredScopes:
- ssh_tunnels:write
retrySemantics: unsafe
title: Create an SSH tunnel
triggerDescription: Creates an SSH tunnel record. Keep the returned UUID; there is no list tool.
/ssh-tunnels/{uuid}:
delete:
description: Permanently deletes an SSH tunnel by UUID. The tunnel must not be in use by any connectors or pipelines before it can be deleted.
operationId: ssh_tunnel_delete
parameters:
- in: path
name: uuid
required: true
schema:
type: string
responses:
'204':
description: No Content
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Delete an SSH tunnel
tags:
- SSH Tunnels
x-artie-mcp:
bodilessSuccess: true
destructiveHint: true
exposure: exposed
idempotentHint: false
inputSensitivity: none
openWorldHint: false
operationId: ssh_tunnel_delete
outputSensitivity: none
readOnlyHint: false
requiredScopes:
- ssh_tunnels:delete
retrySemantics: safe-after-state-check
title: Delete an SSH tunnel
triggerDescription: Deletes an SSH tunnel unused by any connector or pipeline.
get:
description: Retrieves the details of an SSH tunnel by UUID, including its host, port, username, public key, and whether it is currently in use.
operationId: ssh_tunnel_detail
parameters:
- in: path
name: uuid
required: true
schema:
type: string
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSSHTunnel'
description: OK
'404':
description: Not Found
'500':
description: Internal Server Error
summary: Get an SSH tunnel
tags:
- SSH Tunnels
x-artie-mcp:
destructiveHint: false
exposure: exposed
idempotentHint: true
inputSensitivity: none
openWorldHint: false
operationId: ssh_tunnel_detail
outputSensitivity: none
readOnlyHint: true
requiredScopes:
- ssh_tunnels:read
retrySemantics: safe
title: Get an SSH tunnel
triggerDescription: Returns one SSH tunnel by UUID (no private key).
post:
description: Updates an existing SSH tunnel by UUID. You can modify the name, host, port, and username. Changes will mark associated pipelines as having undeployed changes.
operationId: ssh_tunnel_update
parameters:
- in: path
name: uuid
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/RouterSSHTunnelUpdateRequest'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/PayloadsSSHTunnel'
description: OK
'400':
description: Bad Request
'500':
description: Internal Server Error
summary: Update an SSH tunnel
tags:
- SSH Tunnels
x-artie-mcp:
destructiveHint: false
exposure: exposed
idempotentHint: false
inputSensitivity: none
openWorldHint: false
operationId: ssh_tunnel_update
outputSensitivity: none
readOnlyHint: false
requiredScopes:
- ssh_tunnels:write
retrySemantics: unsafe
title: Update an SSH tunnel
triggerDescription: Updates name, host, port, or username on an existing SSH tunnel. Does not rotate keys.
components:
schemas:
RouterSSHTunnelCreateRequest:
properties:
environmentUUID:
format: uuid
type:
- 'null'
- string
host:
type: string
name:
type: string
port:
type: integer
username:
type: string
required:
- host
- port
- username
type: object
PayloadsSSHTunnel:
properties:
companyUUID:
format: uuid
type: string
createdAt:
format: date-time
type: string
environmentUUID:
format: uuid
type: string
host:
type: string
isInUse:
type:
- 'null'
- boolean
name:
type: string
port:
type: integer
publicKey:
type: string
updatedAt:
format: date-time
type: string
username:
type: string
uuid:
format: uuid
type: string
required:
- uuid
- companyUUID
- environmentUUID
- name
- host
- port
- publicKey
- username
type: object
RouterSSHTunnelUpdateRequest:
properties:
host:
type: string
name:
type: string
port:
type: integer
username:
type: string
required:
- name
- host
- port
- username
type: object
securitySchemes:
ApiKey:
description: API key passed as a Bearer token in the Authorization header.
scheme: bearer
type: http
x-provenance:
method: harvested
publisher: Artie
source: https://raw.githubusercontent.com/artie-labs/artie-api-spec/refs/heads/master/openapi.yaml
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)