ื“ืœื’ ืœืชื•ื›ืŸ ื”ืจืืฉื™

Integration Endpoints

API endpoints for managing third-party integrations.

Integration Managementโ€‹

List Available Integration Typesโ€‹

GET /api/integration-type
Authorization: Bearer {token}

List Active Integrationsโ€‹

GET /api/integration?where[organizationId]={org-id}
Authorization: Bearer {token}

Response (200 OK):

{
"items": [
{
"id": "...",
"name": "GitHub",
"isActive": true,
"entitySettings": [...],
"organizationId": "...",
"integration": {
"name": "GitHub",
"imgSrc": "github.svg"
}
}
],
"total": 3
}

Create Integrationโ€‹

POST /api/integration
Authorization: Bearer {token}
Content-Type: application/json

{
"name": "GitHub",
"integrationId": "github-type-uuid",
"organizationId": "org-uuid"
}

GitHub Integrationโ€‹

Install GitHub Appโ€‹

POST /api/integration/github/install
Authorization: Bearer {token}
Content-Type: application/json

{
"installation_id": "12345",
"organizationId": "org-uuid"
}

List GitHub Repositoriesโ€‹

GET /api/integration/github/repositories?integrationId={integration-id}
Authorization: Bearer {token}

Sync GitHub Issuesโ€‹

POST /api/integration/github/sync-issues
Authorization: Bearer {token}
Content-Type: application/json

{
"integrationId": "integration-uuid",
"repository": "owner/repo-name"
}

GitHub Webhookโ€‹

POST /api/integration/github/webhook
X-GitHub-Event: {event-type}
X-Hub-Signature-256: {signature}

Upwork Integrationโ€‹

Connect Upwork Accountโ€‹

POST /api/integrations/upwork/token
Authorization: Bearer {token}
Content-Type: application/json

{
"accessToken": "upwork-access-token",
"accessTokenSecret": "upwork-token-secret",
"organizationId": "org-uuid"
}

Sync Upwork Work Diaryโ€‹

POST /api/integrations/upwork/sync-contracts
Authorization: Bearer {token}
Content-Type: application/json

{
"integrationId": "integration-uuid",
"dateRange": {
"start": "2024-01-01",
"end": "2024-01-31"
}
}

HubStaff Integrationโ€‹

Connect HubStaffโ€‹

POST /api/integrations/hubstaff/token
Authorization: Bearer {token}
Content-Type: application/json

{
"accessToken": "hubstaff-access-token",
"refreshToken": "hubstaff-refresh-token",
"organizationId": "org-uuid"
}

Sync HubStaff Activitiesโ€‹

POST /api/integrations/hubstaff/sync-activities
Authorization: Bearer {token}
Content-Type: application/json

{
"integrationId": "integration-uuid",
"dateRange": {
"start": "2024-01-01",
"end": "2024-01-31"
}
}

Activepieces Integrationโ€‹

Setupโ€‹

POST /api/integration/activepieces/setup
Authorization: Bearer {token}
Content-Type: application/json

{
"apiKey": "your-activepieces-api-key"
}

Create/Update Connectionโ€‹

POST /api/integration/activepieces/connection
Authorization: Bearer {token}
Content-Type: application/json

{
"pieceName": "piece-name",
"displayName": "My Connection",
"type": "SECRET_TEXT",
"value": { "secret": "..." }
}

List Connectionsโ€‹

GET /api/integration/activepieces/connections/{integrationId}
Authorization: Bearer {token}

Get Connectionโ€‹

GET /api/integration/activepieces/connection/{integrationId}
Authorization: Bearer {token}

Delete Connectionโ€‹

DELETE /api/integration/activepieces/connection/{integrationId}
Authorization: Bearer {token}

OAuth: Authorize (GET)โ€‹

GET /api/integration/activepieces/authorize?client_id={id}&redirect_uri={uri}&scope={scope}&state={state}

Redirects the user to the Gauzy consent screen at /pages/auth/oauth/authorize.

OAuth: Authorize (POST)โ€‹

POST /api/integration/activepieces/authorize
Authorization: Bearer {token}

Called by the Gauzy frontend after the user clicks "Authorize". Returns an HMAC-signed, single-use authorization code and redirects back to Activepieces.

OAuth: Token Exchangeโ€‹

POST /api/integration/activepieces/token
Content-Type: application/x-www-form-urlencoded

grant_type=authorization_code&code={code}&client_id={id}&client_secret={secret}&redirect_uri={uri}

Response (200 OK):

{
"access_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 86400
}

Integration Settingsโ€‹

Get Integration Settingsโ€‹

GET /api/integration-setting?where[integrationId]={integration-id}
Authorization: Bearer {token}

Update Integration Settingโ€‹

PUT /api/integration-setting/{id}
Authorization: Bearer {token}
Content-Type: application/json

{
"settingsName": "sync_frequency",
"settingsValue": "30"
}

Entity Settings (Integration-Entity Mapping)โ€‹

Get Entity Settingsโ€‹

GET /api/integration-entity-setting?where[integrationId]={integration-id}
Authorization: Bearer {token}

Update Entity Settingโ€‹

PUT /api/integration-entity-setting/{id}
Authorization: Bearer {token}
Content-Type: application/json

{
"entity": "Project",
"sync": true
}

Supported Integrationsโ€‹

IntegrationStatusSync Direction
GitHubโœ… ActiveBi-directional
Upworkโœ… ActiveImport
HubStaffโœ… ActiveImport
Jiraโœ… ActiveBi-directional
Zapierโœ… ActiveWebhook-based
Make.comโœ… ActiveWebhook-based
ActivePiecesโœ… ActiveBi-directional

Required Permissionsโ€‹

EndpointPermission
GET /api/integrationINTEGRATION_VIEW
POST /api/integrationINTEGRATION_EDIT
POST /api/integration/github/*INTEGRATION_EDIT