Skip to main content

Connectors

The Connectors API manages your company's external connectors — Gmail, Outlook, HubSpot, QuickBooks, Acumatica, and more — through a single set of endpoints. Instead of a separate path per integration, you select the connector type in the request body and the platform routes the call to the matching connector utility. Beyond listing and inspection, you can delete, share, and transfer connectors, obtain OAuth authorization URLs to connect or reconnect accounts, create direct-credential connectors, and call family-specific connector actions.

All endpoints are POST requests under the base path https://api.autessa.com/autessa_poweruser/connectors and authenticate with a poweruser key in the Authorization header, formatted as pwrusr:{key_id}:{secret}.


Connector types​

Every request selects a connector type with the connectorType field. The value is one of the enum names below, which also determine how the underlying connector authenticates with the external service:

connectorTypeAuth type
QUICKBOOKSOAUTH
GMAILOAUTH
GOOGLE_CALENDAROAUTH
GOOGLE_ANALYTICSOAUTH
BOXOAUTH
LINKEDINOAUTH
TWITTEROAUTH
FACEBOOKOAUTH
INSTAGRAMOAUTH
REDDITOAUTH
THREADSOAUTH
ZENDESKOAUTH
YOUTUBEOAUTH
TIKTOKOAUTH
ACUMATICAOAUTH
HUBSPOTOAUTH
ZOHO_CRMOAUTH
OUTLOOKOAUTH
OUTLOOK_CALENDAROAUTH
NOTIONOAUTH
MAILCHIMPOAUTH_NO_REFRESH
GHOSTAPI_KEY
BEEHIIVAPI_KEY
BLUESKYUSERNAME_PASSWORD
MEETING_BOTOAUTH
AUTESSA_PAYMENTSOAUTH_NO_REFRESH

Auth types: OAUTH is standard OAuth2 with access and refresh tokens, OAUTH_NO_REFRESH is OAuth with an access token only (e.g. Mailchimp), API_KEY is a single API key (e.g. Ghost), and USERNAME_PASSWORD is a handle plus app password that authenticates at runtime (e.g. Bluesky).

A connector type is served here as soon as its utility registers with the platform's connector registry. MEETING_BOT and AUTESSA_PAYMENTS do not yet have a registered utility: /all and /get requests for those two types currently fail with a server error, and every other endpoint returns a 422 with errors: ["Connector type MEETING_BOT is not supported via the poweruser API"].


Capabilities by connector family​

Every registered connector type supports /all and /get. The management, OAuth, and direct-credential endpoints are opt-in per family:

connectorType/delete/share/get-sharing-details/transfer-ownership/connect-url, /reconnect-url/create/test-connection
QUICKBOOKS✓✓✓✓✓——
GMAIL✓✓✓✓✓——
GOOGLE_CALENDAR✓✓✓✓✓——
GOOGLE_ANALYTICS✓✓——✓——
BOX✓✓✓✓✓——
LINKEDIN✓✓✓✓✓——
TWITTER✓✓✓✓✓——
FACEBOOK✓✓✓✓✓——
INSTAGRAM✓✓✓✓✓——
REDDIT✓✓✓✓✓——
THREADS✓✓✓✓✓——
ZENDESK✓✓✓✓✓——
YOUTUBE✓———✓——
TIKTOK✓———✓——
ACUMATICA✓✓✓✓✓——
HUBSPOT✓✓✓✓✓——
ZOHO_CRM✓✓✓✓✓——
OUTLOOK✓✓✓✓✓——
OUTLOOK_CALENDAR✓✓✓✓✓——
NOTION✓✓✓✓✓——
MAILCHIMP✓✓✓✓✓——
GHOST✓✓✓✓—✓✓
BEEHIIV✓————✓✓
BLUESKY✓✓✓✓—✓—

Calling an operation a family does not support returns HTTP 422 with an explanatory message in the body:

422 Unprocessable Entity
{
"errors": [
"Operation 'share' is not supported for connector type TIKTOK."
]
}

Updating an existing connector's configuration (rename, activate/deactivate, rotate an API key) is not available through the Poweruser API — update payloads differ per family, so connector updates remain UI-only in the builder.


List Connectors POST/all​

Lists all active connectors of the given type in your company that the calling user can see. Connectors the caller has no access level on are filtered out of the result.

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector type to list, e.g. GMAIL. One of the enum values in Connector types. Omitting it returns errors: ["connectorType is required"].

  • Name
    connectorId
    Type
    string
    Description

    Ignored by this endpoint. Only used by /get.

Response​

  • Name
    connectors
    Type
    array<object>
    Description

    The visible connectors of the requested type. Each element is a connector object (see below).

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred. Absent on success.

Connector object​

Every connector type shares this common set of fields:

  • Name
    connectorId
    Type
    string
    Description

    Unique ID of the connector.

  • Name
    companyId
    Type
    string
    Description

    The company the connector belongs to.

  • Name
    ownerId
    Type
    string
    Description

    The user who owns the connector.

  • Name
    connectorName
    Type
    string
    Description

    Display name of the connector.

  • Name
    ownerType
    Type
    string
    Description

    The owner type of the connector.

  • Name
    sharingLevel
    Type
    string
    Description

    How the connector is shared: PRIVATE, SPECIFIC_MEMBER, or COMPANY.

  • Name
    companyPermissionLevel
    Type
    string
    Description

    The access level granted company-wide when shared at the COMPANY level: READ, WRITE, PUBLISH, or ADMIN.

  • Name
    isActive
    Type
    boolean
    Description

    Whether the connector is active.

  • Name
    createdAt
    Type
    string
    Description

    When the connector was created (ISO-8601, e.g. 2026-05-04T18:22:10).

  • Name
    updatedAt
    Type
    string
    Description

    When the connector was last updated (ISO-8601).

  • Name
    usersWithAccess
    Type
    array<object>
    Description

    Users the connector is shared with. Each entry has userEmail (string), userId (string), and accessLevel (string).

  • Name
    currentUserAccessLevel
    Type
    string
    Description

    The calling user's effective access level on the connector: READ, WRITE, PUBLISH, or ADMIN.

On top of these, each connector type adds its own fields. For example, GMAIL connectors include the connected gmailAccountEmail and the availableLabels on the mailbox, while ACUMATICA connectors include the instance hostUrl, databaseIdentifier, accountEmail, accountName, and tokenExpiresAt.

curl https://api.autessa.com/autessa_poweruser/connectors/all \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "GMAIL"
}'
JSON
{
"connectors": [
{
"connectorId": "V1StGXR8Z5",
"companyId": "kTn4vB2p9Q",
"ownerId": "aB3xQ9LmZ2",
"connectorName": "Support Inbox",
"ownerType": "USER",
"gmailAccountEmail": "support@example.com",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ",
"isActive": true,
"createdAt": "2026-05-04T18:22:10",
"updatedAt": "2026-06-12T09:41:23",
"usersWithAccess": [
{
"userEmail": "ops@example.com",
"userId": "pQ7wY4RdX1",
"accessLevel": "WRITE"
}
],
"currentUserAccessLevel": "ADMIN",
"availableLabels": [
{
"labelId": "Label_12",
"labelName": "Tickets",
"labelType": "user",
"isEnabled": true,
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}
]
}

Get Connector POST/get​

Fetches a single connector by ID. The connector must belong to your company and the calling user must have at least READ access to it; otherwise the response carries an error instead of the connector.

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector's type, e.g. ACUMATICA. One of the enum values in Connector types. Omitting it returns errors: ["connectorType is required"].

  • Name
    connectorId
    Type
    string
    Description

    The ID of the connector to fetch. Omitting it returns errors: ["connectorId is required"].

Response​

  • Name
    connector
    Type
    object
    Description

    The connector object — the same shape as the elements of connectors in List Connectors: the common fields (connectorId, companyId, ownerId, connectorName, ownerType, sharingLevel, companyPermissionLevel, isActive, createdAt, updatedAt, usersWithAccess, currentUserAccessLevel) plus the type-specific fields for the requested connectorType.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred (e.g. "Connector not found"). Absent on success.

curl https://api.autessa.com/autessa_poweruser/connectors/get \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "ACUMATICA",
"connectorId": "mN8cE5TvW3"
}'
JSON
{
"connector": {
"connectorId": "mN8cE5TvW3",
"companyId": "kTn4vB2p9Q",
"ownerId": "aB3xQ9LmZ2",
"connectorName": "Production ERP",
"ownerType": "USER",
"hostUrl": "https://erp.example.com",
"databaseIdentifier": "CompanyDB",
"accountEmail": "erp-admin@example.com",
"accountName": "ERP Admin",
"sharingLevel": "SPECIFIC_MEMBER",
"companyPermissionLevel": "READ",
"isActive": true,
"tokenExpiresAt": "2026-07-01T12:00:00",
"createdAt": "2026-04-18T14:03:55",
"updatedAt": "2026-06-28T08:17:42",
"usersWithAccess": [
{
"userEmail": "finance@example.com",
"userId": "pQ7wY4RdX1",
"accessLevel": "READ"
}
],
"currentUserAccessLevel": "WRITE"
}
}

Delete Connector POST/delete​

Permanently deletes a connector. Supported by every registered connector family. Deletion is enforced server-side: deleting a connector you don't own returns a permission error such as "Access denied: Only the owner can delete this connector".

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector's type. Omitting it returns a 422 with errors: ["connectorType is required"].

  • Name
    connectorId
    Type
    string
    Description

    The connector to delete. Omitting it returns a 422 with errors: ["connectorId is required"].

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message, e.g. "Connector deleted successfully". GOOGLE_ANALYTICS returns a boolean deleted and ACUMATICA a boolean success instead of message.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

curl https://api.autessa.com/autessa_poweruser/connectors/delete \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "GMAIL",
"connectorId": "V1StGXR8Z5"
}'
JSON
{
"message": "Connector deleted successfully"
}

Share Connector POST/share​

Sets the connector's sharing level and per-user grants in one call. Requires ADMIN access on the connector. Not supported for BEEHIIV, TIKTOK, and YOUTUBE (returns a 422 — see Capabilities by connector family).

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector's type.

  • Name
    connectorId
    Type
    string
    Description

    The connector to share.

  • Name
    level
    Type
    string
    Description

    Sharing level: PRIVATE, SPECIFIC_MEMBER, or COMPANY.

  • Name
    accessLevel
    Type
    string
    Description

    When level is COMPANY, the access level every company member gets: READ, WRITE, PUBLISH, or ADMIN.

  • Name
    usersToAdd
    Type
    array<object>
    Description

    Users to grant access. Each entry: userEmail or userId (string), plus accessLevel.

  • Name
    usersToRemove
    Type
    array<object>
    Description

    Users whose access to revoke, same entry shape.

Response​

  • Name
    level
    Type
    string
    Description

    The resulting sharing level.

  • Name
    accessLevel
    Type
    string
    Description

    The resulting company-wide access level, when shared with the company.

  • Name
    usersWithAccess
    Type
    array<object>
    Description

    The resulting per-user grants (userEmail, userId, accessLevel).

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

GOOGLE_ANALYTICS and ACUMATICA return the updated connector object instead of the level/accessLevel/usersWithAccess triple.

curl https://api.autessa.com/autessa_poweruser/connectors/share \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "GMAIL",
"connectorId": "V1StGXR8Z5",
"level": "SPECIFIC_MEMBER",
"usersToAdd": [
{ "userEmail": "ops@example.com", "accessLevel": "WRITE" }
],
"usersToRemove": []
}'
JSON
{
"level": "SPECIFIC_MEMBER",
"usersWithAccess": [
{
"userEmail": "ops@example.com",
"userId": "pQ7wY4RdX1",
"accessLevel": "WRITE"
}
]
}

Get Sharing Details POST/get-sharing-details​

Returns the connector's current sharing configuration and the calling user's own access level. Not supported for BEEHIIV, GOOGLE_ANALYTICS, TIKTOK, and YOUTUBE (returns a 422).

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector's type.

  • Name
    connectorId
    Type
    string
    Description

    The connector to inspect.

Response​

  • Name
    sharingLevel
    Type
    string
    Description

    PRIVATE, SPECIFIC_MEMBER, or COMPANY.

  • Name
    companyPermissionLevel
    Type
    string
    Description

    Access level granted company-wide, when sharingLevel is COMPANY.

  • Name
    sharedWith
    Type
    array<object>
    Description

    Per-user grants: userEmail, userId, accessLevel.

  • Name
    userAccessLevel
    Type
    string
    Description

    The calling user's effective access level.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

curl https://api.autessa.com/autessa_poweruser/connectors/get-sharing-details \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "GMAIL",
"connectorId": "V1StGXR8Z5"
}'
JSON
{
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ",
"sharedWith": [],
"userAccessLevel": "ADMIN"
}

Transfer Ownership POST/transfer-ownership​

Transfers the connector to another member of the company. Only the current owner may call this, and the new owner must be a member of the company who already has some access to the connector (share it with them first). Not supported for BEEHIIV, GOOGLE_ANALYTICS, TIKTOK, and YOUTUBE (returns a 422).

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector's type.

  • Name
    connectorId
    Type
    string
    Description

    The connector to transfer.

  • Name
    newOwnerId
    Type
    string
    Description

    User ID of the new owner. Omitting it returns a 422 with errors: ["newOwnerId is required"]. A user outside the company returns "New owner does not exist", and one without access returns "New owner does not have access to connector yet.".

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message.

  • Name
    newOwnerId
    Type
    string
    Description

    The user who now owns the connector. ACUMATICA returns the updated connector object instead of message/newOwnerId.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

curl https://api.autessa.com/autessa_poweruser/connectors/transfer-ownership \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "GMAIL",
"connectorId": "V1StGXR8Z5",
"newOwnerId": "uB7nT2wQ9k"
}'
JSON
{
"message": "Ownership transferred successfully",
"newOwnerId": "uB7nT2wQ9k"
}

Get Connect URL POST/connect-url​

Returns the external provider's authorization URL to connect a new OAuth connector. Only the URL discovery happens through the API — the OAuth dance itself stays in the browser:

  1. Call /connect-url with the connectorType (and any family-specific fields below).
  2. Open the returned authorizationUrl in a browser — typically by sending it to the user whose account should be connected.
  3. The user signs in and grants consent. The provider redirects to Autessa's OAuth callback, which stores the tokens server-side — there is nothing further for you to call.
  4. Poll /all for the connector type until the new connector appears with isActive: true.

The OAuth state embeds the poweruser key's linked user and company, so the resulting connector is owned by the key's linked user.

Supported by every OAuth family. The direct-credential families (BEEHIIV, GHOST, BLUESKY) return a 422 — use /create for those instead.

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector type to connect, e.g. GMAIL.

  • Name
    connectorName
    Type
    string
    Description

    Display name for the new connector. Applies to all families.

  • Name
    subdomain
    Type
    string
    Description

    ZENDESK only (required) — the Zendesk subdomain to authorize against.

  • Name
    hostUrl
    Type
    string
    Description

    ACUMATICA only — the Acumatica instance URL.

  • Name
    databaseIdentifier
    Type
    string
    Description

    ACUMATICA only — the tenant/database identifier.

  • Name
    clientId
    Type
    string
    Description

    ACUMATICA only — the OAuth client ID of the connected application registered on the instance.

  • Name
    clientSecret
    Type
    string
    Description

    ACUMATICA only — the OAuth client secret of the connected application.

  • Name
    loginMethod
    Type
    string
    Description

    INSTAGRAM only — FACEBOOK_LOGIN (default) or INSTAGRAM_LOGIN.

Response​

  • Name
    authorizationUrl
    Type
    string
    Description

    The provider authorization URL to open in a browser.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

curl https://api.autessa.com/autessa_poweruser/connectors/connect-url \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "GMAIL",
"connectorName": "Support Inbox"
}'
JSON
{
"authorizationUrl": "https://accounts.google.com/o/oauth2/v2/auth?client_id=...&state=..."
}

Get Reconnect URL POST/reconnect-url​

Returns the provider authorization URL to re-authenticate an existing OAuth connector — for example after the user revoked access, the refresh token expired, or QuickBooks access was revoked with /quickbooks/revoke-access. The flow is the same as /connect-url: open the URL in a browser, let the user re-consent, and the callback completes server-side. Afterwards poll /get with the same connectorId until the connector reports isActive: true.

Supported by every OAuth family; direct-credential families return a 422.

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    The connector's type.

  • Name
    connectorId
    Type
    string
    Description

    The existing connector to re-authenticate. Omitting it returns a 422 with errors: ["connectorId is required"].

Response​

  • Name
    authorizationUrl
    Type
    string
    Description

    The provider authorization URL to open in a browser.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

curl https://api.autessa.com/autessa_poweruser/connectors/reconnect-url \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "QUICKBOOKS",
"connectorId": "mN8cE5TvW3"
}'
JSON
{
"authorizationUrl": "https://appcenter.intuit.com/connect/oauth2?client_id=...&state=..."
}

Create Connector POST/create​

Creates a connector directly from credentials — no OAuth dance. Only the direct-credential families support this endpoint; OAuth families return a 422 such as "Operation 'create' is not supported for connector type GMAIL." (use /connect-url for those). Credentials are validated against the external service before the connector is saved — for example, BEEHIIV tests the API key and fetches its publications first.

Per family:

  • BEEHIIV — connectorName + apiKey.
  • GHOST — connectorName + adminApiKey + apiUrl.
  • BLUESKY — connectorName + handle + appPassword.

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    BEEHIIV, GHOST, or BLUESKY.

  • Name
    connectorName
    Type
    string
    Description

    Display name for the new connector.

  • Name
    apiKey
    Type
    string
    Description

    BEEHIIV — the Beehiiv API key.

  • Name
    adminApiKey
    Type
    string
    Description

    GHOST — the Ghost Admin API key.

  • Name
    apiUrl
    Type
    string
    Description

    GHOST — the Ghost site's API URL.

  • Name
    handle
    Type
    string
    Description

    BLUESKY — the Bluesky handle.

  • Name
    appPassword
    Type
    string
    Description

    BLUESKY — a Bluesky app password (not the account password).

Response​

  • Name
    connector
    Type
    object
    Description

    The newly created connector object, in the family's shape (see Connector object).

  • Name
    message
    Type
    string
    Description

    Confirmation message.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred (e.g. invalid credentials).

curl https://api.autessa.com/autessa_poweruser/connectors/create \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "BEEHIIV",
"connectorName": "Company Newsletter",
"apiKey": "'"$BEEHIIV_API_KEY"'"
}'
JSON
{
"connector": {
"connectorId": "kZ3mQ9pW2x",
"companyId": "kTn4vB2p9Q",
"ownerId": "aB3xQ9LmZ2",
"connectorName": "Company Newsletter",
"ownerType": "USER",
"publications": [
{
"id": "pub_00000000-0000-0000-0000-000000000000",
"name": "Weekly Digest"
}
],
"sharingLevel": "PRIVATE",
"isActive": true,
"createdAt": "2026-07-01T10:15:00",
"updatedAt": "2026-07-01T10:15:00",
"currentUserAccessLevel": "ADMIN"
},
"message": "Beehiiv connector created successfully"
}

Test Connection POST/test-connection​

Tests connectivity with the external service for the direct-credential families. What is tested depends on the family:

  • BEEHIIV — validates a pre-create apiKey and returns the publications it can access, so you can test before calling /create.
  • GHOST — tests an existing connector identified by connectorId.
  • BLUESKY — not supported (422); credentials are validated at create time instead.

OAuth families return a 422 unsupported-operation error.

Request Body​

  • Name
    connectorType
    Type
    string
    Description

    BEEHIIV or GHOST.

  • Name
    apiKey
    Type
    string
    Description

    BEEHIIV — the API key to validate.

  • Name
    connectorId
    Type
    string
    Description

    GHOST — the existing connector to test.

Response​

  • Name
    connectionSuccessful
    Type
    boolean
    Description

    Whether the connection test passed.

  • Name
    message
    Type
    string
    Description

    Human-readable result, e.g. "Connection successful. Found 2 publication(s).".

  • Name
    publications
    Type
    array<object>
    Description

    BEEHIIV only — the publications visible to the API key. Each entry has id and name.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

curl https://api.autessa.com/autessa_poweruser/connectors/test-connection \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorType": "BEEHIIV",
"apiKey": "'"$BEEHIIV_API_KEY"'"
}'
JSON
{
"connectionSuccessful": true,
"message": "Connection successful. Found 2 publication(s).",
"publications": [
{
"id": "pub_00000000-0000-0000-0000-000000000000",
"name": "Weekly Digest"
},
{
"id": "pub_11111111-1111-1111-1111-111111111111",
"name": "Product Updates"
}
]
}

Connector actions​

Beyond the uniform surface above, some families expose family-specific actions under https://api.autessa.com/autessa_poweruser/connectors/{family}/.... These are the same operations the builder UI uses, with the same request and response shapes. All are POST requests with a JSON body and the same poweruser authentication; the connectorId must reference a connector of the matching family. No connectorType field is needed — the family is in the path.

Families without an action listed here (LinkedIn, Twitter, HubSpot, and so on) have no family-specific actions; they are fully covered by the endpoints above.

View available Gmail labels POST/gmail/view-available-labels​

Lists the labels on the connected Gmail mailbox and whether each one is enabled for use on the platform. Requires at least READ access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Gmail connector to inspect.

Response​

  • Name
    labels
    Type
    array<object>
    Description

    The mailbox's labels. Each entry has labelId, labelName, labelType (system or user), isEnabled, currentUserAccessLevel, sharingLevel, and companyPermissionLevel.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/gmail/view-available-labels \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"labels": [
{
"labelId": "Label_12",
"labelName": "Tickets",
"labelType": "user",
"isEnabled": true,
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}

Update available Gmail labels POST/gmail/update-available-labels​

Enables or disables mailbox labels for use on the platform. Requires ADMIN access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Gmail connector to update.

  • Name
    labelsToEnable
    Type
    array<string>
    Description

    Label IDs to enable.

  • Name
    labelsToDisable
    Type
    array<string>
    Description

    Label IDs to disable.

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message, e.g. "Label settings updated successfully".

  • Name
    enabledLabels
    Type
    array<object>
    Description

    The resulting label list, same entry shape as view-available-labels.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/gmail/update-available-labels \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"labelsToEnable": ["Label_12"],
"labelsToDisable": ["Label_7"]
}'
JSON
{
"message": "Label settings updated successfully",
"enabledLabels": [
{
"labelId": "Label_12",
"labelName": "Tickets",
"labelType": "user",
"isEnabled": true,
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}

View available Box folders POST/box/view-available-folders​

Lists the Box folders known to the connector and whether each one is enabled for use on the platform.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Box connector to inspect.

Response​

  • Name
    folders
    Type
    array<object>
    Description

    The known folders. Each entry has folderId, folderName, folderPath, isEnabled, currentUserAccessLevel, sharingLevel, and companyPermissionLevel.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/box/view-available-folders \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"folders": [
{
"folderId": "184029571230",
"folderName": "Contracts",
"folderPath": "/Legal/Contracts",
"isEnabled": true,
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}

Update available Box folders POST/box/update-available-folders​

Enables or disables Box folders for use on the platform. Requires ADMIN access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Box connector to update.

  • Name
    foldersToEnable
    Type
    array<string>
    Description

    Folder IDs to enable.

  • Name
    foldersToDisable
    Type
    array<string>
    Description

    Folder IDs to disable.

Response​

  • Name
    folders
    Type
    array<object>
    Description

    The resulting folder list, same entry shape as view-available-folders.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/box/update-available-folders \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"foldersToEnable": ["184029571230"],
"foldersToDisable": []
}'
JSON
{
"folders": [
{
"folderId": "184029571230",
"folderName": "Contracts",
"folderPath": "/Legal/Contracts",
"isEnabled": true,
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}

Sync Box folders POST/box/sync-folders​

Refreshes the connector's folder list from Box, adding newly discovered folders. Requires ADMIN access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Box connector to sync.

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message.

  • Name
    foldersAdded
    Type
    integer
    Description

    How many new folders the sync discovered.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/box/sync-folders \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"message": "Folders synced successfully",
"foldersAdded": 3
}

View available Google calendars POST/google-calendar/view-available-calendars​

Lists the calendars on the connected Google account and whether each one is enabled for use on the platform.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Google Calendar connector to inspect.

Response​

  • Name
    calendars
    Type
    array<object>
    Description

    The account's calendars. Each entry has calendarId, calendarName, isEnabled, timezone, currentUserAccessLevel, sharingLevel, and companyPermissionLevel.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/google-calendar/view-available-calendars \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"calendars": [
{
"calendarId": "team@example.com",
"calendarName": "Team Calendar",
"isEnabled": true,
"timezone": "America/Los_Angeles",
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}

Update available Google calendars POST/google-calendar/update-available-calendars​

Enables or disables calendars for use on the platform. Requires ADMIN access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Google Calendar connector to update.

  • Name
    calendarsToEnable
    Type
    array<string>
    Description

    Calendar IDs to enable.

  • Name
    calendarsToDisable
    Type
    array<string>
    Description

    Calendar IDs to disable.

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message.

  • Name
    enabledCalendars
    Type
    array<object>
    Description

    The resulting calendar list, same entry shape as view-available-calendars.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/google-calendar/update-available-calendars \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"calendarsToEnable": ["team@example.com"],
"calendarsToDisable": []
}'
JSON
{
"message": "Calendar settings updated successfully",
"enabledCalendars": [
{
"calendarId": "team@example.com",
"calendarName": "Team Calendar",
"isEnabled": true,
"timezone": "America/Los_Angeles",
"currentUserAccessLevel": "ADMIN",
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ"
}
]
}

Sync Google calendars POST/google-calendar/sync-calendars​

Forces a re-sync of the calendar list from Google, bypassing the platform's sync throttling. Requires WRITE, PUBLISH, or ADMIN access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Google Calendar connector to sync.

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message.

  • Name
    syncPerformed
    Type
    boolean
    Description

    Whether a sync was actually performed.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/google-calendar/sync-calendars \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"message": "Calendars synced successfully",
"syncPerformed": true
}

List Outlook folders POST/outlook/list-folders​

Lists the mail folders on the connected Outlook mailbox.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Outlook connector to inspect.

Response​

  • Name
    folders
    Type
    array<object>
    Description

    The mailbox's folders. Each entry has folderId and displayName.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/outlook/list-folders \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"folders": [
{
"folderId": "AAMkAGI2T...",
"displayName": "Inbox"
},
{
"folderId": "AAMkAGI2U...",
"displayName": "Invoices"
}
]
}

List Outlook calendars POST/outlook-calendar/list-calendars​

Lists the calendars on the connected Outlook account.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Outlook Calendar connector to inspect.

Response​

  • Name
    calendars
    Type
    array<object>
    Description

    The account's calendars. Each entry has calendarId, name, isDefaultCalendar, and canEdit.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/outlook-calendar/list-calendars \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"calendars": [
{
"calendarId": "AQMkAGI2T...",
"name": "Calendar",
"isDefaultCalendar": true,
"canEdit": true
}
]
}

List BigQuery projects POST/google-analytics/bigquery/projects​

Lists the BigQuery projects visible to the connected Google Analytics account. Requires at least READ access to the connector. Use this with datasets and tables to discover where GA4 exports live.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Google Analytics connector to query.

Response​

  • Name
    projects
    Type
    array<object>
    Description

    The visible projects. Each entry has projectId, friendlyName, and numericId.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/google-analytics/bigquery/projects \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "V1StGXR8Z5" }'
JSON
{
"projects": [
{
"projectId": "acme-analytics",
"friendlyName": "Acme Analytics",
"numericId": "123456789012"
}
]
}

List BigQuery datasets POST/google-analytics/bigquery/datasets​

Lists the datasets in a BigQuery project.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Google Analytics connector to query.

  • Name
    projectId
    Type
    string
    Description

    The BigQuery project ID, from projects.

Response​

  • Name
    datasets
    Type
    array<object>
    Description

    The project's datasets. Each entry has datasetId, friendlyName, and location.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/google-analytics/bigquery/datasets \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"projectId": "acme-analytics"
}'
JSON
{
"datasets": [
{
"datasetId": "analytics_987654321",
"friendlyName": "GA4 Export",
"location": "US"
}
]
}

List BigQuery tables POST/google-analytics/bigquery/tables​

Lists the tables in a BigQuery dataset.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Google Analytics connector to query.

  • Name
    projectId
    Type
    string
    Description

    The BigQuery project ID.

  • Name
    datasetId
    Type
    string
    Description

    The dataset ID, from datasets.

Response​

  • Name
    tables
    Type
    array<object>
    Description

    The dataset's tables. Each entry has tableId, friendlyName, and type.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/google-analytics/bigquery/tables \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"projectId": "acme-analytics",
"datasetId": "analytics_987654321"
}'
JSON
{
"tables": [
{
"tableId": "events_20260630",
"friendlyName": "events_20260630",
"type": "TABLE"
}
]
}

Look up Notion pages POST/notion/lookup/pages​

Searches the connected Notion workspace for pages matching a query. Requires at least READ access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Notion connector to search with.

  • Name
    query
    Type
    string
    Description

    Search text. Matches page titles in the workspace.

Response​

  • Name
    pages
    Type
    array<object>
    Description

    Matching pages. Each entry has id, title, parentType, and lastEditedTime.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/notion/lookup/pages \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"query": "onboarding"
}'
JSON
{
"pages": [
{
"id": "a1b2c3d4-0000-0000-0000-000000000000",
"title": "Customer Onboarding Checklist",
"parentType": "workspace",
"lastEditedTime": "2026-06-29T14:12:00.000Z"
}
]
}

Look up Notion databases POST/notion/lookup/databases​

Searches the connected Notion workspace for databases matching a query.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Notion connector to search with.

  • Name
    query
    Type
    string
    Description

    Search text. Matches database titles in the workspace.

Response​

  • Name
    databases
    Type
    array<object>
    Description

    Matching databases. Each entry has id, title, and lastEditedTime.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/notion/lookup/databases \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"query": "tasks"
}'
JSON
{
"databases": [
{
"id": "b2c3d4e5-0000-0000-0000-000000000000",
"title": "Engineering Tasks",
"lastEditedTime": "2026-06-30T09:03:00.000Z"
}
]
}

Look up a Notion database schema POST/notion/lookup/database-schema​

Returns the property schema of a Notion database, so you can construct valid property payloads for tools that write to it.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Notion connector to use.

  • Name
    databaseId
    Type
    string
    Description

    The Notion database ID, from lookup/databases.

Response​

  • Name
    databaseId
    Type
    string
    Description

    The database's ID.

  • Name
    title
    Type
    string
    Description

    The database's title.

  • Name
    properties
    Type
    array<object>
    Description

    The database's properties. Each entry has name, type, and — for select-like types — the available options.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/notion/lookup/database-schema \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{
"connectorId": "V1StGXR8Z5",
"databaseId": "b2c3d4e5-0000-0000-0000-000000000000"
}'
JSON
{
"databaseId": "b2c3d4e5-0000-0000-0000-000000000000",
"title": "Engineering Tasks",
"properties": [
{
"name": "Status",
"type": "select",
"options": ["Todo", "In Progress", "Done"]
},
{
"name": "Title",
"type": "title"
}
]
}

List Acumatica API versions POST/acumatica/api-versions​

Lists the contract-based REST API versions available on the connected Acumatica instance.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The Acumatica connector to query.

Response​

  • Name
    apiVersions
    Type
    array<string>
    Description

    The available API version identifiers.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/acumatica/api-versions \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "mN8cE5TvW3" }'
JSON
{
"apiVersions": ["24.200.001", "23.200.001"]
}

Revoke QuickBooks access POST/quickbooks/revoke-access​

Revokes the connector's OAuth grant with Intuit and clears the stored tokens. The connector record remains, but it cannot reach QuickBooks again until it is re-authenticated via /reconnect-url. Requires ADMIN access to the connector.

Request Body​

  • Name
    connectorId
    Type
    string
    Description

    The QuickBooks connector whose access to revoke.

Response​

  • Name
    message
    Type
    string
    Description

    Confirmation message, e.g. "QuickBooks access revoked successfully".

  • Name
    connector
    Type
    object
    Description

    The updated QuickBooks connector object.

  • Name
    errors
    Type
    array<string>
    Description

    Error messages, if any occurred.

cURL
curl https://api.autessa.com/autessa_poweruser/connectors/quickbooks/revoke-access \
-H "Authorization: $POWERUSER_KEY" \
-H "Content-Type: application/json" \
-d '{ "connectorId": "mN8cE5TvW3" }'
JSON
{
"message": "QuickBooks access revoked successfully",
"connector": {
"connectorId": "mN8cE5TvW3",
"companyId": "kTn4vB2p9Q",
"ownerId": "aB3xQ9LmZ2",
"connectorName": "Main QuickBooks",
"realmId": "9341453907xxxx",
"qbCompanyName": "Acme Corp",
"accountEmail": "finance@example.com",
"isSandbox": false,
"paymentsEnabled": true,
"isActive": true,
"sharingLevel": "COMPANY",
"companyPermissionLevel": "READ",
"userAccessLevel": "ADMIN",
"isOwner": true,
"createdAt": "2026-03-11T16:40:02",
"updatedAt": "2026-07-01T08:12:45",
"sharedWith": []
}
}

Errors​

Failed requests return an errors array of human-readable messages in the response body:

  • A missing or invalid poweruser key returns 401 Unauthorized.
  • The management endpoints (/delete, /share, /get-sharing-details, /transfer-ownership, /connect-url, /reconnect-url, /create, /test-connection) validate the request with HTTP 422: omitting connectorType returns errors: ["connectorType is required"], omitting a required connectorId returns errors: ["connectorId is required"], and omitting newOwnerId on /transfer-ownership returns errors: ["newOwnerId is required"]. On /all and /get the same missing-field messages are returned without the 422 status.
  • Requesting a connectorType with no registered utility (currently MEETING_BOT and AUTESSA_PAYMENTS) returns a 422 with errors: ["Connector type MEETING_BOT is not supported via the poweruser API"] on the management endpoints, and fails with a server error on /all and /get.
  • Calling an operation the connector family does not support (see Capabilities by connector family) returns a 422 with a message such as "Operation 'share' is not supported for connector type TIKTOK.".
  • Requesting a connector that doesn't exist in your company returns errors: ["Connector not found"].
  • Operating on a connector without the required access returns a permission error: reads require READ (e.g. "User does not have permission to view this connector."), /share, label/folder/calendar updates, /box/sync-folders, and /quickbooks/revoke-access require ADMIN (e.g. "User does not have permission to share connector."), /google-calendar/sync-calendars requires WRITE or higher, and /delete and /transfer-ownership are restricted to the connector's owner (e.g. "Access denied: Only the owner can delete this connector").
  • /transfer-ownership also validates the new owner: "New owner does not exist" if they aren't a member of the company, and "New owner does not have access to connector yet." if the connector hasn't been shared with them.