Zuper Properties API

Service property management and service task assignment

OpenAPI Specification

zuper-properties-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Zuper REST Assets Properties API
  description: The Zuper REST API provides programmatic access to the Zuper field service management platform. It covers jobs, scheduling, route optimization, customers, organizations, assets, inventory, purchase orders, invoices, proposals, quotes, timesheets, projects, properties, service tasks, service contracts, webhooks, and communications. Authentication uses API keys passed via the x-api-key header. Region-specific base URLs are discovered by POSTing to the accounts endpoint.
  version: 1.0.0
  contact:
    name: Zuper Developer Support
    url: https://developers.zuper.co/discuss
  x-api-evangelist-ratings:
    design: 7
    consistency: 7
    documentation: 8
servers:
- url: https://{dc_region}.zuperpro.com/api
  description: Region-specific API server (dc_region obtained from accounts endpoint)
  variables:
    dc_region:
      default: us1
      description: Data-center region identifier returned by the config endpoint
- url: https://accounts.zuperpro.com/api
  description: Accounts / configuration endpoint
security:
- ApiKeyAuth: []
tags:
- name: Properties
  description: Service property management and service task assignment
paths:
  /properties:
    get:
      summary: Get All Properties
      operationId: getAllProperties
      description: Retrieve a paginated list of properties.
      tags:
      - Properties
      parameters:
      - $ref: '#/components/parameters/PageParam'
      - $ref: '#/components/parameters/CountParam'
      responses:
        '200':
          description: Paginated list of properties
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedResponse'
    post:
      summary: Create Property
      operationId: createProperty
      description: Create a new property record.
      tags:
      - Properties
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                property_name:
                  type: string
                property_address:
                  $ref: '#/components/schemas/AddressObject'
                customer:
                  type: string
      responses:
        '200':
          description: Property created successfully
  /properties/{property_uid}:
    get:
      summary: Get Property Details
      operationId: getPropertyDetails
      description: Retrieve details for a specific property.
      tags:
      - Properties
      parameters:
      - name: property_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Property details
        '404':
          description: Not found
    put:
      summary: Update Property Details
      operationId: updatePropertyDetails
      description: Update an existing property record.
      tags:
      - Properties
      parameters:
      - name: property_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
      responses:
        '200':
          description: Property updated successfully
    delete:
      summary: Delete Property
      operationId: deleteProperty
      description: Delete a property record.
      tags:
      - Properties
      parameters:
      - name: property_uid
        in: path
        required: true
        schema:
          type: string
          format: uuid
      responses:
        '200':
          description: Property deleted successfully
components:
  schemas:
    AddressObject:
      type: object
      properties:
        street:
          type: string
        city:
          type: string
        state:
          type: string
        country:
          type: string
        zip_code:
          type: string
        geo_coordinates:
          type: object
          properties:
            latitude:
              type: number
            longitude:
              type: number
    PaginatedResponse:
      type: object
      properties:
        type:
          type: string
        total_records:
          type: integer
        current_page:
          type: integer
        total_pages:
          type: integer
  parameters:
    CountParam:
      name: count
      in: query
      description: Number of records per page (max 1000)
      schema:
        type: integer
        default: 10
        maximum: 1000
    PageParam:
      name: page
      in: query
      description: Page number (1-based)
      schema:
        type: integer
        default: 1
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: API key generated from Zuper Settings > Developer Hub > API Keys