# Issues

## Get a list of issues

> Returns a paginated list of issues within a required time range (max 30 days).\
> \
> \*\*Rate limit:\*\* 10 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"GetIssuesResponseBody":{"properties":{"data":{"description":"The data payload of the response.","items":{"$ref":"#/components/schemas/Issue"},"type":"array"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues":{"get":{"description":"Returns a paginated list of issues within a required time range (max 30 days).\n\n**Rate limit:** 10 requests per minute","operationId":"GetIssues","parameters":[{"description":"The start time (RFC3339) of the time range to get issues for. The duration between start_time and end_time must be less than or equal to 30 days.","in":"query","name":"start_time","required":true,"schema":{"type":"string"}},{"description":"The end time (RFC3339) of the time range to get issues for. The duration between start_time and end_time must be less than or equal to 30 days.","in":"query","name":"end_time","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIssuesResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Get a list of issues","tags":["issues"]}}}}
```

## Create a new issue

> Creates a new issue with the specified title and body. Requires either an account\_id or requester information.\
> \
> \*\*Rate limit:\*\* 10 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"CreateIssueRequest":{"properties":{"account_id":{"description":"The account that this issue belongs to.","type":"string"},"assignee_id":{"description":"The user the issue should be assigned to.","type":"string"},"attachment_urls":{"description":"An array of attachment URLs to attach to this issue.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether the requester's identity has NOT been verified. Defaults to false (verified).","type":"boolean"},"body_html":{"description":"The HTML content of the body of the issue.","type":"string"},"contact_id":{"description":"The contact to attribute the first message to. Makes the message appear as a customer message rather than an internal note. Only one of user_id or contact_id can be provided. Requires destination_metadata.","type":"string"},"created_at":{"description":"Timestamp of when the issue was created. If not specified, the current time will be used. (RFC3339)","type":"string"},"custom_fields":{"description":"An array of custom fields to be used on this issue.","items":{"$ref":"#/components/schemas/CustomFieldValue"},"type":"array"},"destination_metadata":{"$ref":"#/components/schemas/DestinationMetadata"},"priority":{"description":"The priority of the issue. Can be one of: urgent, high, medium, or low.","type":"string"},"requester_avatar_url":{"description":"The URL of an avatar of the requester.","type":"string"},"requester_email":{"description":"The email of the contact this issue is on behalf of. If no matching contact exists, one will be created. Include one of requester_id or requester_email.","type":"string"},"requester_id":{"description":"The contact this issue is on behalf of. Sets the \"Requester\" shown in the issue sidebar. Include one of requester_id or requester_email.","type":"string"},"requester_name":{"description":"The full name of the requester. Used when creating a new contact via requester_email.","type":"string"},"tags":{"description":"An array of strings to use as tags on this issue. If provided, the issue tags will be updated to the given tags.","items":{"type":"string"},"type":"array"},"team_id":{"description":"The ID of the team this issue should be assigned to.","type":"string"},"title":{"description":"The title of the issue.","type":"string"},"user_id":{"description":"The internal user to attribute the first message to. Only one of user_id or contact_id can be provided. If neither is set, the API token's user is used.","type":"string"}},"required":["body_html","title"],"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"DestinationMetadata":{"description":"Specifies if/how communication will be delivered to the customer.\n\nYou can configure the issue to contact the requester via email, Slack, in-app chat, SMS, WhatsApp, or not at all.\n\nIf a destination other than `internal` is specified, a message with the issue's BodyHTML will be delivered to the requester.\n\nIf you don't wish to immediately contact the requester, you can specify the `internal` destination.","properties":{"chat_widget_app_id":{"description":"The ID of the chat widget app to use for in-app chat.","type":"string"},"destination":{"description":"The destination type of the issue. Can be \"email\", \"slack\", \"in_app_chat\", \"sms\", \"whatsapp\", or \"internal\". Defaults to \"internal\".\n\n`slack`: Deliver to the issue's account's Slack channel.\n\n`email`: Deliver messages to the issue requester via email.\n\n`in_app_chat`: Deliver messages to the issue requester via in-app chat.\n\n`internal`: Keep the issue internal and don't contact the requester at all.\n\n`sms`: Deliver messages to the issue requester via SMS.\n\n`whatsapp`: Deliver messages to the issue requester via WhatsApp.","enum":["slack","email","in_app_chat","internal","sms","whatsapp"],"type":"string"},"email":{"description":"The email that emails to the requester will be sent from. You must configure an email app in Pylon with this address.","type":"string"},"email_bccs":{"description":"Emails that will be BCCed on emails to the requester.","items":{"type":"string"},"type":"array"},"email_ccs":{"description":"Emails that will be CCed on emails to the requester.","items":{"type":"string"},"type":"array"},"from_sms_phone_number_id":{"description":"The ID of the Telnyx phone number to send SMS from. Required if destination is \"sms\".","type":"string"},"whatsapp_app_id":{"description":"The ID of the WhatsApp app to send messages from. Required if destination is \"whatsapp\".","type":"string"},"whatsapp_message_template_language":{"description":"The language of the WhatsApp message template to use. Required if destination is \"whatsapp\".","type":"string"},"whatsapp_message_template_name":{"description":"The name of the WhatsApp message template to use. Required if destination is \"whatsapp\".","type":"string"}},"title":"DestinationMetadata","type":"object"},"CreateIssueResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Issue"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues":{"post":{"description":"Creates a new issue with the specified title and body. Requires either an account_id or requester information.\n\n**Rate limit:** 10 requests per minute","operationId":"CreateIssue","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIssueRequest"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateIssueResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Create a new issue","tags":["issues"]}}}}
```

## Get an issue by its ID/number

> Returns a single issue by ID or issue number.\
> \
> \*\*Rate limit:\*\* 60 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"GetIssueResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Issue"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}":{"get":{"description":"Returns a single issue by ID or issue number.\n\n**Rate limit:** 60 requests per minute","operationId":"GetIssue","parameters":[{"description":"The ID or number of the issue to fetch.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIssueResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Get an issue by its ID/number","tags":["issues"]}}}}
```

## Update an existing issue

> Updates an existing issue. Only provided fields are modified.\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"UpdateIssueRequestBody":{"properties":{"account_id":{"description":"The ID of the account that this issue belongs to.","type":"string"},"assignee_id":{"description":"The ID of the user who should be assigned to this issue. If empty string is passed in, the issue assignee will be removed.","type":"string"},"custom_fields":{"description":"An array of custom fields to be used on this issue. Only passed in fields will be modified.","items":{"$ref":"#/components/schemas/CustomFieldValue"},"type":"array"},"customer_portal_visible":{"description":"Whether the issue should be visible in the customer portal.","type":"boolean"},"requester_id":{"description":"The ID of the requester that this issue is on behalf of.","type":"string"},"requestor_id":{"description":"Deprecated: Use requester_id instead.","type":"string"},"state":{"description":"The state this issue should be moved to. Can be one of new, waiting_on_you, waiting_on_customer, on_hold, closed, or a custom status.","type":"string"},"tags":{"description":"An array of strings to use as tags on this issue. If provided, the issue tags will be updated to be exactly the given tags.","items":{"type":"string"},"type":"array"},"team_id":{"description":"The ID of the team this issue should be assigned to. If empty string is passed in, any assigned team will be removed.","type":"string"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue. Set to \"ticket\" to upgrade a conversation to a support ticket. Cannot be downgraded from \"ticket\" to \"conversation\".\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"}},"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"UpdateIssueResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Issue"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}":{"patch":{"description":"Updates an existing issue. Only provided fields are modified.\n\n**Rate limit:** 20 requests per minute","operationId":"UpdateIssue","parameters":[{"description":"The ID of the issue to update.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIssueRequestBody"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateIssueResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Update an existing issue","tags":["issues"]}}}}
```

## Delete an existing issue

> Permanently deletes an issue by ID.\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"DeleteIssueResponseBody":{"properties":{"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}":{"delete":{"description":"Permanently deletes an issue by ID.\n\n**Rate limit:** 20 requests per minute","operationId":"DeleteIssue","parameters":[{"description":"The ID of the issue to delete.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteIssueResponseBody"}}},"description":""}},"summary":"Delete an existing issue","tags":["issues"]}}}}
```

## Search for issues by a given filter

> Currently, the following fields are filterable for issues:\
> \
> \* created\_at (in RFC3339 format). Allowed operators: \`time\_is\_after\`, \`time\_is\_before\`, \`time\_range\`\
> \
> \* account\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`, \`is\_set\`, \`is\_unset\`\
> \
> \* ticket\_form\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`, \`is\_set\`, \`is\_unset\`\
> \
> \* requester\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`, \`is\_set\`, \`is\_unset\`\
> \
> \* follower\_user\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`\
> \
> \* follower\_contact\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`\
> \
> \* state. Valid values are \`\["new", "waiting\_on\_you", "waiting\_on\_customer", "on\_hold", "closed"]\` or a custom status slug. Allowed operators: \`equals\`, \`in\`, \`not\_in\`\
> \
> \* custom fields (pass in the slug of the custom field)\
> \
> \* tags (pass in the tag name). Allowed operators: \`contains\`, \`does\_not\_contain\`, \`in\`, \`not\_in\`\
> \
> \* title. Allowed operators: \`string\_contains\`, \`string\_does\_not\_contain\`\
> \
> \* body\_html. Allowed operators: \`string\_contains\`, \`string\_does\_not\_contain\`\
> \
> \* assignee\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`, \`is\_set\`, \`is\_unset\`\
> \
> \* team\_id. Allowed operators: \`equals\`, \`in\`, \`not\_in\`\
> \
> \* issue\_type. Valid values are \`\["conversation", "ticket"]\`. Allowed operators: \`equals\`, \`in\`, \`not\_in\`, \`is\_set\`, \`is\_unset\`\
> \
> \* resolved\_at. Allowed operators: \`time\_is\_after\`, \`time\_is\_before\`, \`time\_range\`\
> \
> \* latest\_message\_activity\_at. Allowed operators: \`time\_is\_after\`, \`time\_is\_before\`, \`time\_range\`\
> \
> \* updated\_at (in RFC3339 format). Allowed operators: \`time\_is\_after\`, \`time\_is\_before\`, \`time\_range\`\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"SearchIssuesRequest":{"properties":{"cursor":{"description":"The cursor to use for pagination.","type":"string"},"filter":{"$ref":"#/components/schemas/Filter"},"limit":{"description":"The number of issues to fetch. Defaults to 100. Must be greater than 0 and less than 1000.","format":"int64","type":"integer"}},"required":["filter"],"type":"object"},"Filter":{"properties":{"field":{"description":"The field for this filter.  For allowed fields, see the documentation for\n\nthe specific endpoint you are using.\n\nFor non-compound filters (any operators other than \"and\" or \"or\"),\n\nField must be set, along with either Value or Values, depending on the operator.","type":"string"},"operator":{"description":"The operator for this filter.\n\n`equals`: Matches objects that are exactly equal to the value in the field.\n\n`not_equals`: Matches objects that are not exactly equal to the value in the field.\n\n`contains`: For a multi-valued field, such as tags, this operator will match  objects that contain any of the values in the field.\n\n`does_not_contain`: For a multi-valued field, such as tags, this operator will match  objects that do not contain any of the values in the field.\n\n`in`: Matches objects if the field is one of several possible values,  as specified in the values array.\n\n`not_in`: Matches objects if the field is none of several possible values,  as specified in the values array.\n\n`and`: Matches objects only if all subfilters match.\n\n`or`: Matches objects if any subfilter matches.\n\n`time_is_after`: Matches objects if the field is after the given time.\n\n`time_is_before`: Matches objects if the field is before the given time.\n\n`time_range`: Matches objects if the field is between the given times.\n\n`string_contains`: Matches objects if the field contains the given string.\n\n`string_does_not_contain`: Matches objects if the field does not contain the given string.\n\n`is_set`: Matches objects if the field is set.\n\n`is_unset`: Matches objects if the field is unset.\n\n`greater_than`: Matches objects if the numeric field is greater than the given value.\n\n`less_than`: Matches objects if the numeric field is less than the given value.\n\n`greater_than_or_equals`: Matches objects if the numeric field is greater than or equal to the given value.\n\n`less_than_or_equals`: Matches objects if the numeric field is less than or equal to the given value.","enum":["equals","not_equals","contains","does_not_contain","in","not_in","and","or","time_is_after","time_is_before","time_range","string_contains","string_does_not_contain","is_set","is_unset","greater_than","less_than","greater_than_or_equals","less_than_or_equals"],"type":"string"},"subfilters":{"description":"Sub-filters for this filter.  Valid only when operator is \"and\" or \"or\".\n\nThe maximum allowed depth for a tree of filters is 3.","items":{"$ref":"#/components/schemas/Filter"},"type":"array"},"value":{"description":"The value for this filter. Only used for single-valued operators\n\n(\"equals\", \"not_equals\", \"contains\", \"does_not_contain\")","type":"string"},"values":{"description":"The values for this filter. Only used for multi-valued operators (\"in\", \"not_in\").","items":{"type":"string"},"type":"array"}},"required":["field","operator"],"type":"object"},"SearchIssuesResponseBody":{"properties":{"data":{"items":{"$ref":"#/components/schemas/Issue"},"type":"array"},"pagination":{"$ref":"#/components/schemas/Pagination"},"request_id":{"type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"Pagination":{"properties":{"cursor":{"description":"The cursor for the next page of results.","type":"string"},"has_next_page":{"description":"Indicates if there is a next page of results.","type":"boolean"}},"required":["cursor","has_next_page"],"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/search":{"post":{"description":"Currently, the following fields are filterable for issues:\n\n* created_at (in RFC3339 format). Allowed operators: `time_is_after`, `time_is_before`, `time_range`\n\n* account_id. Allowed operators: `equals`, `in`, `not_in`, `is_set`, `is_unset`\n\n* ticket_form_id. Allowed operators: `equals`, `in`, `not_in`, `is_set`, `is_unset`\n\n* requester_id. Allowed operators: `equals`, `in`, `not_in`, `is_set`, `is_unset`\n\n* follower_user_id. Allowed operators: `equals`, `in`, `not_in`\n\n* follower_contact_id. Allowed operators: `equals`, `in`, `not_in`\n\n* state. Valid values are `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"]` or a custom status slug. Allowed operators: `equals`, `in`, `not_in`\n\n* custom fields (pass in the slug of the custom field)\n\n* tags (pass in the tag name). Allowed operators: `contains`, `does_not_contain`, `in`, `not_in`\n\n* title. Allowed operators: `string_contains`, `string_does_not_contain`\n\n* body_html. Allowed operators: `string_contains`, `string_does_not_contain`\n\n* assignee_id. Allowed operators: `equals`, `in`, `not_in`, `is_set`, `is_unset`\n\n* team_id. Allowed operators: `equals`, `in`, `not_in`\n\n* issue_type. Valid values are `[\"conversation\", \"ticket\"]`. Allowed operators: `equals`, `in`, `not_in`, `is_set`, `is_unset`\n\n* resolved_at. Allowed operators: `time_is_after`, `time_is_before`, `time_range`\n\n* latest_message_activity_at. Allowed operators: `time_is_after`, `time_is_before`, `time_range`\n\n* updated_at (in RFC3339 format). Allowed operators: `time_is_after`, `time_is_before`, `time_range`\n\n**Rate limit:** 20 requests per minute","operationId":"SearchIssues","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchIssuesRequest"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SearchIssuesResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Search for issues by a given filter","tags":["issues"]}}}}
```

## Snooze an issue

> Snoozes an issue until the specified date and time.\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"SnoozeIssueRequestBody":{"properties":{"snooze_until":{"description":"The date and time to snooze the issue until. (RFC3339)","type":"string"}},"required":["snooze_until"],"type":"object"},"SnoozeIssueResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Issue"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}/snooze":{"post":{"description":"Snoozes an issue until the specified date and time.\n\n**Rate limit:** 20 requests per minute","operationId":"SnoozeIssue","parameters":[{"description":"The ID or number of the issue to snooze.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnoozeIssueRequestBody"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SnoozeIssueResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Snooze an issue","tags":["issues"]}}}}
```

## Get followers of an issue

> Returns the list of followers for the specified issue.\
> \
> \*\*Rate limit:\*\* 60 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"GetIssueFollowersResponseBody":{"properties":{"data":{"description":"The data payload of the response.","items":{"$ref":"#/components/schemas/Follower"},"type":"array"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Follower":{"properties":{"id":{"description":"The ID of the follower. Either a user or contact ID.","type":"string"},"type":{"description":"The type of follower. Either \"user\" or \"contact\".","enum":["user","contact"],"type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}/followers":{"get":{"description":"Returns the list of followers for the specified issue.\n\n**Rate limit:** 60 requests per minute","operationId":"GetIssueFollowers","parameters":[{"description":"The ID or number of the issue to get followers for.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetIssueFollowersResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Get followers of an issue","tags":["issues"]}}}}
```

## Add or remove followers to/from an issue

> By default, adds followers. To remove followers, set the operation field to "remove".\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"AddIssueFollowersRequestBody":{"properties":{"contact_ids":{"description":"The IDs of contacts to add as followers.","items":{"type":"string"},"type":"array"},"operation":{"description":"Operation to perform. Use \"add\" to add followers (default) or \"remove\" to remove followers.","type":"string"},"user_ids":{"description":"The IDs of users to add as followers.","items":{"type":"string"},"type":"array"}},"type":"object"},"AddIssueFollowersResponseBody":{"properties":{"data":{"description":"The data payload of the response.","items":{"$ref":"#/components/schemas/Follower"},"type":"array"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Follower":{"properties":{"id":{"description":"The ID of the follower. Either a user or contact ID.","type":"string"},"type":{"description":"The type of follower. Either \"user\" or \"contact\".","enum":["user","contact"],"type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}/followers":{"post":{"description":"By default, adds followers. To remove followers, set the operation field to \"remove\".\n\n**Rate limit:** 20 requests per minute","operationId":"AddIssueFollowers","parameters":[{"description":"The ID or number of the issue to add followers to.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddIssueFollowersRequestBody"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AddIssueFollowersResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Add or remove followers to/from an issue","tags":["issues"]}}}}
```

## Link or unlink external issues to/from an issue

> By default, links external issues. To unlink issues, set the operation field to "unlink".\
> \
> \*\*Rate limit:\*\* 20 requests per minute

```json
{"openapi":"3.0.1","info":{"title":"Pylon API.","version":"1.0.0"},"servers":[{"url":"https://api.usepylon.com"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"description":"Authorization: Bearer <token>","scheme":"bearer","type":"http"}},"schemas":{"LinkExternalIssueRequestBody":{"properties":{"external_issue_id":{"description":"The ID of the external issue in the source system.","type":"string"},"operation":{"description":"Operation to perform. Use \"link\" to link issues (default) or \"unlink\" to unlink issues.","type":"string"},"source":{"description":"The source system of the external issue (e.g., \"linear\", \"asana\", \"jira\", \"github\", \"shortcut\").","type":"string"}},"required":["external_issue_id","source"],"type":"object"},"LinkExternalIssueResponseBody":{"properties":{"data":{"$ref":"#/components/schemas/Issue"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"},"Issue":{"properties":{"account":{"$ref":"#/components/schemas/MiniAccount"},"assignee":{"$ref":"#/components/schemas/MiniUser"},"attachment_urls":{"description":"The attachment URLs attached to this issue, if any.","items":{"type":"string"},"type":"array"},"author_unverified":{"description":"Whether any message on the issue has an unverified author identity. True if any message author's identity has NOT been verified (e.g., from public forms).","type":"boolean"},"body_html":{"description":"The body of the issue in HTML format.","type":"string"},"business_hours_first_response_seconds":{"description":"The business hours time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"business_hours_resolution_seconds":{"description":"The business hours time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"business_hours_time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the business hours time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"chat_widget_info":{"$ref":"#/components/schemas/IssueChatWidgetInfo"},"created_at":{"description":"The time the issue was created.","type":"string"},"csat_responses":{"description":"The CSAT responses of the issue, if any.","items":{"$ref":"#/components/schemas/CSATResponse"},"type":"array"},"custom_fields":{"additionalProperties":{"$ref":"#/components/schemas/CustomFieldValue"},"description":"Custom field values associated with the issue.","type":"object"},"customer_portal_visible":{"description":"Whether the issue is visible in the customer portal.","type":"boolean"},"external_issues":{"description":"The external issues associated with the issue, if any.","items":{"$ref":"#/components/schemas/ExternalIssue"},"type":"array"},"first_response_seconds":{"description":"The time in seconds it took for the first response to the issue, if any.","format":"int64","type":"integer"},"first_response_time":{"description":"The time of the first response to the issue, if any.","type":"string"},"id":{"description":"The ID of the issue.","type":"string"},"latest_message_time":{"description":"The time of the latest message in the issue.","type":"string"},"link":{"description":"The link to the issue in Pylon.","type":"string"},"number":{"description":"The number of the issue.","format":"int64","type":"integer"},"number_of_touches":{"description":"The number of times the issue has been touched.","format":"int64","type":"integer"},"requester":{"$ref":"#/components/schemas/MiniContact"},"resolution_breach_time":{"description":"The time by which the issue's resolution SLA will breach, if any. Only present for open issues with an active resolution SLA.","type":"string"},"resolution_seconds":{"description":"The time in seconds it took for the issue to be resolved, if any.","format":"int64","type":"integer"},"resolution_time":{"description":"The time of the resolution of the issue, if any.","type":"string"},"slack":{"$ref":"#/components/schemas/SlackInfo"},"snoozed_until_time":{"description":"The time the issue was snoozed until in RFC3339 format, if any.","type":"string"},"source":{"description":"The source of the issue.","enum":["slack","microsoft_teams","microsoft_teams_chat","chat_widget","email","manual","form","discord","whatsapp","sms","telegram","phone"],"type":"string"},"state":{"description":"The state of the issue. This could be one of `[\"new\", \"waiting_on_you\", \"waiting_on_customer\", \"on_hold\", \"closed\"] or a custom status slug.","type":"string"},"tags":{"description":"Tags associated with the issue.","items":{"type":"string"},"type":"array"},"team":{"$ref":"#/components/schemas/MiniTeam"},"time_in_status_seconds":{"additionalProperties":{"format":"int64","type":"integer"},"description":"A map of status slug to the time in seconds the issue has spent in that status. Includes both base statuses (e.g. \"new\", \"waiting_on_you\") and custom statuses.","type":"object"},"title":{"description":"The title of the issue.","type":"string"},"type":{"description":"The type of the issue.\n\n`conversation`: A conversation.\n\n`ticket`: A support ticket.","enum":["conversation","ticket"],"type":"string"},"updated_at":{"description":"The time the issue was last updated.","type":"string"}},"type":"object"},"MiniAccount":{"properties":{"external_ids":{"description":"External IDs associated with the account.","items":{"$ref":"#/components/schemas/ExternalID"},"type":"array"},"id":{"description":"The ID of the account.","type":"string"}},"type":"object"},"ExternalID":{"properties":{"external_id":{"description":"The external ID. Must be unique per object type (ex. account).","type":"string"},"label":{"description":"The label of the external ID. Must be unique per object.","type":"string"}},"type":"object"},"MiniUser":{"properties":{"email":{"description":"The email of the user.","type":"string"},"id":{"description":"The ID of the user.","type":"string"}},"type":"object"},"IssueChatWidgetInfo":{"properties":{"page_url":{"description":"The URL of the page that the user was on when they started the chat widget issue.","type":"string"}},"type":"object"},"CSATResponse":{"properties":{"comment":{"description":"The comment of the CSAT response.","type":"string"},"score":{"description":"The score of the CSAT response.","format":"int64","type":"integer"}},"type":"object"},"CustomFieldValue":{"properties":{"slug":{"description":"The slug of the custom field.","type":"string"},"value":{"description":"The value of the custom field. Only to be used for single-valued custom fields. If unset, the custom field will be unset. If the custom field is a select field, the value must be the select option slug, which you can find from the GET /custom-fields endpoint.","type":"string"},"values":{"description":"The values of the custom field. Only to be used for multi-valued custom fields (ex. multiselect). If unset, the custom field will be unset. If the custom field is a multiselect field, the values must be the select option slugs which you can find from the GET /custom-fields endpoint.","items":{"type":"string"},"type":"array"}},"type":"object"},"ExternalIssue":{"properties":{"external_id":{"description":"The external ID of the external issue.\n\nJira: ID of the issue (autoincrementing number from 10000).\n\nGitHub: Owner/Repo/IssueID.\n\nLinear: ID of the issue (UUID).\n\nAsana: ID of the task (Long number).","type":"string"},"link":{"description":"Link to the product issue.","type":"string"},"source":{"description":"The source of the external issue.","type":"string"}},"type":"object"},"MiniContact":{"properties":{"email":{"description":"The email of the contact.","type":"string"},"id":{"description":"The ID of the contact.","type":"string"}},"type":"object"},"SlackInfo":{"properties":{"channel_id":{"description":"The Slack channel ID associated with the issue.","type":"string"},"message_ts":{"description":"The root message ID of slack message that started issue.","type":"string"},"workspace_id":{"description":"The Slack workspace ID associated with the issue.","type":"string"}},"type":"object"},"MiniTeam":{"properties":{"id":{"description":"The ID of the team.","type":"string"}},"type":"object"},"ErrorApiResponseBody":{"properties":{"errors":{"description":"The list of errors.","items":{"type":"string"},"type":"array"},"exists_id":{"description":"The ID of the object that already exists if this is a duplicate object error.","type":"string"},"request_id":{"description":"The request ID for tracking.","type":"string"}},"type":"object"}}},"paths":{"/issues/{id}/external-issues":{"post":{"description":"By default, links external issues. To unlink issues, set the operation field to \"unlink\".\n\n**Rate limit:** 20 requests per minute","operationId":"LinkExternalIssue","parameters":[{"description":"The ID or number of the issue to link external issues to.","in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkExternalIssueRequestBody"}}},"required":false},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LinkExternalIssueResponseBody"}}},"description":""},"400":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"404":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""},"500":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorApiResponseBody"}}},"description":""}},"summary":"Link or unlink external issues to/from an issue","tags":["issues"]}}}}
```

{% hint style="info" %}
Note: utilizing external issues endpoint will update the ticket status to whatever is set in the apps directory page. Please see screenshot below.
{% endhint %}

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2Fjfq9rTAhQZmWSsRUSPW8%2FCleanShot%202025-10-06%20at%2011.39.18%402x.png?alt=media&#x26;token=9c183835-af53-4eb9-9625-dfbfa171d405" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
Note: utilizing external issues endpoint will update the ticket status to whatever is set in the apps directory page. Please see screenshot below.
{% endhint %}

<figure><img src="https://982123570-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9hXBoCTTNw5flARlUVJf%2Fuploads%2Fjfq9rTAhQZmWSsRUSPW8%2FCleanShot%202025-10-06%20at%2011.39.18%402x.png?alt=media&#x26;token=9c183835-af53-4eb9-9625-dfbfa171d405" alt=""><figcaption></figcaption></figure>
