openapi: 3.2.0 info: title: Pipeshub Connector Control API version: 1.0.0 contact: name: API Support email: support@pipeshub.com description: 'Operations tagged Connector Control across 2 of this provider''s published API definitions: pipeshub-openapi.yaml, pipeshub-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: '{instance_url}/api/v1' description: Base API URL variables: instance_url: default: https://app.pipeshub.com description: Base server URL (without /api/v1) - url: '{instance_url}' description: Root URL (used for MCP endpoints mounted at /mcp) variables: instance_url: default: https://app.pipeshub.com description: Base server URL security: - bearerAuth: [] - oauth2: [] tags: - name: Connector Control description: Enable/disable connectors for sync or agent functionality paths: /connectors/{connectorId}/toggle: post: tags: - Connector Control summary: Toggle connector sync or agent description: 'Enable or disable a connector for sync or agent functionality. Toggle Types: sync - Enable/disable data synchronization agent - Enable/disable AI agent integration Prerequisites for Enabling: Connector must be configured (isConfigured: true) For OAuth connectors: Must be authenticated (isAuthenticated: true) For agent: Connector must support agent (supportsAgent: true) Local FS: must be enabled from the owner device via the desktop app, which sends deviceId and deviceName. The first enable claims that device as owner. Permissions: Team scope: Requires admin Personal scope: Only creator can toggle' operationId: toggleConnector security: - bearerAuth: [] - oauth2: - connector:write parameters: - name: connectorId in: path required: true schema: type: string requestBody: required: true description: Request payload content: application/json: schema: $ref: '#/components/schemas/ConnectorToggleRequest' responses: '200': description: Connector toggled content: application/json: schema: type: object properties: success: type: boolean message: type: string example: Sync enabled successfully connector: $ref: '#/components/schemas/ConnectorInstance' '400': description: 'Cannot toggle. Possible reasons:
' '401': description: Unauthorized '403': description: Permission denied '404': description: Connector not found '409': description: 'Local FS sync cannot be enabled. details.code is one of:
' content: application/json: schema: $ref: '#/components/schemas/LocalFsDesktopRefusal' servers: - url: '{instance_url}/api/v1' description: Base API URL variables: instance_url: default: https://app.pipeshub.com description: Base server URL (without /api/v1) - url: '{instance_url}' description: Root URL (used for MCP endpoints mounted at /mcp) variables: instance_url: default: https://app.pipeshub.com description: Base server URL components: schemas: LocalFsDesktopRefusal: type: object description: '409 body returned when a Local FS connector cannot sync because of its owner device. ' required: - success - code - message - details properties: success: type: boolean example: false code: type: string enum: - DESKTOP_OFFLINE - DESKTOP_UNCLAIMED - DESKTOP_OWNED_BY_OTHER_DEVICE message: type: string example: No desktop is connected for connector conn_abc123. Open the Pipeshub desktop app on the machine that owns this folder. details: type: object required: - code - connectorId - retryable properties: code: type: string enum: - DESKTOP_OFFLINE - DESKTOP_UNCLAIMED - DESKTOP_OWNED_BY_OTHER_DEVICE connectorId: type: string retryable: type: boolean ownerDeviceName: type: string description: Name of the owner device, when the connector has one. ConnectorAuthType: type: string description: 'Authentication method required by the connector:
' enum: - OAUTH - OAUTH_ADMIN_CONSENT - API_TOKEN - USERNAME_PASSWORD - NONE ConnectorInstance: type: object description: 'A configured connector instance. Represents an active or configured connection to an external service. ' properties: connectorId: type: string description: Unique instance identifier example: conn_abc123 connectorType: type: string description: Type of connector (from registry) example: google-drive instanceName: type: string description: User-defined name for this instance example: Company Google Drive scope: $ref: '#/components/schemas/ConnectorScope' authType: $ref: '#/components/schemas/ConnectorAuthType' createdBy: type: string description: User ID who created this instance orgId: type: string description: Organization ID isActive: type: boolean description: Whether connector is enabled for syncing/agent desktopOnline: type: boolean description: 'Whether the owner device (`ownerDeviceId`) is currently connected. Local FS only; omitted otherwise, and while the connector has no owner. ' ownerDeviceId: type: string description: 'Local FS only. The desktop device that owns this connector, set when sync is first enabled from the desktop app. ' ownerDeviceName: type: string description: 'Local FS only. Display name of the desktop device that owns this connector, set when sync is first enabled from the desktop app. ' example: WIN-LAPTOP isConfigured: type: boolean description: Whether all required configuration is complete isAuthenticated: type: boolean description: Whether authentication is complete and valid pendingFullSync: type: boolean description: Whether a full sync is pending due to filter changes or other configuration updates syncEnabled: type: boolean description: Whether sync is enabled agentEnabled: type: boolean description: Whether agent integration is enabled lastSyncAt: type: string format: date-time description: Timestamp of last successful sync createdAt: type: string format: date-time updatedAt: type: string format: date-time ConnectorScope: type: string description: 'Scope determines visibility and access control for connectors:
' enum: - team - personal example: team ConnectorToggleRequest: type: object description: Request to toggle connector active status required: - type properties: type: type: string enum: - sync - agent description: 'Toggle type: ''sync'' for data synchronization, ''agent'' for AI agent integration' deviceId: type: string description: 'Sent by the desktop app. Required when enabling sync on a Local FS connector with no owner yet; must match `ownerDeviceId` afterwards. ' deviceName: type: string description: 'Sent by the desktop app with `deviceId`. Stored as `ownerDeviceName` when the device claims the connector. ' securitySchemes: bearerAuth: type: http scheme: bearer bearerFormat: JWT description: 'JWT Bearer token for authenticated requests. A personal access token (see the **Personal Access Tokens** tag) is a `phpat_`-prefixed variant of this same JWT — e.g. `phpat_eyJhbGci...`. The prefix is display-only, added for secret-scanner detectability; the gateway strips it before verifying the token, so send it exactly as issued, prefix included. ' scopedToken: type: http scheme: bearer bearerFormat: JWT description: 'Scoped JWT token for service-to-service authentication. Format: "Bearer {scoped_token}" Required scopes vary by endpoint. ' oauth2: type: oauth2 description: 'OAuth 2.0 authentication with fine-grained scopes. Supports authorization_code (with PKCE) and client_credentials flows. OAuth tokens are Bearer JWTs — use the same Authorization header as regular tokens. For **client_credentials**, machine JWTs may use `userId === client_id`; the Node gateway resolves the OAuth app creator — see **OAuth Provider** tag. ' flows: authorizationCode: authorizationUrl: /api/v1/oauth2/authorize tokenUrl: /api/v1/oauth2/token refreshUrl: /api/v1/oauth2/token scopes: openid: OpenID Connect authentication profile: User profile information email: User email address offline_access: Offline access (refresh tokens) org:read: Read organization information org:write: Update organization settings org:admin: Full organization administration user:read: Read user profiles user:write: Update user profiles user:invite: Invite new users user:delete: Delete users usergroup:read: Read user groups usergroup:write: Create and manage user groups team:read: Read team information team:write: Create and manage teams kb:read: Read knowledge bases and records kb:write: Create and update knowledge bases kb:delete: Delete knowledge bases and records kb:upload: Upload files to knowledge bases semantic:read: Read semantic search results and history semantic:write: Execute semantic search semantic:delete: Delete semantic search history conversation:read: Read conversations conversation:write: Create and manage conversations conversation:chat: Send messages in conversations project:read: Read projects and their conversations project:write: Create and manage projects project:delete: Delete projects agent:read: Read AI agents agent:write: Create and manage AI agents agent:execute: Execute AI agents connector:read: Read connector configurations connector:write: Create and update connectors connector:sync: Trigger connector synchronization connector:delete: Delete connectors config:read: Read system configuration config:write: Update system configuration crawl:read: Read crawling jobs crawl:write: Create and manage crawling jobs crawl:delete: Delete crawling jobs clientCredentials: tokenUrl: /api/v1/oauth2/token scopes: openid: OpenID Connect authentication profile: User profile information email: User email address offline_access: Offline access (refresh tokens) org:read: Read organization information org:write: Update organization settings org:admin: Full organization administration user:read: Read user profiles user:write: Update user profiles user:invite: Invite new users user:delete: Delete users usergroup:read: Read user groups usergroup:write: Create and manage user groups team:read: Read team information team:write: Create and manage teams kb:read: Read knowledge bases and records kb:write: Create and update knowledge bases kb:delete: Delete knowledge bases and records kb:upload: Upload files to knowledge bases semantic:write: Execute semantic search semantic:read: Read semantic search results and history semantic:delete: Delete semantic search history conversation:read: Read conversations conversation:write: Create and manage conversations conversation:chat: Send messages in conversations project:read: Read projects and their conversations project:write: Create and manage projects project:delete: Delete projects agent:read: Read AI agents agent:write: Create and manage AI agents agent:execute: Execute AI agents connector:read: Read connector configurations connector:write: Create and update connectors connector:sync: Trigger connector synchronization connector:delete: Delete connectors config:read: Read system configuration config:write: Update system configuration crawl:read: Read crawling jobs crawl:write: Create and manage crawling jobs x-refined-from: - pipeshub-openapi.yaml - pipeshub-openapi.yml