Siro Integrations API

The Integrations API from Siro — 21 operation(s) for integrations.

OpenAPI Specification

siro-integrations-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  version: 1.0.0
  title: Swagger Audit Integrations API
servers:
- url: https://functions.siro.ai/api-externalApi
  description: Siro API external API endpoint
tags:
- name: Integrations
paths:
  /v1/integrations/accounts/{id}:
    get:
      summary: Get an account
      description: Get an account
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      responses:
        '200':
          description: Get an account
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  externalId:
                    type: string
                    description: The ID of the account in the external system (e.g. Salesforce)
                  latitude:
                    type: number
                  longitude:
                    type: number
                  addresses:
                    type: array
                    items:
                      nullable: true
                  phoneNumbers:
                    type: array
                    items:
                      type: string
                  emailAddresses:
                    type: array
                    items:
                      type: string
                  name:
                    type: string
                  createdAt:
                    type: string
                    description: The date the account was created
                  updatedAt:
                    type: string
                    description: The date the account was last updated
                required:
                - id
                - externalId
                - addresses
                - createdAt
                - updatedAt
      security:
      - bearerAuth: []
      tags:
      - Integrations
    put:
      summary: Update an account
      description: Update an account
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                name:
                  type: string
                latitude:
                  type: number
                longitude:
                  type: number
                phoneNumbers:
                  type: array
                  items:
                    type: string
                emailAddresses:
                  type: array
                  items:
                    type: string
                addresses:
                  type: array
                  items:
                    type: object
                    properties:
                      country:
                        type: string
                      street:
                        type: string
                      city:
                        type: string
                      state:
                        type: string
                      zip:
                        type: string
                    required:
                    - country
                    - street
                    - city
                    - state
                    - zip
      responses:
        '200':
          description: Update an account
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  externalId:
                    type: string
                    description: The ID of the account in the external system (e.g. Salesforce)
                  latitude:
                    type: number
                  longitude:
                    type: number
                  addresses:
                    type: array
                    items:
                      nullable: true
                  phoneNumbers:
                    type: array
                    items:
                      type: string
                  emailAddresses:
                    type: array
                    items:
                      type: string
                  name:
                    type: string
                  createdAt:
                    type: string
                    description: The date the account was created
                  updatedAt:
                    type: string
                    description: The date the account was last updated
                required:
                - id
                - externalId
                - addresses
                - createdAt
                - updatedAt
      security:
      - bearerAuth: []
      tags:
      - Integrations
    delete:
      summary: Delete an account
      description: Delete an accounts
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      responses:
        '200':
          description: Delete an account
          content:
            application/json:
              schema:
                type: boolean
      security:
      - bearerAuth: []
      tags:
      - Integrations
  /v1/integrations/accounts:
    get:
      summary: Get accounts
      description: Get accounts
      responses:
        '200':
          description: Get accounts
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    externalId:
                      type: string
                      description: The ID of the account in the external system (e.g. Salesforce)
                    latitude:
                      type: number
                    longitude:
                      type: number
                    addresses:
                      type: array
                      items:
                        nullable: true
                    phoneNumbers:
                      type: array
                      items:
                        type: string
                    emailAddresses:
                      type: array
                      items:
                        type: string
                    name:
                      type: string
                    createdAt:
                      type: string
                      description: The date the account was created
                    updatedAt:
                      type: string
                      description: The date the account was last updated
                  required:
                  - id
                  - externalId
                  - addresses
                  - createdAt
                  - updatedAt
      security:
      - bearerAuth: []
      tags:
      - Integrations
    post:
      summary: Create an account
      description: Create an account
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - type: object
                properties:
                  externalId:
                    type: string
                    description: The ID of the account in the external system (e.g. Salesforce)
                  name:
                    type: string
                  latitude:
                    type: number
                  longitude:
                    type: number
                  phoneNumbers:
                    type: array
                    items:
                      type: string
                  emailAddresses:
                    type: array
                    items:
                      type: string
                  addresses:
                    type: array
                    items:
                      type: object
                      properties:
                        country:
                          type: string
                        street:
                          type: string
                        city:
                          type: string
                        state:
                          type: string
                        zip:
                          type: string
                      required:
                      - country
                      - street
                      - city
                      - state
                      - zip
                required:
                - externalId
                - latitude
                - longitude
              - type: object
                properties:
                  externalId:
                    type: string
                    description: The ID of the account in the external system (e.g. Salesforce)
                  name:
                    type: string
                  latitude:
                    type: number
                  longitude:
                    type: number
                  phoneNumbers:
                    type: array
                    items:
                      type: string
                  emailAddresses:
                    type: array
                    items:
                      type: string
                  addresses:
                    type: array
                    items:
                      type: object
                      properties:
                        country:
                          type: string
                        street:
                          type: string
                        city:
                          type: string
                        state:
                          type: string
                        zip:
                          type: string
                      required:
                      - country
                      - street
                      - city
                      - state
                      - zip
                required:
                - externalId
                - addresses
      responses:
        '200':
          description: Create an account
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  externalId:
                    type: string
                    description: The ID of the account in the external system (e.g. Salesforce)
                  latitude:
                    type: number
                  longitude:
                    type: number
                  addresses:
                    type: array
                    items:
                      nullable: true
                  phoneNumbers:
                    type: array
                    items:
                      type: string
                  emailAddresses:
                    type: array
                    items:
                      type: string
                  name:
                    type: string
                  createdAt:
                    type: string
                    description: The date the account was created
                  updatedAt:
                    type: string
                    description: The date the account was last updated
                required:
                - id
                - externalId
                - addresses
                - createdAt
                - updatedAt
      security:
      - bearerAuth: []
      tags:
      - Integrations
  /v1/integrations/opportunities/{id}:
    get:
      summary: Get an opportunity
      description: Get an opportunity
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      responses:
        '200':
          description: Get an opportunity
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  externalId:
                    type: string
                    description: The ID of the opportunity in the external system (e.g. Salesforce)
                  name:
                    type: string
                    nullable: true
                    description: The name of the opportunity
                  amount:
                    type: number
                    description: The dollar amount of the opportunity
                  closedAt:
                    type: string
                    description: The closure date of the opportunity
                  disposition:
                    type: string
                    description: '"WON" | "LOST" | "OPEN"'
                  createdAt:
                    type: string
                    description: The date the opportunity was created
                  updatedAt:
                    type: string
                    description: The date the opportunity was last updated
                  recordingId:
                    type: string
                    description: The ID of the recording associated to the opportunity
                  accountId:
                    type: string
                  organizationId:
                    type: string
                  account:
                    nullable: true
                  opportunityUsers:
                    type: array
                    items:
                      nullable: true
                required:
                - id
                - externalId
                - createdAt
                - updatedAt
                - organizationId
      security:
      - bearerAuth: []
      tags:
      - Integrations
    delete:
      summary: Delete an opportunity
      description: Delete an opportunity
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      responses:
        '200':
          description: Delete an opportunity
          content:
            application/json:
              schema:
                type: boolean
      security:
      - bearerAuth: []
      tags:
      - Integrations
  /v1/integrations/opportunities:
    get:
      summary: Get opportunities
      description: Get opportunities
      parameters:
      - schema:
          type: string
        required: false
        name: cursor
        in: query
      - schema:
          type: string
        required: false
        name: recordingId
        in: query
      - schema:
          type: string
        required: false
        name: externalId
        in: query
      responses:
        '200':
          description: Get opportunities
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                        externalId:
                          type: string
                          description: The ID of the opportunity in the external system (e.g. Salesforce)
                        name:
                          type: string
                          nullable: true
                          description: The name of the opportunity
                        amount:
                          type: number
                          description: The dollar amount of the opportunity
                        closedAt:
                          type: string
                          description: The closure date of the opportunity
                        disposition:
                          type: string
                          description: '"WON" | "LOST" | "OPEN"'
                        createdAt:
                          type: string
                          description: The date the opportunity was created
                        updatedAt:
                          type: string
                          description: The date the opportunity was last updated
                        recordingId:
                          type: string
                          description: The ID of the recording associated to the opportunity
                        accountId:
                          type: string
                        organizationId:
                          type: string
                        account:
                          nullable: true
                        opportunityUsers:
                          type: array
                          items:
                            nullable: true
                      required:
                      - id
                      - externalId
                      - createdAt
                      - updatedAt
                      - organizationId
                  cursor:
                    anyOf:
                    - type: string
                    - type: number
                    - nullable: true
                  pageSize:
                    type: number
                  limit:
                    type: number
                  total:
                    type: number
                    nullable: true
                  hasNextPage:
                    type: boolean
                required:
                - data
      security:
      - bearerAuth: []
      tags:
      - Integrations
  /v1/integrations/opportunity-users/{id}:
    get:
      summary: Get an opportunity user
      description: Get an opportunity user
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      responses:
        '200':
          description: Get an opportunity user
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  opportunityId:
                    type: string
                  userId:
                    type: string
                  name:
                    type: string
                  amountPercentage:
                    type: number
                  organizationId:
                    type: string
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  integrationConnectionId:
                    type: string
                required:
                - id
                - opportunityId
                - userId
                - organizationId
                - createdAt
                - updatedAt
                - integrationConnectionId
      security:
      - bearerAuth: []
      tags:
      - Integrations
    put:
      summary: Update an opportunity user
      description: Update an opportunity user
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                opportunityId:
                  type: string
                userId:
                  type: string
                name:
                  type: string
                amountPercentage:
                  type: number
      responses:
        '200':
          description: Update an opportunity user
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  opportunityId:
                    type: string
                  userId:
                    type: string
                  name:
                    type: string
                  amountPercentage:
                    type: number
                  organizationId:
                    type: string
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  integrationConnectionId:
                    type: string
                required:
                - id
                - opportunityId
                - userId
                - organizationId
                - createdAt
                - updatedAt
                - integrationConnectionId
      security:
      - bearerAuth: []
      tags:
      - Integrations
    delete:
      summary: Delete an opportunity user
      description: Delete an opportunity user
      parameters:
      - schema:
          type: string
        required: true
        name: id
        in: path
      responses:
        '200':
          description: Delete an opportunity user
          content:
            application/json:
              schema:
                type: boolean
      security:
      - bearerAuth: []
      tags:
      - Integrations
  /v1/integrations/opportunity-users:
    get:
      summary: Get opportunity users
      description: Get opportunity users
      parameters:
      - schema:
          type: string
        required: false
        name: cursor
        in: query
      - schema:
          type: string
        required: false
        name: opportunityId
        in: query
      - schema:
          type: string
        required: false
        name: userId
        in: query
      responses:
        '200':
          description: Get opportunity users
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: string
                    opportunityId:
                      type: string
                    userId:
                      type: string
                    name:
                      type: string
                    amountPercentage:
                      type: number
                    organizationId:
                      type: string
                    createdAt:
                      type: string
                    updatedAt:
                      type: string
                    integrationConnectionId:
                      type: string
                  required:
                  - id
                  - opportunityId
                  - userId
                  - organizationId
                  - createdAt
                  - updatedAt
                  - integrationConnectionId
      security:
      - bearerAuth: []
      tags:
      - Integrations
    post:
      summary: Create an opportunity user
      description: Create an opportunity user
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                opportunityId:
                  type: string
                userId:
                  type: string
                name:
                  type: string
                amountPercentage:
                  type: number
      responses:
        '200':
          description: Create an opportunity user
          content:
            application/json:
              schema:
                type: object
                properties:
                  id:
                    type: string
                  opportunityId:
                    type: string
                  userId:
                    type: string
                  name:
                    type: string
                  amountPercentage:
                    type: number
                  organizationId:
                    type: string
                  createdAt:
                    type: string
                  updatedAt:
                    type: string
                  integrationConnectionId:
                    type: string
                required:
                - id
                - opportunityId
                - userId
                - organizationId
                - createdAt
                - updatedAt
                - integrationConnectionId
      security:
      - bearerAuth: []
      tags:
      - Integrations
  /v1/integrations/sync/opportunities:
    put:
      summary: Sync an opportunity
      description: Sync an opportunity
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                externalId:
                  type: string
                  description: The ID of the opportunity in the external system
                name:
                  type: string
                  description: The name of the opportunity
                amount:
                  type: number
                  description: The dollar amount of the opportunity
                closedAt:
                  type: string
                  description: The closure date of the opportunity in string format e.g. 2024-02-28 20:09:58.692
                remoteCreatedAt:
                  type: string
                  description: date the opportunity was created
                lastActivityAt:
                  type: string
                  description: date of last external update
                deletedAt:
                  type: string
                  nullable: true
                  format: date-time
                  description: The datetime when this record was deleted in the external system
                disposition:
                  type: string
                  enum:
                  - OPEN
                  - LOST
                  - WON
                  description: '"WON" | "LOST" | "OPEN"'
                accountId:
                  type: string
                  nullable: true
                  description: Internal SIRO accountId override for this opportunity. OPTIONAL -- only use if you know the internal value of the Account as it will override the account object args.
                account:
                  type: object
                  nullable: true
                  properties:
                    externalId:
                      type: string
                      description: The ID of the account in the external system.
                    name:
                      type: string
                      description: The name of the account
                    latitude:
                      type: number
                      description: The latitude of the account
                    longitude:
                      type: number
                      description: The longitude of the account
                    addresses:
                      type: array
                      items:
                        type: object
                        properties:
                          country:
                            type: string
                          street:
                            type: string
                          city:
                            type: string
                          state:
                            type: string
                          zip:
                            type: string
                        required:
                        - country
                        - street
                        - city
                        - state
                        - zip
                      description: The address(es) associated to the account
                    phoneNumbers:
                      type: array
                      items:
                        type: string
                      description: The phone number(s) for the account
                    emailAddresses:
                      type: array
                      items:
                        type: string
                      description: The email address(es) for the account
                    lastActivityAt:
                      type: string
                      description: The datetime of the last activity on this record in the external system
                    deletedAt:
                      type: string
                      nullable: true
                      format: date-time
                      description: The datetime when this record was deleted in the external system
                    owner:
                      type: object
                      nullable: true
                      properties:
                        externalId:
                          type: string
                      required:
                      - externalId
                      description: The owner user of this record in the external system (optional)
                    mergedToExternalId:
                      type: string
                      description: If this Account was merged into another, the surviving Account externalId. Will migrate all existing references from this Account to the surviving Account.
                    mergedFromExternalIds:
                      type: array
                      items:
                        type: string
                      description: If other Accounts were merged into this one, their externalIds. Will migrate all existing references from those Accounts to this Account.
                  description: 'The associated account for this opportunity. Note: supplying just an externalId will resolve to an already-synced account'
                contact:
                  type: object
                  nullable: true
                  properties:
                    externalId:
                      type: string
                      description: The ID of the contact in the external system
                    name:
                      type: string
                      description: The name of the contact
                    latitude:
                      type: number
                      description: The latitude of the contact
                    longitude:
                      type: number
                      description: The longitude of the contact
                    account:
                      type: object
                      nullable: true
                      properties:
                        externalId:
                          type: string
                          description: The ID of the account in the external system.
                        name:
                          type: string
                          description: The name of the account
                        latitude:
                          type: number
                          description: The latitude of the account
                        longitude:
                          type: number
                          description: The longitude of the account
                        addresses:
                          type: array
                          items:
                            type: object
                            properties:
                              country:
                                type: string
                              street:
                                type: string
                              city:
                                type: string
                              state:
                                type: string
                              zip:
                                type: string
                            required:
                            - country
                            - street
                            - city
                            - state
                            - zip
                          description: The address(es) associated to the account
                        phoneNumbers:
                          type: array
                          items:
                            type: string
                          description: The phone number(s) for the account
                        emailAddresses:
                          type: array
                          items:
                            type: string
                          description: The email address(es) for the account
                        lastActivityAt:
                          type: string
                          description: The datetime of the last activity on this record in the external system
                        deletedAt:
                          type: string
                          nullable: true
                          format: date-time
                          description: The datetime when this record was deleted in the external system
                        owner:
                          type: object
                          nullable: true
                          properties:
                            externalId:
                              type: string
                          required:
                          - externalId
                          description: The owner user of this record in the external system (optional)
                        mergedToExte

# --- truncated at 32 KB (142 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/siro/refs/heads/main/openapi/siro-integrations-api-openapi.yml