openapi: 3.2.0 info: description: 'Stack Moxie is a QA Automation platform for Marketing, Sales, and Enterprise Business technologists. This REST API can be used by developers like you to further automate, extend, and integrate quality into the workflows that matter most to you. Don''t have an account? [Sign up here](https://app.stackmoxie.com). # Authentication The Stack Moxie REST API uses HTTP Bearer Authentication, in the form of a JWT token, across all endpoints for authentication. You can manage your API tokens on your account settings page. ' title: 'Stack Moxie REST How To: Integrate API' x-logo: url: https://app.stackmoxie.com/api/logo.png altText": Stack Moxie Logo servers: - url: https://app.stackmoxie.com/api/ security: - jwtBearerAuth: [] tags: - name: 'How To: Integrate' description: 'Use these calls to connect an Organization with Marketing/Sales technologies supported by Stack Moxie. ' paths: /v1/organizations/{org}/notification-groups: get: summary: List Notification Groups description: 'Retrieves a list of Notification Groups that the Organization has set up. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' responses: '200': description: Returns a list of the Organization's Notification Groups. content: application/json: schema: type: array items: $ref: '#/components/schemas/NotificationGroup' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /v1/organizations/{org}/notification-groups/{id}: delete: summary: Delete a Notification Group description: 'Removes a Notification Group given its ID. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' - name: id in: path description: Notification Group's ID. required: true schema: type: integer responses: '204': description: Notification Group successfully removed. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /v1/organizations/{org}/connections: get: summary: List Connections description: 'Retrieves a list of Connections that the Organization has configured with other platforms. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' responses: '200': description: Returns a list of the Organization's Connections. content: application/json: schema: type: array items: $ref: '#/components/schemas/Connection' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' post: summary: Create a Connection description: 'Integrates Stack Moxie with another platform given a set of authentication details. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Connection' responses: '200': description: Returns the Connection just created. content: application/json: schema: $ref: '#/components/schemas/Connection' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: Returned when the given `cog` is unknown. content: application/json: schema: $ref: '#/components/schemas/Error' '409': description: Returned when a connection for this cog already exists for this org/profile. content: application/json: schema: $ref: '#/components/schemas/Error' '422': description: Returned when the details provided on the `auth` key do not match the fields required to connect the given `cog`. content: application/json: schema: $ref: '#/components/schemas/Error' /v1/organizations/{org}/connections/{id}: get: summary: Get a Connection description: 'Retrieves a single Connection given its ID. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' - name: id in: path description: Connection's ID. required: true schema: type: integer responses: '200': description: Returns the Connection. content: application/json: schema: $ref: '#/components/schemas/Connection' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' patch: summary: Update a Connection description: 'Replaces a single Connection''s authentication details given its ID. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' - name: id in: path description: Connection's ID. required: true schema: type: integer requestBody: required: true content: application/json: schema: type: object properties: auth: type: object responses: '200': description: Returns the replaced Connection. content: application/json: schema: $ref: '#/components/schemas/Connection' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '422': description: Returned when the details provided on the `auth` key do not match the fields required to connect the given `cog`. content: application/json: schema: $ref: '#/components/schemas/Error' delete: summary: Delete a Connection description: 'Removes a Connection given its ID. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' - name: id in: path description: Connection's ID. required: true schema: type: integer responses: '204': description: Connection successfully removed. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' /v1/organizations/{org}/registry: get: summary: Get the Cog Registry description: 'Retrieves a list of Crank Cog Registry entries corresponding to those the Organization has access to use. ' tags: - 'How To: Integrate' parameters: - $ref: '#/components/parameters/OrgPathParam' responses: '200': description: Returns a list of Crank Cog Registry entries for the Organization. content: application/json: schema: type: array items: $ref: '#/components/schemas/RegistryEntry' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' components: schemas: Connection: description: Represents a connection between Stack Moxie and another platform. required: - cog type: object properties: cog: type: string enum: - automatoninc/dynamics - automatoninc/eloqua - stackmoxie/hubspot - automatoninc/marketo - automatoninc/pardot - automatoninc/salesforce description: 'Cog Name in the form`vendor/name` (see registry). ' auth: type: object writeOnly: true description: Authentication details required by the given Cog. profile: type: string enum: - default default: default description: Profile name. isValid: type: boolean readOnly: true description: Whether or not the Connection is valid (e.g. authentication details are still up-to-date). id: type: integer readOnly: true description: A numeric identifier for this Connection. uuid: type: string readOnly: true description: An identifier for this Connection in the form of a UUID. createdAt: type: string readOnly: true description: Unix timestamp (ms) of this Connection's creation. updatedAt: type: string readOnly: true description: Unix timestamp (ms) of when this Connection was last modified. createdBy: readOnly: true oneOf: - type: integer - $ref: '#/components/schemas/User' description: The ID or User object who created this Connection. Error: type: object properties: name: type: string message: type: string User: required: - emailAddress - fullName - password type: object properties: uuid: type: string emailAddress: maxLength: 200 type: string emailStatus: type: string emailChangeCandidate: type: string password: type: string fullName: maxLength: 120 type: string notificationSetting: type: string notificationOverride: maxLength: 200 type: string maxTrials: type: string isSuperAdmin: type: boolean passwordResetToken: type: string passwordResetTokenExpiresAt: type: string emailProofToken: type: string emailProofTokenExpiresAt: type: string tosAcceptedByIp: type: string lastSeenAt: type: string RegistryEntry: type: object properties: name: type: string description: The name of the Cog (e.g. `cog-vendor/system-name`) label: type: string description: Human-readable name of the system. version: type: string description: Cog Version. homepage: type: string format: url description: Cog homepage (for reporting bugs). authHelpUrl: type: string format: url description: URL to documentation outlining how to authenticate. stepDefinitionsList: type: array items: type: object description: A list of step definitions (see https://crank.automatoninc.com) authFieldsList: type: array items: type: object description: A list of authentication fields required by this Cog (see https://crank.automatoninc.com) NotificationGroup: description: Represents a notification group that can be notified during a scenario run. required: - name type: object properties: name: type: string description: Notification Group name. email: type: - string - 'null' description: The email alias of the notification group. members: description: The users that are members of this notification group. type: - array - 'null' items: type: object $ref: '#/components/schemas/User' id: type: integer readOnly: true description: A numeric identifier for this Notification Group. uuid: type: string readOnly: true description: An identifier for this Notification Group in the form of a UUID. createdAt: type: string readOnly: true description: Unix timestamp (ms) of this Notification Group's creation. updatedAt: type: string readOnly: true description: Unix timestamp (ms) of when this Notification Group was last modified. createdBy: readOnly: true oneOf: - type: integer - $ref: '#/components/schemas/User' description: The ID or User object who created this Notification Group. parameters: OrgPathParam: name: org in: path description: Organization's UUID (to scope the API call). required: true schema: type: string format: uuid responses: Forbidden: description: 'Returned if the authenticated user isn''t allowed to perform this action. ' content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: 'Returned when there may be a problem with your API token. ' content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: jwtBearerAuth: type: http scheme: bearer bearerFormat: JWT