MINE Tickets API
The Tickets API from MINE — 16 operation(s) for tickets.
The Tickets API from MINE — 16 operation(s) for tickets.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/mine-tickets-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: MineOS Aispm Tickets API
version: v1.0
servers:
- url: https://api.portal.saymine.com/
description: MineOS EU API Endpoint
- url: https://api.us.portal.saymine.com/
description: MineOS US API Endpoint
security:
- Bearer: []
tags:
- name: Tickets
paths:
/api/ticket/List:
get:
tags:
- Tickets
summary: List all requests
description: 'Returns a paginated list of tickets. Use the cursor tokens in the response to fetch the next or previous page.
All query filters are optional. Closed requests created more than 3 months ago are not included in the response.'
parameters:
- name: State
in: query
description: 'Filter by list of ticket states. The default is all. Possible values are: [Open, Closed, Redacted, Processing, Notify, Delete, Redacting, Edit, Unverified]'
schema:
type: string
example: Processing,Notify
example: Processing,Notify
- name: PrivacyRightIds
in: query
description: Filter by list of right ids. The default is all.
schema:
type: string
example: delete
example: delete
- name: BrandIds
in: query
description: Filter by list of brand ids. The default is all.
schema:
type: string
- name: MinCreatedAt
in: query
description: 'Filter by created at dates - return only requests that were created after the provided date at 00:00, in the format: yyyy-MM-dd.'
schema:
type: string
example: '2023-05-20'
example: '2023-05-20'
- name: MaxCreatedAt
in: query
description: 'Filter by created at dates - return only requests that were created before the provided date at 00:00, iin the format: yyyy-MM-dd'
schema:
type: string
example: '2023-05-20'
example: '2023-05-20'
- name: MinClosedAt
in: query
description: 'Filter by closed at dates - return only requests that were closed after the provided date at 00:00, in the format: yyyy-MM-dd.
Relevant for tickets that were closed after 13/03/2024.'
schema:
type: string
example: '2024-04-20'
example: '2024-04-20'
- name: MaxClosedAt
in: query
description: 'Filter by closed at dates - return only requests that were closed before the provided date at 00:00, iin the format: yyyy-MM-dd.
Relevant for tickets that were closed after 13/03/2024.'
schema:
type: string
example: '2024-04-20'
example: '2024-04-20'
- name: After
in: query
schema:
type: string
- name: Before
in: query
schema:
type: string
- name: Size
in: query
schema:
type: integer
format: int32
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RequestsListResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'404':
description: Not Found
content:
application/json:
schema:
type: string
/api/ticket/{ticketId}:
get:
tags:
- Tickets
summary: Get ticket
parameters:
- name: ticketId
in: path
description: TicketID of the request to get info for
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TicketInfo'
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'404':
description: Not Found
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
/api/ticket/{ticketId}/log:
get:
tags:
- Tickets
summary: Get ticket logs
parameters:
- name: ticketId
in: path
description: TicketID of the request to get info for
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TicketLogs'
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'404':
description: Not Found
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
/api/ticket/{ticketId}/dueDate:
post:
tags:
- Tickets
summary: Update the due date of a request
parameters:
- name: ticketId
in: path
description: TicketID of the request to upadte due date for
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/DueDateUpdateRequest'
application/json:
schema:
$ref: '#/components/schemas/DueDateUpdateRequest'
text/json:
schema:
$ref: '#/components/schemas/DueDateUpdateRequest'
application/*+json:
schema:
$ref: '#/components/schemas/DueDateUpdateRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'404':
description: Not Found
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
/api/ticket/Create/v2:
post:
tags:
- Tickets
summary: Create request [v2]
description: 'Duplication handling - if there was already an attempt to create a ticket with the same email with the same request type in the last minute,
we return 202 with the existing ticket id and avoid creating another one'
parameters:
- name: test
in: query
description: When test is True a request will not actually be created
schema:
type: boolean
example: false
requestBody:
description: the details of the request
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
application/json:
schema:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
text/json:
schema:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
application/*+json:
schema:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/RequestCreateResponse'
'202':
description: Accepted
content:
application/json:
schema:
$ref: '#/components/schemas/RequestCreateResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
/api/ticket/CreateMany:
post:
tags:
- Tickets
summary: Create many requests
description: 'Duplication handling - if there was already an attempt to create a request with the same email and the same request type in the last minute,
we return the existing request id and avoid creating another one.
Failure in creating a request will be indicated in the response,
if any request creation fails, the system continuous with the rest of the requests'
parameters:
- name: test
in: query
description: When test is True no requests will actually be created
schema:
type: boolean
example: false
requestBody:
content:
application/json-patch+json:
schema:
type: array
items:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
text/json:
schema:
type: array
items:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
application/*+json:
schema:
type: array
items:
$ref: '#/components/schemas/RequestCreateWithPrivacyRightRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/SingleRequestCreateResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
/api/ticket/GetMetadata:
get:
tags:
- Tickets
summary: Get metadata
description: Used to read metadata or custom identifiers from the request.
parameters:
- name: ticketId
in: query
description: TicketID of the request to update status for
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TicketGetMetadataResponse'
'400':
description: Bad Request
'401':
description: Unauthorized
/api/ticket/UpdateMetadata:
post:
tags:
- Tickets
summary: Update metadata
description: Used to store metadata or custom identifiers on the request.
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/TicketUpdateMetadataRequest'
application/json:
schema:
$ref: '#/components/schemas/TicketUpdateMetadataRequest'
text/json:
schema:
$ref: '#/components/schemas/TicketUpdateMetadataRequest'
application/*+json:
schema:
$ref: '#/components/schemas/TicketUpdateMetadataRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
/api/ticket/{ticketId}/require-attention:
post:
tags:
- Tickets
summary: Mark/unmark a ticket with the Require Attention label
description: 'Will pause any automatic ticket runs until marked as reviewed.
Will not pause any data mutation process once the processing automation step has started'
parameters:
- name: ticketId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
application/json:
schema:
$ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
text/json:
schema:
$ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
application/*+json:
schema:
$ref: '#/components/schemas/TicketMarkAsRequireAttentionRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
/api/ticket/{ticketId}/group-assignment:
post:
tags:
- Tickets
summary: Assign a group to a request
parameters:
- name: ticketId
in: path
required: true
schema:
type: string
requestBody:
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/GroupAssignmentRequest'
application/json:
schema:
$ref: '#/components/schemas/GroupAssignmentRequest'
text/json:
schema:
$ref: '#/components/schemas/GroupAssignmentRequest'
application/*+json:
schema:
$ref: '#/components/schemas/GroupAssignmentRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
/api/ticket/AddNote:
post:
tags:
- Tickets
summary: Add a note
parameters:
- name: ticketId
in: query
description: The Request ID to add note for
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
- name: userId
in: query
description: Optional. The User ID to add note on behalf of
schema:
type: string
example: '1135124226903180384'
requestBody:
description: The contents of the note
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/NoteTextRequest'
application/json:
schema:
$ref: '#/components/schemas/NoteTextRequest'
text/json:
schema:
$ref: '#/components/schemas/NoteTextRequest'
application/*+json:
schema:
$ref: '#/components/schemas/NoteTextRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
/api/ticket/Redact/{ticketId}:
post:
tags:
- Tickets
summary: Redact request
parameters:
- name: ticketId
in: path
description: Ticket ID
required: true
schema:
type: string
example: eb640185-9e3d-48f5-bf74-d7a3120814e8
- name: test
in: query
description: When set to true, request will not actually be redacted
schema:
type: boolean
example: false
responses:
'200':
description: Success
/api/ticket/CloseV2:
post:
tags:
- Tickets
summary: Close request
requestBody:
description: ''
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/CloseTicketRequest'
application/json:
schema:
$ref: '#/components/schemas/CloseTicketRequest'
text/json:
schema:
$ref: '#/components/schemas/CloseTicketRequest'
application/*+json:
schema:
$ref: '#/components/schemas/CloseTicketRequest'
responses:
'200':
description: Success
/api/ticket/EngageAutopilot/{ticketId}:
post:
tags:
- Tickets
summary: Start Autopilot
parameters:
- name: ticketId
in: path
description: TicketID of the request to start autopilot for
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TicketAssignAutoPilotResponse'
/api/ticket/{ticketId}/custom-integrations/{integrationId}:
post:
tags:
- Tickets
summary: Update custom integration status [v2]
parameters:
- name: ticketId
in: path
description: TicketID of the associated request
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
- name: integrationId
in: path
description: IntegrationID of the associated request
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
requestBody:
description: ''
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
application/json:
schema:
$ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
text/json:
schema:
$ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
application/*+json:
schema:
$ref: '#/components/schemas/CustomIntegrationActionStatusRequest'
responses:
'200':
description: Success
'400':
description: Bad Request
'401':
description: Unauthorized
/api/ticket/{ticketId}/workflow:
get:
tags:
- Tickets
summary: Get the workflow assigned to a ticket
description: Returns the workflow id, display name, and the list of integrations attached to the ticket's workflow.
parameters:
- name: ticketId
in: path
description: TicketID of the request
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TicketWorkflowResponse'
'404':
description: Not Found
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
post:
tags:
- Tickets
summary: Change the workflow assigned to a ticket
description: 'Allowed only when the ticket has not yet started processing. If the requested workflow is the same as the
one already assigned, the request is a no-op and returns 200 without any side effect.'
parameters:
- name: ticketId
in: path
description: TicketID of the request
required: true
schema:
type: string
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
requestBody:
description: Workflow id to assign
content:
application/json-patch+json:
schema:
$ref: '#/components/schemas/ChangeWorkflowRequest'
application/json:
schema:
$ref: '#/components/schemas/ChangeWorkflowRequest'
text/json:
schema:
$ref: '#/components/schemas/ChangeWorkflowRequest'
application/*+json:
schema:
$ref: '#/components/schemas/ChangeWorkflowRequest'
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/TicketWorkflowResponse'
'400':
description: Bad Request
content:
application/json:
schema:
type: string
'404':
description: Not Found
content:
application/json:
schema:
type: string
'409':
description: Conflict
content:
application/json:
schema:
type: string
'401':
description: Unauthorized
components:
schemas:
PortalMessageResponse:
type: object
properties:
items:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/MessageItem'
additionalProperties: false
StateHistoryLog:
type: object
properties:
items:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/StateLogItem'
additionalProperties: false
TicketStateEnum:
enum:
- Unknown
- Open
- Closed
- Redacted
- Processing
- Notify
- Redacting
- Unverified
- NotReady
- Edit
- Pending
type: string
CustomQuestion:
type: object
properties:
question:
type:
- string
- 'null'
multiSelect:
type: boolean
answers:
type:
- array
- 'null'
items:
type: string
additionalProperties: false
TicketUpdateMetadataRequest:
required:
- customFields
- ticketId
type: object
properties:
ticketId:
minLength: 1
type: string
description: TicketID of the request to update status for
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
customFields:
type: object
additionalProperties:
type:
- string
- 'null'
description: 'A collection of metadata fields to add to the request. Use the following special names to set custom identifiers: $phoneNumber, $internalId'
test:
type: boolean
description: Used for testing; When Test is true, the change will not actually apply
additionalProperties: false
PortalNotesResponse:
type: object
properties:
items:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/NoteResponse'
additionalProperties: false
CustomIntegrationActionStatusRequest:
required:
- action
- status
type: object
properties:
test:
type: boolean
description: Used for testing; When Test is true, the status update will not actually apply
status:
$ref: '#/components/schemas/TicketCustomIntegrationStatus'
message:
type:
- string
- 'null'
description: Message that explains what changed, such as why the status changed
action:
$ref: '#/components/schemas/TicketCustomIntegrationAction'
data:
type:
- object
- 'null'
additionalProperties: {}
description: Data that was collected by this integration in JSON format. For use with 'Copy' action only
files:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Reference'
description: Data that was collected by this integration in files format. For use with 'Copy' action only
additionalProperties: false
DataSubjectType:
type: object
additionalProperties: false
ChangeWorkflowRequest:
required:
- workflowId
type: object
properties:
workflowId:
minLength: 1
type: string
description: Workflow id to assign to the ticket. Must belong to the same privacy right as the ticket.
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
additionalProperties: false
FileAttachment:
type: object
properties:
label:
type:
- string
- 'null'
name:
type:
- string
- 'null'
path:
type:
- string
- 'null'
expiryDate:
type:
- string
- 'null'
format: date-time
additionalProperties: false
RequestCreateWithPrivacyRightRequest:
required:
- countryCode
- email
- requestTypeId
type: object
properties:
firstName:
type:
- string
- 'null'
description: First name of the requesting user
example: John
lastName:
type:
- string
- 'null'
description: Last name of the requesting user
example: Doe
email:
minLength: 1
type: string
description: Email address of the requesting user
example: johndoe@example.com
countryCode:
minLength: 1
type: string
description: ISO-3166 country code of the requesting user
example: US
state:
type:
- string
- 'null'
description: ISO-3166 state code of the requesting user
example: AL
locale:
type:
- string
- 'null'
description: Locale of the requesting user. Must be in the format of 5 characters
example: en-US
customFields:
type:
- object
- 'null'
additionalProperties:
type:
- string
- 'null'
description: 'Custom fields collection to add to the request. Use the following special names to set identifiers for use with automations: $phonenumber, $internalId'
requestTypeId:
minLength: 1
type: string
description: Request type Id
example: delete
brandId:
type:
- string
- 'null'
description: Brand Id associated with the ticket
isAuthorizedAgent:
type: boolean
description: Flag that indicates whether the request requires an authorized agent flow. Defaults to false.
example: false
authorizedAgentEmail:
type:
- string
- 'null'
description: 'The email address of the authorized agent.
If this field is provided, the IsAuthorizedAgent flag must be set to true.
All user communication will be with the authorized agent.'
example: johndoe-parent@example.com
isUnverified:
type: boolean
description: When set to true, the request will open as unverified. The default value is false.
example: false
workflowId:
type:
- string
- 'null'
description: Workflow id to assign to the ticket. Must belong to the same privacy right as the ticket.
example: 3664feb0-b48c-4a8a-a81d-1303a4efc64f
additionalProperties: false
TicketCustomIntegrationAction:
enum:
- Unknown
- Delete
- Copy
type: string
RequestsListResponse:
type: object
properties:
requestIds:
type:
- array
- 'null'
items:
type: string
tickets:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/TicketListItem'
tokens:
$ref: '#/components/schemas/CursorTokens'
additionalProperties: false
IntegrationLogItem:
type: object
properties:
success:
type: boolean
id:
type:
- string
- 'null'
customMessage:
type:
- string
- 'null'
state:
$ref: '#/components/schemas/IntegrationState'
createdAt:
type: string
format: date-time
agentName:
type:
- string
- 'null'
agentEmail:
type:
- string
- 'null'
requestType:
$ref: '#/components/schemas/RequestType'
isManual:
type: boolean
retryCount:
type:
- integer
- 'null'
format: int32
additionalProperties: false
TicketWorkflowIntegration:
type: object
properties:
taskId:
type:
- string
- 'null'
description: Task id (integration id) of the workflow task.
systemId:
type:
- string
- 'null'
description: System id (system catalog id) of the integration.
displayName:
type:
- string
- 'null'
description: Display name of the integration.
additionalProperties: false
WorkflowChangeHistoryLog:
type: object
properties:
items:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/WorkflowChangeLogItemResponse'
additionalProperties: false
ActionStatus:
enum:
- NotStarted
- MissingIdentifiers
- InProgress
- Completed
- Failed
- Expired
- PartialCompleted
type: string
RequestCreateResponse:
type: object
properties:
ticketId:
type:
- string
- 'null'
description: ID of request that was created
additionalProperties: false
TicketInfo:
type: object
properties:
name:
type:
- string
- 'null'
description: Full name of the requesting user
example: John Doe
firstName:
type:
- string
- 'null'
description: First name of the requesting user. Will be null if unavailable.
example: John
lastName:
type:
- string
- 'null'
description: Last name of the requesting user. Will be null if unavailable.
example: Doe
userEmail:
type:
- string
- 'null'
description: Email address of the requesting user
example: johnd@example.com
countryCode:
type:
- string
- 'null'
description: 'Country of residence of the requesting user. Format: ISO3166 Country Code (see https://en.wikipedia.org/wiki/List_of_ISO_3166_country_codes)'
example: US
domain:
type:
- string
- 'null'
description: Domain of the company/website to which the requesting user is creating the request.
example: acme.com
groupIdAssignment:
type:
- string
- 'null'
description: Assigned group id if exists.
example: '123456789'
privacyRightId:
type:
- string
- 'null'
description: Privacy Right id. If the right is undetermined will be null.
example: Delete
brandId:
type:
- string
- 'null'
description: Brand Id associated with the ticket
requestStatus:
$ref: '#/components/schemas/ExternalTicketState'
closeReason:
type:
- string
- 'null'
description: If closed, the reason for closing the request
example: Completed
ticketSource:
$ref: '#/components/schemas/TicketSource'
createdAt:
type:
- string
- 'null'
description: UTC Creation time of the request
format: date-time
dueDate:
type:
- string
- 'null'
description: UTC Due date of the request
format: date-time
ticketId:
type:
- string
- 'null'
description: Ticket ID of the request
example: eb640185-9e3d-48f5-bf74-d7a3120814e8
requestId:
type:
- string
- 'null'
description: Request ID
example: Z27OCDDO
formCustomData:
$ref: '#/components/schemas/FormCustomData'
customFields:
type:
- object
- 'null'
additionalProperties:
type:
- string
- 'null'
description: Custom fields that are set from the update metadata
# --- truncated at 32 KB (47 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mine/refs/heads/main/openapi/mine-tickets-api-openapi.yml