openapi: 3.1.0 info: title: Freshworks Freshcaller Accounts Assets API description: The Freshcaller API provides access to cloud-based phone system functionality for contact center operations. It allows developers to export call data, call recordings, user information, and agent team details stored in the Freshcaller system. The API supports integration of voice and telephony workflows into broader business applications, enabling organizations to automate call center reporting, synchronize agent data, and build custom dashboards around their phone operations. version: '1.0' contact: name: Freshworks Support url: https://support.freshcaller.com/ termsOfService: https://www.freshworks.com/terms/ servers: - url: https://{domain}.freshcaller.com/api/v1 description: Freshcaller Production Server variables: domain: default: yourdomain description: Your Freshcaller subdomain security: - apiKeyAuth: [] tags: - name: Assets description: Manage IT assets including hardware, software, and configurations. paths: /assets: get: operationId: listAssets summary: List all assets description: Retrieves a paginated list of all IT assets tracked in the service desk including hardware, software, and other resources. tags: - Assets parameters: - $ref: '#/components/parameters/PageParam' - $ref: '#/components/parameters/PerPageParam' responses: '200': description: Success content: application/json: schema: type: object properties: assets: type: array items: $ref: '#/components/schemas/Asset' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createAsset summary: Create an asset description: Creates a new IT asset record in the service desk. tags: - Assets requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetCreate' responses: '201': description: Asset created successfully content: application/json: schema: type: object properties: asset: $ref: '#/components/schemas/Asset' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /assets/{asset_id}: get: operationId: getAsset summary: View an asset description: Retrieves the details of a specific IT asset by its display ID. tags: - Assets parameters: - $ref: '#/components/parameters/AssetIdParam' responses: '200': description: Success content: application/json: schema: type: object properties: asset: $ref: '#/components/schemas/Asset' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' put: operationId: updateAsset summary: Update an asset description: Updates the properties of an existing IT asset. tags: - Assets parameters: - $ref: '#/components/parameters/AssetIdParam' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AssetCreate' responses: '200': description: Asset updated successfully content: application/json: schema: type: object properties: asset: $ref: '#/components/schemas/Asset' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deleteAsset summary: Delete an asset description: Permanently deletes an IT asset from the service desk. tags: - Assets parameters: - $ref: '#/components/parameters/AssetIdParam' responses: '204': description: Asset deleted successfully '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: parameters: AssetIdParam: name: asset_id in: path required: true description: The display ID of the asset. schema: type: integer PageParam: name: page in: query description: Page number for pagination. schema: type: integer minimum: 1 default: 1 PerPageParam: name: per_page in: query description: Number of results per page (max 100). schema: type: integer minimum: 1 maximum: 100 default: 30 schemas: Asset: type: object properties: id: type: integer description: Unique ID of the asset. display_id: type: integer description: Display ID of the asset. name: type: string description: Name of the asset. description: type: string description: Description of the asset. asset_type_id: type: integer description: ID of the asset type. asset_tag: type: string description: Asset tag identifier. impact: type: string description: Impact level of the asset. usage_type: type: string description: Usage type (permanent, loaner). user_id: type: integer description: ID of the user assigned to the asset. department_id: type: integer description: ID of the department. location_id: type: integer description: ID of the location. agent_id: type: integer description: ID of the managing agent. assigned_on: type: string format: date-time description: Date when the asset was assigned. created_at: type: string format: date-time description: Timestamp when created. updated_at: type: string format: date-time description: Timestamp when last updated. Error: type: object properties: description: type: string description: Human-readable error message. errors: type: array description: List of specific validation errors. items: type: object properties: field: type: string description: Field that caused the error. message: type: string description: Error message. code: type: string description: Error code. AssetCreate: type: object required: - name - asset_type_id properties: name: type: string description: Name of the asset. description: type: string description: Description. asset_type_id: type: integer description: ID of the asset type. asset_tag: type: string description: Asset tag identifier. impact: type: string description: Impact level. usage_type: type: string description: Usage type. user_id: type: integer description: ID of the user to assign. department_id: type: integer description: ID of the department. location_id: type: integer description: ID of the location. agent_id: type: integer description: ID of the managing agent. responses: NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Authentication credentials are missing or invalid. content: application/json: schema: $ref: '#/components/schemas/Error' BadRequest: description: The request body or parameters are invalid. content: application/json: schema: $ref: '#/components/schemas/Error' securitySchemes: apiKeyAuth: type: apiKey in: header name: X-Api-Auth description: API key authentication. The API key can be found in your Freshcaller admin settings. externalDocs: description: Freshcaller API Documentation url: https://developers.freshcaller.com/api/