openapi: 3.0.1
info:
title: Gladly API
version: '1.0'
description: '# Introducing the Gladly API
At Gladly, we believe that customer service is best when it''s a conversation.
That means more than just helping customers with one-off questions or issues: it''s about making them feel known, valued,
and respected for the individuals they are.
The Gladly API was built to help facilitate those relationships, providing agents with the rich customer context
they need to deliver seamless experiences that make customers feel like they''re more than just a number in a sea of others.
# Overview
You can integrate easily with Gladly by calling Gladly''s [REST API](#section/Overview/REST-API)
and implementing the [Lookup API](#section/Overview/Lookup-API) to provide data from your own services.
Some examples of what you do through Gladly APIs include managing customer profile data, interacting with a customer''s
timeline,
providing the latest information about a customer''s orders, and more.
## REST API
Clients can access the **REST API** via HTTPS at your organization''s Gladly domain (e.g. `https://{organization}.gladly.com`).
Resources follow REST semantics and utilize industry-standard HTTP verbs, response codes, and authentication schemes.
In addition, all responses and payloads are in JSON with consistent error codes and formats.
## Lookup API
The Gladly **Lookup API** allows your organization to provide data services to power the agent''s experience with a complete
view of your customers''
information, transactions, and activity. You can provide a web service that implements the Lookup API and Gladly will
call it when that data is needed.
Like the REST API, the Lookup API is specified using REST semantics, and exchanges JSON requests and responses authenticated
and signed with secure keys.
Gladly will perform lookups when certain activities occur within Gladly, such as when a customer''s profile is loaded.
A detailed overview of Lookup Adaptor architecture, requests, resposnes and more can be found [here](https://help.gladly.com/developer/docs/lookup-adapter-introduction).
## Testing
Test the myriad possibilities of the Gladly API in a safe, secure space. We''ll enable the Gladly API in a separate sandbox
environment, so you can experiment freely without impacting your production environment (or vice versa).
Your sandbox environment is accessible at `https://{organization}.gladly.qa`, where `organization` is your company name.
For specific API endpoints, see documentation below.
# Getting Started
Think of this section as getting the keys to unlocking your access to the Gladly APIs.
First, you''ll need to set up an account with the necessary API [permissions](#/section/Getting-Started/Permissions).
With these permissions, you can then go on to create the [API Token(s)](#section/Getting-Started/Creating-API-Tokens)
you need to access Gladly''s API [resources](#section/Overview/Resources).
## Permissions
Gladly Administrators can set API permissions on an agent-by-agent basis.
We''ll discuss how this maps to API access in the section on [authentication](#section/Authentication) below.
To allow a user to create API tokens and access the API:
1. Log in to your Gladly instance.
2. Open the menu on the top left-hand corner of the page.
3. Navigate to **Settings** > **Users*
4. Search and click the user profile you wish to give access to.
5. You''ll see a permission called **API User**. Select it, while making sure to keep the user''s **Agent** role intact.
6. Hit **Save** to give access.

We recommend creating a dedicated user to make API calls, whose account won''t be used for agent and organization management.
This will help you with any future audits of API activity vs. agent activity.
## Creating API Tokens
You must create an API token to access Gladly API resources (see above [Permissions](#/section/Getting-Started/Permissions)).
If your profile already has access to the **API User** permission, you''ll see a menu item titled **More settings**. Click
**More settings**:

Click **API Tokens**, then the **Create Token** button on the upper right-hand corner of the page:

A token will be generated and named, by default, **New Token** (though depending on whether you have existing tokens,
it may be named New Token 2, or New Token 3, etc.).
You can rename the token to something more easily referenceable by clicking the name to edit.
This token will be associated with your agent profile, which we refer to as the API User in this document.

For security purposes, you''ll only see a new token once before you navigate away from the page.
## Replacing/Rotating API Tokens
Should you lose this token, or wish to rotate your application keys, you can do the following:
1. Generate a new token.
2. Store the new token in a secure location.
3. Delete the old token.
4. Update your applications/scripts with the new token.
# Authentication
<!-- ReDoc-Inject: <security-definitions> -->'
servers:
- url: https://{organization}.gladly.com/api/v1
description: Production
variables:
organization:
default: organization
description: Your Gladly organization subdomain
- url: https://{organization}.gladly.qa/api/v1
description: Sandbox
variables:
organization:
default: organization
description: Your Gladly QA organization subdomain
tags:
- name: Agents
description: 'An **Agent** represents the user profile of a person who helps customers in Gladly.
The API allows you to lookup Agents who participated in conversations with customers.
'
- name: Public Answer
description: 'A **Public Answer** in Gladly represents a consumer-facing Answer.
The Public Answers API allows you to search and retrieve Public Answers (created
directly in the Gladly UI), which you can display in the Chat
web widget, use to build your website''s help center/FAQ page, or publish
on any page on your website.
This API can be used without an API token because it only provides access to
public content. You may also work with Gladly Support to
enable [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS)
access so the API can be used directly from client-side javascript.
### How a user creates a public answer in Gladly

### How that answer is searched and displayed on the Chat Web widget

'
- name: Answer Management
description: "The **Answer Management API** allows you to create, update, and delete Answers in Gladly. To create an Answer\
\ with content, two calls would be needed. \nOne call to create an Answer and subsequent call(s) to add content(s)\n"
- name: Audiences
description: 'An **Audience** represents a brand (or segment) specially for a multi-brand company. They are used to categorize
Answers, Help Centers and Chats for the specific brands.
The API allows you to lookup the audiences that have been created for the organization.
'
- name: Communications
description: 'Communications API enables you to programmatically send messages to your customers. These messages are non-routable
and non-searchable.
### Agent View

### Consumer View

'
- name: Customers
description: 'A **Customer** in Gladly represents information about a customer of your organization including their profile,
contact information,
notes, and transactions.
Customers API allows you to add, update, and get customer profile data.
### Error Handling
Id, mobile phone number, and email address must be unique across customer records. 409 errors returned will
include details on any conflicts, such as a field being taken.
Additionally, errors may be returned due to customer profiles being merged. If a customer has been merged into
another, requests to get a customer by id will return 301 errors specifying the new id of the customer,
and requests to update a customer by id will return 404 errors.
'
- name: Conversations
description: '## Conversation
A **Conversation** in Gladly contains the timeline of activity for a customer including communications to and from your
organization along with other internal and external activity.
Conversations API enables you to interact with the customer conversation timeline.
## Conversation Items
A number of different types of items may appear in a customer''s timeline. Each is described below.
| Item Type | Item Definition | Create | Read | Update | Delete | Media |
|-------------------------------|----------------|--------|------|--------|--------|--------|
| Chat Message | A message sent/received via the [Chat](https://help.gladly.com/docs/add-and-configure-chat-entry-points#)
channel | Yes | Yes | No | No | No |
| Conversation Status Change | Conversation status changed (e.g.: from OPEN to WAITING, or OPEN to CLOSED) | Yes |
Yes | Yes | No | No |
| Customer Activity | Non-routable customer activity added to customer timeline via API | Yes | Yes |
No | Yes | No |
| Email | A message sent/received via the [Email](https://help.gladly.com/docs/add-and-configure-email-entry-point)
channel | Yes | Yes | No | No | No |
| Facebook Messenger Message | A message sent/received via the [Facebook Messenger](https://help.gladly.com/docs/set-up-and-configure-facebook-messenger)
channel | Yes | Yes | No | No | No |
| Instagram Direct | A message sent/received via the [Instagram](https://help.gladly.com/docs/set-up-and-configure-instagram-messaging)
channel | No | Yes | No | No | No |
| Note | An internal [Note](https://help.gladly.com/docs/add-a-note-to-a-conversation) on the
Customer conversation | Yes | Yes | No | No | No |
| Phone Call | A [Phone Call](https://help.gladly.com/docs/add-and-configure-voice-entry-points) placed/received
on Gladly | No | Yes | No | No | Yes |
| SMS Message | A message sent/received via the [SMS](https://help.gladly.com/docs/add-and-configure-sms-entry-points)
channel | Yes | Yes | No | No | No |
| Task | A [Task](https://help.gladly.com/docs/what-is-a-task) on a Customer''s profile | Yes |
Yes | Yes | No | No |
| Topic Change | A [Topic](https://help.gladly.com/docs/what-are-topics) added or removed on a Conversation
| Yes | Yes | No | Yes | No |
| Twitter (decommissioned as of 04/20/23) | A message sent/received via the [Twitter](https://help.gladly.com/docs/setup-and-configure-twitter-direct-messages)
channel | No | Yes | No | Yes | No |
| Voice AI Message | A spoken message exchanged with Gladly''s voice AI during a voice AI session | No |
Yes | No | No | No |
| Voicemail | A Voicemail received | No | Yes | No | No | Yes |
| WhatsApp | A message sent/received via the WhatsApp channel | No | Yes | No | No |
No |
### Chat Message
Content of messages sent between Gladly and customers through Gladly Chat.
### Conversation Status Change
Record of a change in the status of a conversation.
### Customer Activity
Information about activities customers participated in, for example, emails they received, issues in another system, or
customer satisfaction surveys they answered.
These can be created through the API to bring in information from other systems.
Adding an activity to the customer timeline is not customer facing.
For example, posting an email activity to the timeline does not send an email to the customer.

### Email
Content of emails sent between Gladly and customers.
### Facebook Messenger Message
Content of messages sent between Gladly and customers on Facebook Messenger.
### Instagram Direct
Content of messages sent between Gladly and customers on Instagram Direct.
### Note
Content of the note recorded in Gladly.
### Phone Call
Information about phone calls that took place between Gladly and customers.
### SMS Message
Content of SMS text messages sent between Gladly and customers.
To send SMS messages to customers through the API, see [Send SMS](#operation/sendSMS).
### Task
Interacting with tasks through the conversations API is deprecated. Use [Tasks API](#tag/Tasks) instead.
### Topic Change
Record of an agent adding or removing a topic from a conversation in Gladly.
### Twitter (decommissioned as of 04/20/23)
Content of messages sent between Gladly and customers on Twitter.
### Voice AI Message
A spoken message exchanged between a customer and Gladly''s voice AI during a voice AI session.
### Voicemail
Information about voicemail left by customers in Gladly.
### WhatsApp
Content of messages sent between Gladly and customers on WhatsApp.
'
- name: Export
description: 'Export API is a simple, comprehensive, file-based data export. You can export the lifetime of your customers''
conversations in Gladly to a central data repository such as your data warehouse or data lake. You can export all communications
successfully delivered within a specified date range. The export date range could be the past hour, the past 24 hours,
or a custom data range. Please note, for one-time exports covering a period greater than six months, a service fee may
apply.
Job results can be deleted once downloaded. Delete will remove all result files along with the job metadata. Files older
than 14 days are removed from Gladly and jobs older than 14 days are not available from the API. If you discover that
you need the deleted files later, please contact Gladly Support to regenerate them for you.
### SCHEDULING EXPORT JOBS
You can schedule a one-time or repeating - hourly or daily - data export job. By default, each organization has a daily
export job configured. To schedule a one-time job or change the job frequency, please contact Gladly Support.
'
- name: Events
description: 'An **Event** is something that has happened in Gladly. The Events API allows you to extract event details
from the past 24 hours.
'
- name: Freeform Topics
description: "Freeform Topics allow you to associate granular data like Order Number to a Conversation. This data can be\
\ accessed for analysis via APIs, Webhooks, and AWS EventBridge. They are powered by custom attributes as you will see\
\ throughout this API, the Conversations API, the Events API and events used in Webhooks. \n\nNote: These attributes are\
\ currently associated to the Conversation entity only and are therefore different from customAttributes listed under\
\ the Customer entity. See the Customer API for more information on Customer custom attributes.\n"
- name: Reports
description: 'A **Report** in Gladly contains metrics that you need to run the contact center. Reports API allows you to
access Gladly''s reports programatically.
'
- name: Organization
description: 'An **Organization** contains metadata about your company that Gladly is configured with.
'
- name: Inboxes
description: 'An **Inbox** receives customer communications in Gladly. The communications route to the inbox according to
channel and destination endpoint configuration.
For example, all calls to a specific phone number or emails to a specific address may go to an inbox.
'
- name: Proactive Conversations
description: 'A proactive conversation consists of a **campaign** and **recipients**. This APIs intended use-case would
be to provide status updates to a customer and not for marketing purposes.
'
- name: Tasks
description: 'A task is a way to create and do internal follow-up work for a customer within Gladly. Tasks have a due date,
an assignee, a description of what is needed for a customer, and can be commented on. These can be created through the
API to assign items to work within Gladly.

'
- name: Teams
description: 'A **Team** represents a group of Agents. They may handle particular **Inboxes** or types of work within Gladly.
'
- name: Business Hours
description: '**Business Hours** define the operating schedule for your organization. They determine when your organization
is available to handle customer communications and can be used to control routing, auto-responses, and other time-sensitive
workflows.
Business hours configurations include:
- **Schedule blocks** for each day of the week specifying start and end times
- **Timezone** in IANA format (e.g., America/Los_Angeles)
- **Exceptions** for holidays or special dates
One business hours configuration is marked as **primary** and serves as the default schedule for your organization. The
primary business hours cannot be deleted.
'
- name: Topics
description: 'A **Topic** is a way of labeling a conversation in Gladly for specific business purposes. For example, an
agent may apply the topic "Return" to a conversation where a customer returns merchandise.
Topics are used for reporting and to control various workflows.
Topics can be configured to have a nested hierarchy. For instance, the topic "Return" could be a parent of "Size" and
"Color" child topics. Visit our [Help Pages](https://help.gladly.com/docs/principles-of-hierarchical-topics) to learn
more about Hierarchical Topics.
'
- name: Webhooks
description: 'A **Webhook** is a way to send notifications about Gladly events as a POST request to the endpoint of your
choice.
'
- name: Summary
description: "Gladly **webhooks** are an easy way to send notifications about Gladly events and have them delivered to the\
\ endpoint of your choice, giving you a streamlined method to trigger associated actions in external systems that respond\
\ to events in Gladly.\n\nSimply choose where to send notifications about events that you are interested in (e.g. when\
\ a conversation is closed), and they’ll be delivered to the endpoint of your choice.\n\nConfigure webhooks using the\
\ [Webhooks API](#operation/createWebhook) or the Webhooks Admin Page.\n\nUsers with API User permissions can configure\
\ webhooks by navigating to Integrations > Webhooks.\n\n\n\n## Securing\
\ Webhooks\nWe provide two methods for your web service to authenticate requests from Gladly.\nWe recommend implementing\
\ at least one **authentication** option.\n\n### Basic Authentication\n\nFor this method you will supply a username and\
\ password with the webhooks `credentials` field. This will be sent with each request. You may optionally supply a realm\
\ if needed.\n\n### Header Based Token Authentication\n\nFor this method you will configure one or more HTTP headers with\
\ the webhook's `headers` field. Gladly will send in each request to your web service.\n\n## Ping Event\nWhenever you\
\ enable a webhook or update a webhook's URL, we'll send you a special `PING` event.\n\nYour web service is expected to\
\ respond with a 200 status code to this event. If it does not respond or times out, the webhook create or update will\
\ not succeed.\n\n## Retry Policy\n\n**Effective 6/28/23**\n\nIf your service responds to an event with a response code\
\ outside the 2XX range or times out after 15 seconds, Gladly considers that delivery as failed and will resend the request\
\ up to 4 times over an hour. After the fourth attempt, we will deactivate the webhook and wil notify all API Users in\
\ your organization's environment via email. \n\nTo reactivate the webhook, your team will first need to investigate the\
\ issue and make the necessary changes for the webhook to start working again. Once the issue is resolved, you will be\
\ able to re-activate the webhook via the Settings > Webhooks page.\n\nThe following table shows the intervals between\
\ each retry attempt.\n\n| Attempt | Retry interval |\n| ------- | ------------------------ |\n| 1 | 30\
\ seconds |\n| 2 | 5 minutes |\n| 3 | 30 minutes |\n| 4 |\
\ 1 hour |\n\n## Logs\nWe provide the last 100 HTTP request logs for a webhook that occurred during\
\ the past month. Logs can take up to 30 seconds to view and require you to refresh the page.\n\n\n\
\nEach log displays the status, event type and occurred at timestamp for a given request. You can expand the log for more\
\ details about the request and response.\nFor more information about webhook logs, please see our [Help Documentation](https://connect.gladly.com/docs/help-documentation/article/reactivate-deactivated-webhooks/?highlight=webhook).\n\
\n## Payloads\nGladly payloads are intentionally small: they contain only Gladly IDs and event names rather than the object/data\
\ that has been modified or created\n\nThis helps Gladly webhooks perform more quickly when many events occur throughout\
\ the day. This also assists with security, so if you misconfigure a webhook, it does not send sensitive information to\
\ an outside service.\n\nTo retrieve more information about the object in question, you may make an additional Gladly\
\ API call to retrieve the Gladly object. For example, to know more about conversationId whose status was updated, call\
\ the [GET Conversation API](#operation/getConversation) or the [List Items in Conversation API](#operation/getConversationItems).\n\
\n## Available Events\nPlease see the [Help Documentation](https://help.gladly.com/docs/reporting-concepts) for more information\
\ about many of the events listed below.\n\n| Event | Triggered by Gladly when: \
\ |\n| ------------------------------| --------------------------------------------------------------|\n\
| AGENT_AVAILABILITY/UPDATED | an Agent's availability is updated |\n| AGENT_STATUS/CHANGED_ACTIVE_REASON | an\
\ Agent's active reason is updated |\n| AGENT_STATUS/LOGGED_IN | an Agent logs in |\n| AGENT_STATUS/LOGGED_OUT\
\ | an Agent logs out |\n| AGENT_STATUS/RETURNED_FROM_AWAY | an Agent returns from away |\n| AGENT_STATUS/WENT_AWAY\
\ | an Agent goes away |\n| CONTACT/ENDED | a Contact is ended |\n| CONTACT/FULFILLED\
\ | a Contact's SLA is fulfilled |\n| CONTACT/HOLD_ENDED | a Contact's hold is ended\
\ |\n| CONTACT/HOLD_STARTED | a Contact's hold is started |\n| CONTACT/JOINED | an Agent\
\ joins a Contact |\n| CONTACT/MESSAGE_RECEIVED | a Message is received |\n| CONTACT/MESSAGE_SENT \
\ | a Message is sent |\n| CONTACT/OFFER_ACCEPTED | a Contact's offer is accepted |\n| CONTACT/OFFERED\
\ | a Contact is offered |\n| CONTACT/OFFER_REJECTED | a Contact's offer is rejected |\n\
| CONTACT/STARTED | a Contact is started |\n| CONTACT/TRANSFERRED | a Contact is transferred\
\ |\n| CONVERSATION/CLOSED | a Conversation is closed |\n| CONVERSATION/CREATED\
\ | a new Conversation is created |\n| CONVERSATION/CUSTOM_ATTRIBUTE_ADDED\
\ | a custom attribute has been added to the conversation |\n| CONVERSATION/CUSTOM_ATTRIBUTE_REMOVED\
\ | a custom attribute has been removed from the conversation |\n| CONVERSATION/NOTE_CREATED\
\ | a Note is added to a Conversation |\n| CONVERSATION/REOPENED | a Conversation is reopened\n\
| CONVERSATION/TOPIC_ADDED | a topic is added to a Conversation |\n| CONVERSATION/TOPIC_REMOVED | a\
\ Conversation's topic is removed |\n| CONVERSATION_ASSIGNEE/UPDATED | a Conversation's assignee (inbox and/or Agent)\
\ changes |\n| CONVERSATION_STATUS/UPDATED | a Conversation changes statuses (e.g.: from OPEN to CLOSED)\
\ |\n| CUSTOMER/MERGED | a Customer Profile is merged with another profile |\n| CUSTOMER_PROFILE/CREATED\
\ | a Customer Profile is created |\n| CUSTOMER_PROFILE/DELETED |\
\ a Customer Profile is deleted |\n| CUSTOMER_PROFILE/MERGED | a Customer Profile\
\ is merged with another profile |\n| CUSTOMER_PROFILE/UPDATED | a Customer Profile is updated (e.g.:\
\ name is updated) |\n| EXPORT_JOB/COMPLETED | a [data export job](#operation/findJobs) is completed\
\ |\n| EXPORT_JOB/FAILED | a [data export job](#operation/findJobs) fails\
\ to complete |\n| PAYMENT_REQUEST/CREATED | a payment request is created |\n| PAYMENT_REQUEST/STATUS_CHANGED\
\ | a payment request's status changes |\n| PAYMENT_REQUEST/VIEWED | a payment request is viewed by the\
\ Customer |\n| PING | a webhook is initially created to verify serivce availability |\n\
| TASK/ASSIGNEE_UPDATED | a task's assignee is updated |\n| TASK/CLOSED | a task is\
\ closed |\n| TASK/COMMENT_ADDED | a comment is added to a task |\n| TASK/CONTENT_UPDATED \
\ | the content of a task is updated |\n| TASK/CREATED | a task is created |\n| TASK/DUE_DATE_UPDATED\
\ | the due date of a task is updated |\n| TASK/FOLLOWER_ADDED | a follower is added to a\
\ task |\n| TASK/FOLLOWER_REMOVED | a follower is removed from a task\n| TASK/REOPENED \
\ | a closed task is reopened |\n"
- name: Customer Lookup
description: '**Customer Lookup** allows you to provide a web service to search and get customer profile data and transactions.
To support Customer Lookup, your organization will deploy an adaptor service (aka Lookup Adaptor) running on your network
that implements the Lookup API.
From there you can can connect the service to internal systems providing customer and transaction data.

### Overview
Building a Lookup Adaptor will allow you to showcase extended customer profile information and actions in Gladly. For
example, you may extend the customer profile in Gladly with loyalty points and lifetime value to assist with VIP routing.
You can also display historical orders in Gladly to allow agents to view frequently used directly in Gladly without having
to go to another system. You can even extend Gladly with Actions so that agents can cancel orders or award loyalty points
directly in Gladly!
On a high-level, Gladly will perform a request to your Customer Lookup integration(s) to retrieve extended information
from your system(s) about a Customer Profile in Gladly.
To ensure performance, Gladly recommends that your Customer Lookup integration(s) be able to respond back to the Gladly
POST request in < 5 seconds. Gladly will terminate the request in 15 seconds if it receives no response from your integration(s).
Please note that if one Customer Lookup integration times out / responds with an error that Gladly will consider this
an error for all Customer Lookup integration(s).
### Sample code
Sample code for building a Customer Lookup integration can be found [here](https://github.com/gladly/lookup-practice).
### Architecture, Setup, Authentication, Sample Requests and More
A detailed overview of Lookup Adaptor architecture, requests, resposnes and more can be found [here](https://help.gladly.com/developer/docs/lookup-adapter-introduction).
'
- name: Versioning
description: "As we evolve the Gladly API over time, changes will be either added to the current version of the API (i.e.\
\ **[backwards compatible changes](#backwards-compatible-changes)**),\nor result in a new version that you will need to\
\ integrate with afresh (i.e. **[non-backwards compatible changes](#non-backwards-compatible-changes)**).\n\n## URL Path\
\ Versioning\n\nThe various versions of the Gladly API will be differentiated via global versioning, with the relevant\
\ version number reflected within the path parameter of the URL:\n\n https://organization.gladly.com/api/v{major-version-number}/{resource\
\ path}\n\n## Backwards Compatible Changes\n\nFor the most part, changes to the API will be backwards compatible, such\
\ as adding resources, additional fields to response objects,\nnew value types for enums, or expanding a validation constraint\
\ to be more accepting.\n\nEnsure your client can gracefully handle or ignore unfamiliar fields and values so it continues\
\ to operate smoothly over the lifespan of an API version.\n\n## Non-Backwards Compatible Changes\n\nVersions will be\
\ upleveled when a non-backwards compatible change occurs. This should not happen often, but can occur in the case of:\n\
- a field being removed from an object\n- a resource path no longer being supported\n- changing the type of a field\n\
- adding a new required parameter for a resource\n- constricting the validation parameters for a request\n\nThese will\
\ only occur when absolutely necessary and a summary of the changes from version to version can be viewed in the release\
\ notes.\nPrevious versions will be supported for a period of time before being removed after providing ample advanced\
\ notice.\n"
- name: Error Handling
description: "Wherever possible, Gladly uses standard HTTP status codes to signal the success or failure of a call.\nGenerally\
\ speaking, `2xx` statuses indicate success, `3xx` statuses indicate the client must take further action such as redirection,\n\
`4xx` statuses indicate an error with the input supplied by the client, `5xx` statuses indicate an unexpected error from\
\ Gladly servers (these will be rare cases).\n\n## Common Status Codes\n\n| HTTP Status | Description |\n| -----------\
\ | ------------------------------------------------- |\n| 200 | Success with results in response body \
\ |\n| 201 | Resource created |\n| 204 | Success with empty response\
\ body |\n| 301 | The resource location has moved |\n| 400 | API usage\
\ error |\n| 401 | Authentication not provided |\n| 403\
\ | User does not have persmission to access resource |\n| 404 | Resource is not found \
\ |\n| 429 | Rate limit reached |\n\n## Programmatic Remediation\n\
In the case of a `400` response, there will be a structured list of `error` objects that w
# --- truncated at 32 KB (414 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gladly/refs/heads/main/openapi/gladly-rest-api-openapi.yml