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