ADT

ADT Business API

The ADT Business API provides commercial security management capabilities including multi-site access control, commercial alarm management, video surveillance integration, and security event monitoring for small to enterprise business customers.

OpenAPI Specification

adt-business-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: ADT Business API
  description: >-
    The ADT Business API provides commercial security management capabilities for
    managing multi-site security systems, access control, video surveillance, alarm
    monitoring, and security personnel management for small to enterprise business customers.
  version: "1"
  contact:
    name: ADT Business Support
    url: https://www.adt.com/business
  termsOfService: https://www.adt.com/terms-of-service
  license:
    name: ADT Terms of Service
    url: https://www.adt.com/terms-of-service
  x-generated-from: documentation
externalDocs:
  description: ADT Business Security Documentation
  url: https://www.adt.com/business
servers:
  - url: https://api.adt.com/business/v1
    description: ADT Business API Production
tags:
  - name: Sites
    description: Manage business site security systems
  - name: Access Control
    description: Manage access control panels, credentials, and schedules
  - name: Users
    description: Manage security system users and permissions
  - name: Reports
    description: Generate security and compliance reports
security:
  - oauth2: []
paths:
  /sites:
    get:
      operationId: getSites
      summary: ADT List Business Sites
      description: "Retrieve all business sites with security systems for the authenticated account."
      tags:
        - Sites
      parameters:
        - name: limit
          in: query
          description: "Maximum number of sites to return."
          schema:
            type: integer
            default: 50
        - name: offset
          in: query
          description: "Pagination offset."
          schema:
            type: integer
            default: 0
      responses:
        '200':
          description: "List of business sites."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SiteList'
              examples:
                getSites200Example:
                  summary: Default getSites 200 response
                  x-microcks-default: true
                  value:
                    sites:
                      - id: "site-001"
                        name: "Downtown Office"
                        address: "456 Business Ave"
                        status: "armed"
        '401':
          description: "Unauthorized."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getSites401Example:
                  summary: Default getSites 401 response
                  x-microcks-default: true
                  value:
                    code: "UNAUTHORIZED"
                    message: "Invalid credentials"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{siteId}:
    get:
      operationId: getSite
      summary: ADT Get a Business Site
      description: "Retrieve details of a specific business site including security status and device inventory."
      tags:
        - Sites
      parameters:
        - name: siteId
          in: path
          required: true
          description: "Unique identifier of the business site."
          schema:
            type: string
      responses:
        '200':
          description: "Site details."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Site'
              examples:
                getSite200Example:
                  summary: Default getSite 200 response
                  x-microcks-default: true
                  value:
                    id: "site-001"
                    name: "Downtown Office"
                    address: "456 Business Ave"
                    status: "armed"
        '404':
          description: "Site not found."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
              examples:
                getSite404Example:
                  summary: Default getSite 404 response
                  x-microcks-default: true
                  value:
                    code: "NOT_FOUND"
                    message: "Site not found"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{siteId}/access-control/credentials:
    get:
      operationId: getCredentials
      summary: ADT List Access Control Credentials
      description: "Retrieve all access control credentials (badges, PINs, biometric) assigned at a business site."
      tags:
        - Access Control
      parameters:
        - name: siteId
          in: path
          required: true
          description: "Business site ID."
          schema:
            type: string
      responses:
        '200':
          description: "List of access credentials."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialList'
              examples:
                getCredentials200Example:
                  summary: Default getCredentials 200 response
                  x-microcks-default: true
                  value:
                    credentials:
                      - id: "cred-001"
                        userId: "usr-001"
                        type: "badge"
                        status: "active"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
    post:
      operationId: createCredential
      summary: ADT Create an Access Credential
      description: "Create a new access credential for a user at a business site."
      tags:
        - Access Control
      parameters:
        - name: siteId
          in: path
          required: true
          description: "Business site ID."
          schema:
            type: string
      requestBody:
        required: true
        description: "Credential creation request."
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CredentialInput'
            examples:
              createCredentialRequestExample:
                summary: Default createCredential request
                x-microcks-default: true
                value:
                  userId: "usr-001"
                  type: "badge"
                  cardNumber: "1234567890"
      responses:
        '201':
          description: "Credential created."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Credential'
              examples:
                createCredential201Example:
                  summary: Default createCredential 201 response
                  x-microcks-default: true
                  value:
                    id: "cred-002"
                    userId: "usr-001"
                    type: "badge"
                    status: "active"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{siteId}/users:
    get:
      operationId: getSiteUsers
      summary: ADT List Site Users
      description: "Retrieve all users with access to a business site."
      tags:
        - Users
      parameters:
        - name: siteId
          in: path
          required: true
          description: "Business site ID."
          schema:
            type: string
      responses:
        '200':
          description: "List of site users."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserList'
              examples:
                getSiteUsers200Example:
                  summary: Default getSiteUsers 200 response
                  x-microcks-default: true
                  value:
                    users:
                      - id: "usr-001"
                        name: "Jane Smith"
                        email: "[email protected]"
                        role: "employee"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
  /sites/{siteId}/reports/events:
    get:
      operationId: getSiteEventReport
      summary: ADT Generate Site Security Event Report
      description: "Generate a security event report for a business site including alarms, access events, and activity summaries."
      tags:
        - Reports
      parameters:
        - name: siteId
          in: path
          required: true
          description: "Business site ID."
          schema:
            type: string
        - name: startDate
          in: query
          required: true
          description: "Report start date (ISO 8601)."
          schema:
            type: string
            format: date-time
        - name: endDate
          in: query
          required: true
          description: "Report end date (ISO 8601)."
          schema:
            type: string
            format: date-time
      responses:
        '200':
          description: "Security event report."
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventReport'
              examples:
                getSiteEventReport200Example:
                  summary: Default getSiteEventReport 200 response
                  x-microcks-default: true
                  value:
                    siteId: "site-001"
                    period:
                      startDate: "2025-03-01T00:00:00Z"
                      endDate: "2025-03-31T23:59:59Z"
                    summary:
                      totalAlarms: 2
                      totalAccessEvents: 150
                    events:
                      - id: "evt-001"
                        type: "alarm"
                        timestamp: "2025-03-15T14:30:00Z"
      x-microcks-operation:
        delay: 0
        dispatcher: FALLBACK
components:
  securitySchemes:
    oauth2:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://auth.adt.com/oauth/token
          scopes:
            business:read: "Read business site data"
            business:write: "Manage business security systems"
            access-control:manage: "Manage access control"
            reports:read: "Generate security reports"
  schemas:
    Site:
      type: object
      description: "A business site with ADT security systems."
      properties:
        id:
          type: string
          description: "Unique identifier of the site."
          example: "site-001"
        name:
          type: string
          description: "Name of the business site."
          example: "Downtown Office"
        address:
          type: string
          description: "Physical address."
          example: "456 Business Ave, Citytown, CA 90210"
        status:
          type: string
          description: "Current security status."
          enum:
            - armed
            - disarmed
            - alarm
          example: "armed"
        systemCount:
          type: integer
          description: "Number of security systems at this site."
          example: 3
    SiteList:
      type: object
      description: "List of business sites."
      properties:
        sites:
          type: array
          description: "Array of business sites."
          items:
            $ref: '#/components/schemas/Site'
        total:
          type: integer
          description: "Total number of sites."
          example: 5
    Credential:
      type: object
      description: "An access control credential."
      properties:
        id:
          type: string
          description: "Unique identifier of the credential."
          example: "cred-001"
        userId:
          type: string
          description: "ID of the user this credential belongs to."
          example: "usr-001"
        type:
          type: string
          description: "Type of credential."
          enum:
            - badge
            - pin
            - biometric
            - mobile
          example: "badge"
        status:
          type: string
          description: "Credential status."
          enum:
            - active
            - suspended
            - expired
          example: "active"
        validFrom:
          type: string
          format: date-time
          description: "Start of credential validity period."
        validTo:
          type: string
          format: date-time
          description: "End of credential validity period."
    CredentialInput:
      type: object
      description: "Request to create an access credential."
      required:
        - userId
        - type
      properties:
        userId:
          type: string
          description: "ID of the user."
          example: "usr-001"
        type:
          type: string
          description: "Credential type."
          enum:
            - badge
            - pin
            - mobile
        cardNumber:
          type: string
          description: "Card number for badge credentials."
          example: "1234567890"
    CredentialList:
      type: object
      description: "List of access credentials."
      properties:
        credentials:
          type: array
          description: "Array of credentials."
          items:
            $ref: '#/components/schemas/Credential'
    User:
      type: object
      description: "A user with access to a business site."
      properties:
        id:
          type: string
          description: "Unique user ID."
          example: "usr-001"
        name:
          type: string
          description: "Full name of the user."
          example: "Jane Smith"
        email:
          type: string
          format: email
          description: "Email address."
          example: "[email protected]"
        role:
          type: string
          description: "User role."
          enum:
            - admin
            - manager
            - employee
            - contractor
          example: "employee"
    UserList:
      type: object
      description: "List of site users."
      properties:
        users:
          type: array
          description: "Array of users."
          items:
            $ref: '#/components/schemas/User'
    EventReport:
      type: object
      description: "A security event report for a business site."
      properties:
        siteId:
          type: string
          description: "Site ID."
          example: "site-001"
        period:
          type: object
          description: "Report time period."
          properties:
            startDate:
              type: string
              format: date-time
            endDate:
              type: string
              format: date-time
        summary:
          type: object
          description: "Summary statistics."
          properties:
            totalAlarms:
              type: integer
              description: "Total alarm events."
              example: 2
            totalAccessEvents:
              type: integer
              description: "Total access control events."
              example: 150
        events:
          type: array
          description: "List of events in the period."
          items:
            type: object
    ErrorResponse:
      type: object
      description: "API error response."
      properties:
        code:
          type: string
          description: "Error code."
          example: "NOT_FOUND"
        message:
          type: string
          description: "Error message."
          example: "The requested resource was not found."