UNPKG

@cllbk/ghl

Version:

A public Node.js compatible SDK for working with HighLevel's (GHL's) Version 2 API.

532 lines (474 loc) 13.3 kB
export type GetAccessCodeBodyDTO = { /** * The ID provided by GHL for your app integration * @type {string} * @example 64720d51b50eb849194247ce-lzdnsr6z */ client_id: string; /** * The secret provided by GHL for your app integration * @type {string} * @example 5060d220-a031-4f39-9cr0-0424e08ffba5 */ client_secret: string; /** * The type of token to be requested * @enum {"authorization_code", "refresh_token"} * @example authorization_code */ grant_type: "authorization_code" | "refresh_token"; /** * The scope of the token to be requested * @enum {"Company", "Location"} * @example read write */ user_type: "Company" | "Location"; /** * The code provided in the query of the URI after installing the app * required if grant_type is authorization_code * @type {string} * @example 86b68a0da12ba59f9a85abf2f5bafde171321bdd */ code?: string; /** * The refresh token provided in the response of the initial request * required if grant_type is refresh_token * must be valid jwt token format * @type {string} * @example eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c */ refresh_token?: string; /** * The redirect URI for your application * Must be registered as a valid redirect URI in the GHL app settings * @type {string} * @example https://myapp.com/oauth/callback/gohighlevel */ redirect_uri?: string; }; export type LocationScope = | "blogs/author.readonly" | "blogs/category.readonly" | "blogs/check-slug.readonly" | "blogs/post.write" | "blogs/post-update.write" | "businesses.readonly" | "businesses.write" | "calendars.readonly" | "calendars.write" | "calendars/events.readonly" | "calendars/events.write" | "calendars/groups.readonly" | "calendars/groups.write" | "calendars/resources.readonly" | "calendars/resources.write" | "campaigns.readonly" | "companies.readonly" | "contacts.readonly" | "contacts.write" | "conversations.readonly" | "conversations.write" | "conversations/message.readonly" | "conversations/message.write" | "conversations/reports.readonly" | "courses.readonly" | "courses.write" | "emails/builder.readonly" | "emails/builder.write" | "forms.readonly" | "forms.write" | "funnels/funnel.readonly" | "funnels/page.readonly" | "funnels/pagecount.readonly" | "funnels/redirect.readonly" | "funnels/redirect.write" | "invoices.readonly" | "invoices.write" | "invoices/schedule.readonly" | "invoices/schedule.write" | "invoices/template.readonly" | "invoices/template.write" | "lc-email.readonly" | "links.readonly" | "links.write" | "locations.readonly" | "locations/customFields.readonly" | "locations/customFields.write" | "locations/customValues.readonly" | "locations/customValues.write" | "locations/tags.readonly" | "locations/tags.write" | "locations/tasks.readonly" | "locations/tasks.write" | "locations/templates.readonly" | "medias.readonly" | "medias.write" | "objects/record.readonly" | "objects/record.write" | "objects/schema.readonly" | "objects/schema.write" | "opportunities.readonly" | "opportunities.write" | "payments/custom-provider.readonly" | "payments/custom-provider.write" | "payments/integration.readonly" | "payments/integration.write" | "payments/orders.readonly" | "payments/orders.write" | "payments/subscriptions.readonly" | "payments/transactions.readonly" | "products.readonly" | "products.write" | "products/collection.readonly" | "products/collection.write" | "products/prices.readonly" | "products/prices.write" | "saas/company.read" | "saas/company.write" | "saas/location.read" | "saas/location.write" | "socialplanner/account.readonly" | "socialplanner/account.write" | "socialplanner/category.readonly" | "socialplanner/category.write" | "socialplanner/csv.readonly" | "socialplanner/csv.write" | "socialplanner/oauth.readonly" | "socialplanner/oauth.write" | "socialplanner/post.readonly" | "socialplanner/post.write" | "socialplanner/tag.readonly" | "socialplanner/tag.write" | "store/setting.readonly" | "store/setting.write" | "store/shipping.readonly" | "store/shipping.write" | "surveys.readonly" | "users.readonly" | "users.write" | "wordpress.site.readonly" | "workflows.readonly"; export type CompanyScope = | "locations.readonly" | "locations.write" | "oauth.readonly" | "oauth.write" | "saas/company.read" | "saas/company.write" | "saas/location.read" | "saas/location.write" | "snapshots.readonly" | "snapshots.write" | "users.readonly" | "users.write"; export type Scope = LocationScope | CompanyScope; type GetAccessCodeBaseSchema = { /** * USER ID - Represent user id of person who performed installation * @type {string} * @example 64720d51b50eb849194247ce */ userId: string; /** * The token used to access the GHL API * @type {string} * @example eyJrIjoiSDI1NiIsInR5cCI6IkpXVCIsImFsZyI6IkhTMjU2In0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.iSE7GVfFsdDqqaV7PyXDAZtkxy78MZ2CnAhAnoN5MSU */ access_token?: string; /** * The type of token provided * @enum {"Bearer"} * @example Bearer */ token_type?: "Bearer"; /** * The amount of time until the access_token expires in seconds - Can be refreshed using the Refresh Token up to 1 year after token created * Once Refreshed, a new access_token / refresh_token will be provided * The new access_token will expire in 24 hours and the new refresh_token will expire in 1 year * @type {number} * @example 86399 */ expires_in?: number; /** * The refresh token to be used to request a new access token * @type {string} * @example eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c */ refresh_token?: string; /** * The scope of the token provided * @type {string} * @example ["conversations/message.readonly" "conversations/message.write"] */ scope?: Scope[]; /** * The type of user the token is for * @type {string} * @example Location */ userType?: string; /** * Location ID - Present only for Sub-Account Access Token * @type {string} * @example l1C08ntBrFjLS0elLIYU */ locationId?: string; /** * Company ID * @type {string} * @example l1C08ntBrFjLS0elLIYU */ companyId?: string; /** * Approved locations to generate location access token * @type {string[]} * @example ["l1C08ntBrFjLS0elLIYU"] */ approvedLocations?: string[]; /** * Plan Id of the subscribed plan in paid apps. * @type {string} * @example l1C08ntBrFjLS0elLIYU */ planId?: string; }; export interface LocationAccessCodeResponseDTO extends GetAccessCodeBaseSchema { /** * The type of user the token is for * @enum {"Location"} * @example Location */ userType: "Location"; /** * The scope of the token provided * @type {LocationScope[]} * @example conversations/message.readonly conversations/message.write */ scope: LocationScope[]; } export interface CompanyAccessCodeResponseDTO extends GetAccessCodeBaseSchema { /** * The type of user the token is for * @enum {"Company"} * @example Company */ userType: "Company"; /** * The scope of the token provided * @type {CompanyScope[]} * @example conversations/message.readonly conversations/message.write */ scope: CompanyScope[]; } export type GetAccessCodeSuccessfulResponseDTO = | LocationAccessCodeResponseDTO | CompanyAccessCodeResponseDTO; export type GetLocationAccessCodeBodyDTO = { /** * The ID of your agency in GHL - Provided in initial token response * @type {string} * @example l1C08ntBrFjLS0elLIYU */ companyId: string; /** * The ID of the location to generate an access token for * @type {string} * @example l1C08ntBrFjLS0elLIYU */ locationId: string; }; export type GetLocationAccessTokenSuccessfulResponseDTO = { /** * USER ID - Represent user id of person who performed installation * @type {string} * @example 64720d51b50eb849194247ce */ userId: string; /** * The token used to access the GHL API * @type {string} * @example eyJrIjoiSDI1NiIsInR5cCI6IkpXVCIsImFsZyI6IkhTMjU2In0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.iSE7GVfFsdDqqaV7PyXDAZtkxy78MZ2CnAhAnoN5MSU */ access_token?: string; /** * The type of token provided * @enum {"Bearer"} * @example Bearer */ token_type?: "Bearer"; /** * The amount of time until the access_token expires in seconds * Cannot be refreshed but a new access_token can be requested with the Company access_token * @type {number} * @example 86399 */ expires_in?: number; /** * The scope of the token provided * @type {LocationScope[]} * @example ["conversations/message.readonly" "conversations/message.write"] */ scope?: LocationScope[]; /** * The ID of the location to generate an access token for * @type {string} * @example l1C08ntBrFjLS0elLIYU */ locationId?: string; /** * Plan Id of the subscribed plan in paid apps. * @type {string} * @example l1C08ntBrFjLS0elLIYU */ planId?: string; }; export type InstalledLocationSchema = { /** * The ID of the location being checked * @type {string} * @example 0IHuJvc2ofPAAA8GzTRi */ _id: string; /** * The name of the location being checked * @type {string} * @example John Deo */ name: string; /** * The address linked to the location being checked * @type {string} * @example 47 W 13th St, New York, NY 10011, USA */ address: string; /** * True if the app is installed in this location, otherwise, false * @type {boolean} * @example true */ isInstalled?: boolean; }; export type GetInstalledLocationsSuccessfulResponseDTO = { /** * The list of locations and their installation status * @type {InstalledLocationSchema[]} * @example [{"_id":"0IHuJvc2ofPAAA8GzTRi","name":"John Deo","address":"47 W 13th St, New York, NY 10011, USA","isInstalled":true}] */ locations: InstalledLocationSchema[]; /** * The total number of locations that have the app installed * @type {number} * @example 1 */ count: number; /** * If true, the app will be installed in all future locations created, otherwise, false * @type {boolean} * @example true */ installToFutureLocations: boolean; }; export type OAuthSearchOptions = { /** * Filters out location which are installed for specified app under the specified companyId * @type {string} * @example true */ companyId: string; /** * Parameter to search by the appId * @type {string} * @example tDtDnQdgm2LXpyiqYvZ6 */ appId: string; /** * Filters out location which are installed for specified app under the specified company * @type {boolean} * @example true */ isInstalled?: boolean; /** * Parameter to limit the number installed locations * @type {string} * @example 10 * @default 20 */ limit?: string; /** * Filters out locations which are installed for specified app in trial mode * @type {boolean} * @example true */ onTrial?: boolean; /** * Filters out location which are installed for specified app under the specified planId * @type {string} * @example true */ planId?: string; /** * Parameter to search for the installed location by name * @type {string} * @example location name */ query?: string; /** * Parameter to skip the number installed locations * @type {string} * @example 1 * @default 0 */ skip?: string; }; export type OAuthSearchParams = { /** * Filters out location which are installed for specified app under the specified companyId * @type {string} * @example tDtDnQdgm2LXpyiqYvZ6 */ companyId: string; /** * Parameter to search by the appId * @type {string} * @example tDtDnQdgm2LXpyiqYvZ6 */ appId: string; /** * Filters out location which are installed for specified app under the specified company * @type {boolean} * @example true */ isInstalled?: string; /** * Parameter to limit the number installed locations * @type {string} * @example 10 * @default 20 */ limit?: string; /** * Filters out locations which are installed for specified app in trial mode * @type {boolean} * @example true */ onTrial?: string; /** * Filters out location which are installed for specified app under the specified planId * @type {string} * @example true */ planId?: string; /** * Parameter to search for the installed location by name * @type {string} * @example location name */ query?: string; /** * Parameter to skip the number installed locations * @type {string} * @example 1 * @default 0 */ skip?: string; };