---
updatedAt: 2026-08-10T14:04:43.000Z
agentTools:
  projectIndex: https://docs.whippy.ai/llms.txt
---

# Get Workflow Connection

Returns a connection by ID. Secrets are never included.

Connections are sensitive, so OAuth callers require `workflows:update`.


# OpenAPI definition

```json
{
  "components": {
    "schemas": {
      "ShowWorkflowConnectionResponse": {
        "example": {
          "data": {
            "app_id": "660e8400-e29b-41d4-a716-446655440001",
            "app_version_id": "770e8400-e29b-41d4-a716-446655440002",
            "auth_type": "oauth2",
            "id": "550e8400-e29b-41d4-a716-446655440000",
            "inserted_at": "2026-08-07T12:00:00Z",
            "label": "user@example.com",
            "name": "Work account",
            "status": "active",
            "updated_at": "2026-08-07T12:00:00Z"
          }
        },
        "properties": {
          "data": {
            "properties": {
              "app_id": {
                "format": "uuid",
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "app_version_id": {
                "format": "uuid",
                "nullable": true,
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "auth_type": {
                "description": "App authentication type (oauth2, custom, api_key, session, …)",
                "nullable": true,
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "id": {
                "format": "uuid",
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "inserted_at": {
                "format": "date-time",
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "label": {
                "nullable": true,
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "name": {
                "nullable": true,
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "status": {
                "enum": [
                  "active",
                  "needs_reconnect",
                  "stale"
                ],
                "type": "string",
                "x-struct": null,
                "x-validate": null
              },
              "updated_at": {
                "format": "date-time",
                "type": "string",
                "x-struct": null,
                "x-validate": null
              }
            },
            "required": [
              "id",
              "app_id",
              "status"
            ],
            "type": "object",
            "x-struct": null,
            "x-validate": null
          }
        },
        "required": [
          "data"
        ],
        "title": "ShowWorkflowConnectionResponse",
        "type": "object",
        "x-struct": null,
        "x-validate": null
      },
      "NotAuthenticatedErrorResponse": {
        "description": "Not Authenticated Error Response schema",
        "example": {
          "errors": [
            {
              "description": "Not authenticated"
            }
          ],
          "status": 401
        },
        "properties": {
          "errors": {
            "description": "Not authenticated error",
            "items": {
              "properties": {
                "description": {
                  "enum": [
                    "Not authenticated"
                  ],
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                }
              },
              "type": "object",
              "x-struct": null,
              "x-validate": null
            },
            "type": "array",
            "x-struct": null,
            "x-validate": null
          },
          "status": {
            "enum": [
              401
            ],
            "type": "integer",
            "x-struct": null,
            "x-validate": null
          }
        },
        "title": "NotAuthenticatedErrorResponse",
        "type": "object",
        "x-struct": "Elixir.DashboardApiWeb.Public.V1.Documentation.Errors.NotAuthenticated",
        "x-validate": null
      },
      "WorkflowConnectionNotFound": {
        "example": {
          "errors": [
            {
              "description": "Workflow connection not found"
            }
          ]
        },
        "properties": {
          "errors": {
            "items": {
              "properties": {
                "description": {
                  "type": "string",
                  "x-struct": null,
                  "x-validate": null
                }
              },
              "type": "object",
              "x-struct": null,
              "x-validate": null
            },
            "type": "array",
            "x-struct": null,
            "x-validate": null
          }
        },
        "title": "WorkflowConnectionNotFound",
        "type": "object",
        "x-struct": null,
        "x-validate": null
      },
      "ServiceUnavailableErrorResponse": {
        "description": "Service Unavailable Error Response schema",
        "example": {
          "error": "Workflows service unavailable"
        },
        "properties": {
          "error": {
            "description": "Stable public error message",
            "example": "Workflows service unavailable",
            "type": "string",
            "x-struct": null,
            "x-validate": null
          }
        },
        "required": [
          "error"
        ],
        "title": "ServiceUnavailableErrorResponse",
        "type": "object",
        "x-struct": "Elixir.DashboardApiWeb.Public.V1.Documentation.Errors.ServiceUnavailable",
        "x-validate": null
      },
      "ForbiddenErrorResponse": {
        "description": "Forbidden Error Response schema",
        "example": {
          "error": "Token does not have the required scope for this action."
        },
        "properties": {
          "error": {
            "description": "Stable public error message for insufficient OAuth scope",
            "example": "Token does not have the required scope for this action.",
            "type": "string",
            "x-struct": null,
            "x-validate": null
          }
        },
        "required": [
          "error"
        ],
        "title": "ForbiddenErrorResponse",
        "type": "object",
        "x-struct": "Elixir.DashboardApiWeb.Public.V1.Documentation.Errors.Forbidden",
        "x-validate": null
      }
    },
    "securitySchemes": {
      "authorization": {
        "in": "header",
        "name": "X-WHIPPY-KEY",
        "type": "apiKey"
      },
      "bearer": {
        "description": "OAuth Access token",
        "scheme": "bearer",
        "type": "http"
      }
    }
  },
  "info": {
    "description": "Whippy Public API.\n\n## Authentication\n\nThe Whippy Public API supports two authentication methods:\n\n**API Key** — Generate an organization API token and send it with every request as the `X-WHIPPY-KEY` header.\n\n**OAuth Bearer Token** — Obtain an access token via the OAuth authorization flow and send it as a Bearer token in the `Authorization` header (e.g. `Authorization: Bearer <access_token>`).\n\n## Rate Limiting\n\nThe Whippy API is rate limited. Different endpoints have different rate limits.\nEach request to the API will return the following headers, which can be used to keep track of your rate limit status:\n * `x-ratelimit-max`: The maximum number of requests that the consumer is permitted to make in the given time period.\n * `x-ratelimit-remaining`: The number of requests remaining in the current rate limit window.\n * `x-ratelimit-interval-milliseconds`: The rate limit window in milliseconds.\n * `x-ratelimit-remaining-interval-milliseconds`: The time in milliseconds until the rate limit window resets.\n",
    "title": "Whippy Public API",
    "version": "1.0"
  },
  "openapi": "3.0.0",
  "paths": {
    "/v1/workflow-connections/{id}": {
      "get": {
        "callbacks": {},
        "deprecated": false,
        "description": "Returns a connection by ID. Secrets are never included.\n\nConnections are sensitive, so OAuth callers require `workflows:update`.\n",
        "operationId": "getWorkflowConnection",
        "parameters": [
          {
            "description": "Connection ID",
            "example": "550e8400-e29b-41d4-a716-446655440000",
            "in": "path",
            "name": "id",
            "required": true,
            "schema": {
              "format": "uuid",
              "type": "string",
              "x-struct": null,
              "x-validate": null
            }
          }
        ],
        "responses": {
          "200": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ShowWorkflowConnectionResponse"
                }
              }
            },
            "description": "Connection"
          },
          "401": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/NotAuthenticatedErrorResponse"
                }
              }
            },
            "description": "Not Authenticated"
          },
          "403": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ForbiddenErrorResponse"
                }
              }
            },
            "description": "Forbidden"
          },
          "404": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/WorkflowConnectionNotFound"
                }
              }
            },
            "description": "Not Found"
          },
          "503": {
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceUnavailableErrorResponse"
                }
              }
            },
            "description": "Service Unavailable"
          }
        },
        "security": [
          {
            "authorization": []
          },
          {
            "bearer": []
          }
        ],
        "summary": "Get Workflow Connection",
        "tags": [
          "Workflows"
        ]
      }
    }
  },
  "security": [],
  "servers": [
    {
      "url": "https://api.whippy.co",
      "variables": {}
    }
  ]
}
```