openapi: 3.1.0
info:
title: Freshdesk REST Agents Roles API
description: The Freshdesk REST API (v2) provides programmatic access to helpdesk data and operations within Freshdesk, a customer support platform by Freshworks. It exposes endpoints for managing tickets, contacts, companies, agents, groups, conversations, products, email configurations, SLA policies, business hours, time entries, satisfaction ratings, solution categories, solution folders, solution articles, and more. The API uses JSON for request and response payloads, supports API key-based authentication, and follows RESTful conventions for CRUD operations.
version: '2.0'
contact:
name: Freshdesk Support
url: https://support.freshdesk.com/
termsOfService: https://www.freshworks.com/terms/
servers:
- url: https://{domain}.freshdesk.com/api/v2
description: Freshdesk Production Server
variables:
domain:
default: yourdomain
description: Your Freshdesk subdomain, e.g. if your helpdesk URL is acme.freshdesk.com, use acme.
security:
- basicAuth: []
tags:
- name: Roles
description: Manage roles that define agent permissions.
paths:
/roles:
get:
operationId: listRoles
summary: List all roles
description: Retrieves a list of all roles defined in the helpdesk.
tags:
- Roles
responses:
'200':
description: Successfully retrieved list of roles.
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/Role'
'401':
$ref: '#/components/responses/Unauthorized'
/roles/{role_id}:
get:
operationId: getRole
summary: View a role
description: Retrieves the details of a specific role by ID.
tags:
- Roles
parameters:
- $ref: '#/components/parameters/roleId'
responses:
'200':
description: Successfully retrieved role details.
content:
application/json:
schema:
$ref: '#/components/schemas/Role'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
components:
responses:
Unauthorized:
description: Authentication failed or credentials were not provided.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
NotFound:
description: The requested resource was not found.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
Role:
type: object
properties:
id:
type: integer
format: int64
description: Unique identifier of the role.
name:
type: string
description: Name of the role.
description:
type: string
nullable: true
description: Description of the role.
default:
type: boolean
description: Whether this is a default system role.
created_at:
type: string
format: date-time
description: Timestamp when the role was created.
updated_at:
type: string
format: date-time
description: Timestamp when the role was last updated.
Error:
type: object
properties:
description:
type: string
description: Human-readable error description.
errors:
type: array
items:
type: object
properties:
field:
type: string
description: Field that caused the error.
message:
type: string
description: Error message for the field.
code:
type: string
description: Error code.
parameters:
roleId:
name: role_id
in: path
required: true
description: Unique identifier of the role.
schema:
type: integer
format: int64
securitySchemes:
basicAuth:
type: http
scheme: basic
description: Freshdesk uses API key-based authentication. Pass your API key as the username with any string (e.g. X) as the password using HTTP Basic Authentication.
externalDocs:
description: Freshdesk API Documentation
url: https://developers.freshdesk.com/api/