openapi: 3.0.3 info: title: Zuper REST Assets Users 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: Users description: Platform user management and skills tracking paths: /users: get: summary: Get All Users operationId: getAllUsers description: Retrieve a paginated list of platform users. tags: - Users parameters: - $ref: '#/components/parameters/PageParam' - $ref: '#/components/parameters/CountParam' responses: '200': description: Paginated list of users content: application/json: schema: $ref: '#/components/schemas/PaginatedResponse' post: summary: Create User operationId: createUser description: Create a new platform user. tags: - Users requestBody: required: true content: application/json: schema: type: object responses: '200': description: User created successfully /users/{user_uid}: get: summary: Get User Details operationId: getUserDetails description: Retrieve details for a specific user. tags: - Users parameters: - name: user_uid in: path required: true schema: type: string format: uuid responses: '200': description: User details '404': description: Not found put: summary: Update User Details operationId: updateUserDetails description: Update an existing user's details. tags: - Users parameters: - name: user_uid in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: type: object responses: '200': description: User updated successfully delete: summary: Delete User operationId: deleteUser description: Delete a platform user. tags: - Users parameters: - name: user_uid in: path required: true schema: type: string format: uuid responses: '200': description: User deleted successfully components: 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 schemas: PaginatedResponse: type: object properties: type: type: string total_records: type: integer current_page: type: integer total_pages: type: integer securitySchemes: ApiKeyAuth: type: apiKey in: header name: x-api-key description: API key generated from Zuper Settings > Developer Hub > API Keys