Moveworks messages API
The messages API from Moveworks — 3 operation(s) for messages.
The messages API from Moveworks — 3 operation(s) for messages.
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/moveworks-messages-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
openapi: 3.2.0
info:
title: Moveworks Messages API
version: 1.0.0
description: 'Operations tagged messages across 2 of this provider''s published API definitions: moveworks-beta-conversations-api-openapi.yaml, moveworks-conversations-api-openapi.yaml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.moveworks.ai/rest/v1beta1
description: US production server
- url: https://api.jp.moveworks.com/rest/v1beta1
description: Japan production server
- url: https://api.uk.moveworks.com/rest/v1beta1
description: UK production server
- url: https://api.prod4.us.moveworks.com/rest/v1beta1
description: US Prod 4 production server
- url: https://api.prod3.us.moveworks.com/rest/v1beta1
description: US Prod 3 production server
- url: https://api.moveworks.ai/assistant/v1
description: US production server
tags:
- name: messages
paths:
/conversations/{conversation_id}/messages:
get:
operationId: list-conversation-messages
summary: List conversation messages
description: Retrieves all messages (both user and assistant) in a conversation in descending order by creation time (most recent first).
tags:
- messages
parameters:
- name: conversation_id
in: path
description: A base-62 identifier prefixed by a short resource type
required: true
schema:
type: string
- name: cursor
in: query
description: Opaque cursor for pagination
required: false
schema:
type: string
- name: limit
in: query
description: Maximum number of messages to return (1-100)
required: false
schema:
type: integer
default: 20
- name: Authorization
in: header
description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
required: true
schema:
type: string
- name: Assistant-Name
in: header
description: The Moveworks assistant identifier that was configured for your organization.
required: true
schema:
type: string
responses:
'200':
description: List of messages
content:
application/json:
schema:
$ref: '#/components/schemas/ListConversationMessagesResponse'
'400':
description: Bad request - Invalid input parameters
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidCursorErrorResponse'
'401':
description: Unauthorized - Invalid or missing authentication
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'403':
description: Forbidden - Invalid assistant
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorResponse'
'404':
description: Not found - Resource does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitExceededErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
servers:
- url: https://api.moveworks.ai/rest/v1beta1
description: US production server
- url: https://api.jp.moveworks.com/rest/v1beta1
description: Japan production server
- url: https://api.uk.moveworks.com/rest/v1beta1
description: UK production server
- url: https://api.prod4.us.moveworks.com/rest/v1beta1
description: US Prod 4 production server
- url: https://api.prod3.us.moveworks.com/rest/v1beta1
description: US Prod 3 production server
/conversations/{conversation_id}/responses/{response_id}/messages:
get:
operationId: list-response-messages
summary: List response messages
description: Retrieves all messages associated with a specific response (both the user's input message and all assistant reply messages).
tags:
- messages
parameters:
- name: conversation_id
in: path
description: A base-62 identifier prefixed by a short resource type
required: true
schema:
type: string
- name: response_id
in: path
description: A base-62 identifier prefixed by a short resource type
required: true
schema:
type: string
- name: Authorization
in: header
description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
required: true
schema:
type: string
- name: Assistant-Name
in: header
description: The Moveworks assistant identifier that was configured for your organization.
required: true
schema:
type: string
responses:
'200':
description: List of messages for this response
content:
application/json:
schema:
$ref: '#/components/schemas/ListResponseMessagesResponse'
'401':
description: Unauthorized - Invalid or missing authentication
content:
application/json:
schema:
$ref: '#/components/schemas/UnauthorizedErrorResponse'
'403':
description: Forbidden - Invalid assistant
content:
application/json:
schema:
$ref: '#/components/schemas/ForbiddenErrorResponse'
'404':
description: Not found - Resource does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitExceededErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
servers:
- url: https://api.moveworks.ai/rest/v1beta1
description: US production server
- url: https://api.jp.moveworks.com/rest/v1beta1
description: Japan production server
- url: https://api.uk.moveworks.com/rest/v1beta1
description: UK production server
- url: https://api.prod4.us.moveworks.com/rest/v1beta1
description: US Prod 4 production server
- url: https://api.prod3.us.moveworks.com/rest/v1beta1
description: US Prod 3 production server
/conversations/{conversation_id}/responses/{response_id}/messages/{message_id}/feedback:
post:
operationId: submit-feedback
summary: Submit feedback
description: 'Submits a feedback rating (helpful or unhelpful) for a specific assistant message.
Use the `callback_id` from the message''s `feedback` field to indicate which rating is being submitted. The `callback_id` is an opaque token. Pass it back exactly as received.
Optionally include `additional_feedback` for free-text comments.'
tags:
- messages
parameters:
- name: conversation_id
in: path
description: A base-62 identifier prefixed by a short resource type
required: true
schema:
type: string
- name: response_id
in: path
description: A base-62 identifier prefixed by a short resource type
required: true
schema:
type: string
- name: message_id
in: path
description: A base-62 identifier prefixed by a short resource type
required: true
schema:
type: string
- name: Authorization
in: header
description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
required: true
schema:
type: string
- name: Assistant-Name
in: header
description: The Moveworks assistant identifier that was configured for your organization.
required: true
schema:
type: string
responses:
'200':
description: Feedback submitted successfully
content:
application/json:
schema:
$ref: '#/components/schemas/SubmitFeedbackResponse'
'400':
description: Invalid request - the callback_id is malformed, does not match this message, or this message does not support feedback
content:
application/json:
schema:
$ref: '#/components/schemas/InvalidFeedbackErrorResponse'
'404':
description: Not found - conversation, response, or message does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/NotFoundErrorResponse'
'429':
description: Rate limit exceeded
content:
application/json:
schema:
$ref: '#/components/schemas/RateLimitExceededErrorResponse'
'500':
description: Internal server error
content:
application/json:
schema:
$ref: '#/components/schemas/InternalErrorResponse'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/SubmitFeedbackRequest'
servers:
- url: https://api.moveworks.ai/rest/v1beta1
description: US production server
- url: https://api.jp.moveworks.com/rest/v1beta1
description: Japan production server
- url: https://api.uk.moveworks.com/rest/v1beta1
description: UK production server
- url: https://api.prod4.us.moveworks.com/rest/v1beta1
description: US Prod 4 production server
- url: https://api.prod3.us.moveworks.com/rest/v1beta1
description: US Prod 3 production server
components:
schemas:
CitationLocation:
type: object
properties:
offset:
type: integer
description: Zero-based character position in the assistant message where the citation should be inserted
description: '**Deprecated:** Use `Message.content_references` for positional data instead. This field will no longer be populated starting May 12, 2026 for both new and existing messages.'
title: CitationLocation
MarkdownTextContent:
type: object
properties:
text:
type: string
description: Raw markdown text content. Used when Minerva's chat response `is_commonmark` is not set.
required:
- text
title: MarkdownTextContent
ForbiddenErrorResponseErrorCode:
type: string
enum:
- FORBIDDEN
title: ForbiddenErrorResponseErrorCode
Display:
type: object
properties:
title:
$ref: '#/components/schemas/Content'
description: Primary heading/identifier with type discriminator
body:
$ref: '#/components/schemas/Content'
description: Body/description content with type discriminator
attributes:
type: array
items:
$ref: '#/components/schemas/Attribute'
description: Opaque key-value metadata for citation display. These attributes contain implementation-specific rendering hints and should be treated as a black-box by clients. The structure and values may vary between citations and should not be relied upon for business logic.
title: Display
InvalidFeedbackErrorResponseErrorCode:
type: string
enum:
- INVALID_REQUEST
title: InvalidFeedbackErrorResponseErrorCode
ActorType:
type: string
enum:
- USER
- ASSISTANT
description: Message actor type
title: ActorType
FeedbackOption:
type: object
properties:
callback_id:
type: string
description: Opaque callback identifier. Pass this value to the feedback endpoint to submit this rating.
required:
- callback_id
title: FeedbackOption
Citation:
type: object
properties:
citation_id:
type: string
description: 'Unique citation identifier (format: `cite_<base62>`). Use this to join with `content_references` on the Message object.'
location:
$ref: '#/components/schemas/CitationLocation'
description: '**Deprecated:** Use `Message.content_references` for positional data instead. This field will no longer be populated starting May 12, 2026 for both new and existing messages.'
url:
type: string
format: uri
description: URL to the entity
display:
$ref: '#/components/schemas/Display'
title: Citation
PlainTextContentItemType:
type: string
enum:
- PLAIN_TEXT
description: Content type discriminator
title: PlainTextContentItemType
UnauthorizedErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/UnauthorizedErrorResponseError'
required:
- error
description: Error response for unauthorized access
title: UnauthorizedErrorResponse
UnauthorizedErrorResponseErrorCode:
type: string
enum:
- UNAUTHORIZED
title: UnauthorizedErrorResponseErrorCode
Message:
type: object
properties:
message_id:
type: string
description: A base-62 identifier prefixed by a short resource type
conversation_id:
type: string
description: A base-62 identifier prefixed by a short resource type
response_id:
type: string
description: A base-62 identifier prefixed by a short resource type
actor:
$ref: '#/components/schemas/ActorType'
content:
$ref: '#/components/schemas/Content'
citations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Citation'
description: Unique citation references in the assistant message. Use `content_references` to determine where in the message text each citation is referenced.
content_references:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CitationContentReference'
description: Ordered positions in the message text where citations appear (ascending by offset). Each entry references a `Citation` via `citation_id`. Only populated on assistant messages.
created_at:
type: string
format: date-time
description: Creation timestamp (ISO 8601)
feedback:
oneOf:
- $ref: '#/components/schemas/MessageFeedback'
- type: 'null'
description: Feedback options for this message. Present only on final assistant messages that support feedback. Use the callback IDs to submit a rating via the feedback endpoint.
required:
- message_id
- conversation_id
- response_id
- actor
- content
- created_at
title: Message
ListResponseMessagesResponse:
type: object
properties:
messages:
type: array
items:
$ref: '#/components/schemas/Message'
description: Array of messages for this response
required:
- messages
title: ListResponseMessagesResponse
CitationContentReference:
type: object
properties:
citation_id:
type: string
description: References `Citation.citation_id` to link this position to a citation entity.
offset:
type: integer
description: Zero-based character position in the assistant message where the citation appears.
required:
- citation_id
- offset
title: CitationContentReference
CommonmarkTextContentItemType:
type: string
enum:
- COMMONMARK_TEXT
description: Content type discriminator
title: CommonmarkTextContentItemType
InvalidCursorErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/InvalidCursorErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: InvalidCursorErrorResponseError
ForbiddenErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/ForbiddenErrorResponseError'
required:
- error
description: Error response for forbidden access
title: ForbiddenErrorResponse
MessageFeedback:
type: object
properties:
helpful:
$ref: '#/components/schemas/FeedbackOption'
description: Positive feedback option. Use this callback_id to rate the response as helpful.
unhelpful:
$ref: '#/components/schemas/FeedbackOption'
description: Negative feedback option. Use this callback_id to rate the response as unhelpful.
description: Feedback options available on an assistant message. When present, this message supports feedback and the callback IDs can be used to submit a rating.
title: MessageFeedback
InvalidFeedbackErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/InvalidFeedbackErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: InvalidFeedbackErrorResponseError
InternalErrorResponseErrorCode:
type: string
enum:
- INTERNAL_ERROR
title: InternalErrorResponseErrorCode
InternalErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/InternalErrorResponseError'
required:
- error
description: Error response for internal server error
title: InternalErrorResponse
SubmitFeedbackResponse:
type: object
properties:
status:
$ref: '#/components/schemas/SubmitFeedbackResponseStatus'
description: Feedback submission status
required:
- status
title: SubmitFeedbackResponse
Metadata:
type: object
properties:
next_cursor:
type:
- string
- 'null'
description: Opaque cursor for next page (null if no more results)
title: Metadata
SubmitFeedbackRequest:
type: object
properties:
callback_id:
type: string
description: The callback_id from either `feedback.helpful` or `feedback.unhelpful` on the message object. Determines which rating (helpful or unhelpful) is being submitted.
additional_feedback:
type: string
description: Optional free-text feedback from the user. Use this to capture additional context about why the user rated the response this way.
required:
- callback_id
title: SubmitFeedbackRequest
UnauthorizedErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/UnauthorizedErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: UnauthorizedErrorResponseError
NotFoundErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/NotFoundErrorResponseError'
required:
- error
description: Error response for resource not found
title: NotFoundErrorResponse
ListConversationMessagesResponse:
type: object
properties:
messages:
type: array
items:
$ref: '#/components/schemas/Message'
description: Array of messages
metadata:
$ref: '#/components/schemas/Metadata'
description: Metadata (pagination)
required:
- messages
title: ListConversationMessagesResponse
InternalErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/InternalErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: InternalErrorResponseError
Attribute:
type: object
properties:
key:
type: string
description: Attribute name
value:
type: string
description: Attribute value
required:
- key
- value
description: Key-value pair for citation display metadata. This is an opaque structure that contains rendering hints specific to each citation. Clients should not make assumptions about the keys or values present, as they may vary based on citation type and context.
title: Attribute
ForbiddenErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/ForbiddenErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: ForbiddenErrorResponseError
Content:
oneOf:
- type: object
properties:
type:
$ref: '#/components/schemas/PlainTextContentItemType'
description: Content type discriminator
plain_text:
$ref: '#/components/schemas/PlainTextContent'
required:
- type
- plain_text
description: PLAIN_TEXT variant
- type: object
properties:
type:
$ref: '#/components/schemas/CommonmarkTextContentItemType'
description: Content type discriminator
commonmark_text:
$ref: '#/components/schemas/CommonmarkTextContent'
required:
- type
- commonmark_text
description: COMMONMARK_TEXT variant
- type: object
properties:
type:
$ref: '#/components/schemas/MarkdownTextContentItemType'
description: Content type discriminator
markdown_text:
$ref: '#/components/schemas/MarkdownTextContent'
required:
- type
- markdown_text
description: MARKDOWN_TEXT variant
discriminator:
propertyName: type
description: Message content with type discriminator
title: Content
NotFoundErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/NotFoundErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: NotFoundErrorResponseError
RateLimitExceededErrorResponseErrorCode:
type: string
enum:
- RATE_LIMIT_EXCEEDED
title: RateLimitExceededErrorResponseErrorCode
InvalidFeedbackErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/InvalidFeedbackErrorResponseError'
required:
- error
description: Error response for invalid feedback submission
title: InvalidFeedbackErrorResponse
MarkdownTextContentItemType:
type: string
enum:
- MARKDOWN_TEXT
description: Content type discriminator
title: MarkdownTextContentItemType
SubmitFeedbackResponseStatus:
type: string
enum:
- SUBMITTED
description: Feedback submission status
title: SubmitFeedbackResponseStatus
RateLimitExceededErrorResponseError:
type: object
properties:
code:
$ref: '#/components/schemas/RateLimitExceededErrorResponseErrorCode'
message:
type: string
required:
- code
- message
title: RateLimitExceededErrorResponseError
InvalidCursorErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/InvalidCursorErrorResponseError'
required:
- error
description: Error response for invalid pagination cursor
title: InvalidCursorErrorResponse
CommonmarkTextContent:
type: object
properties:
text:
type: string
description: Commonmark-formatted text content
required:
- text
title: CommonmarkTextContent
RateLimitExceededErrorResponse:
type: object
properties:
error:
$ref: '#/components/schemas/RateLimitExceededErrorResponseError'
required:
- error
description: Error response for rate limit exceeded
title: RateLimitExceededErrorResponse
InvalidCursorErrorResponseErrorCode:
type: string
enum:
- INVALID_CURSOR
title: InvalidCursorErrorResponseErrorCode
NotFoundErrorResponseErrorCode:
type: string
enum:
- NOT_FOUND
title: NotFoundErrorResponseErrorCode
PlainTextContent:
type: object
properties:
text:
type: string
description: Plain text content
required:
- text
title: PlainTextContent
URLAction:
type: object
properties:
url:
type: string
format: uri
description: URL to open when the action is triggered.
required:
- url
title: URLAction
UrlActionItemType:
type: string
enum:
- URL_ACTION
description: Action type discriminator
title: UrlActionItemType
CallbackActionContent:
type: object
properties:
callback_id:
type: string
description: Opaque callback id for the action the user triggered. Submit this via `input.callback_id` on the create response endpoint to trigger the action.
required:
- callback_id
title: CallbackActionContent
Citation_2:
type: object
properties:
citation_id:
type: string
description: 'Unique citation identifier (format: `cite_<base62>`). Use this to join with `content_references` on the Message object.'
url:
type: string
format: uri
description: URL to the entity
display:
$ref: '#/components/schemas/Display'
title: Citation
Message_2:
type: object
properties:
message_id:
type: string
description: A base-62 identifier prefixed by a short resource type
conversation_id:
type: string
description: A base-62 identifier prefixed by a short resource type
response_id:
type: string
description: A base-62 identifier prefixed by a short resource type
actor:
$ref: '#/components/schemas/ActorType'
content:
$ref: '#/components/schemas/Content_2'
citations:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/Citation_2'
description: Unique citation references in the assistant message. Use `content_references` to determine where in the message text each citation is referenced.
content_references:
type:
- array
- 'null'
items:
$ref: '#/components/schemas/CitationContentReference'
description: Ordered positions in the message text where citations appear (ascending by offset). Each entry references a `Citation` via `citation_id`. Only populated on assistant messages.
created_at:
type: string
format: date-time
description: Creation timestamp (ISO 8601)
feedback:
oneOf:
- $ref: '#/components/schemas/MessageFeedback'
- type: 'null'
description: Feedback options for this message. Present only on final assistant messages that support feedback. Use the callback IDs to submit a rating via the feedback endpoint.
actions:
type: array
items:
$ref: '#/components/schemas/Action'
description: Actions a user can take in response to this message (e.g. buttons or links). Absent on messages with no actions.
required:
- message_id
- conversation_id
- response_id
- actor
- content
- created_at
title: Message
CallbackActionContentItemType:
type: string
enum:
- CALLBACK_ACTION_CONTENT
description: Content type discriminator
title: CallbackActionContentItemType
Action:
oneOf:
- type: object
properties:
type:
$ref: '#/components/schemas/CallbackActionItemType'
description: Action type discriminator
label:
type: string
description: Label associated with the action (e.g., button text).
callback_action:
$ref: '#/components/schemas/CallbackAction'
required:
- type
- label
- callback_action
description: CALLBACK_ACTION variant
- type: object
properties:
type:
$ref: '#/components/schemas/UrlActionItemType'
description: Action type discriminator
label:
type: string
description: Label associated with the action (e.g., link text).
url_action:
$ref: '#/components/schemas/URLAction'
required:
- type
- label
- url_action
description: URL_ACTION variant
discriminator:
propertyName: type
description: An action a user can take in response to a message. The `type` field determines which action payload is present.
title: Action
CallbackAction:
type: object
properties:
callback_id:
type: string
description: Opaque callback identifier for the action. Submit this via `input.callback_id` on the create response endpoint to trigger the action.
required:
- callback_id
title: CallbackAction
CallbackActionItemType:
type: string
enum:
- CALLBACK_ACTION
description: Action type discriminator
title: CallbackActionItemType
Content_2:
oneOf:
- type: object
properties:
type:
$ref: '#/components/schemas/PlainTextContentItemType'
description: Content type discriminator
plain_text:
$ref: '#/components/schemas/PlainTextContent'
required:
- type
- plain_text
description: PLAIN_TEXT variant
- type: object
properties:
type:
$ref: '#/components/schemas/CommonmarkTextContentItemType'
description: Content type discriminator
commonmark_text:
$ref: '#/components/schemas/CommonmarkTextContent'
required:
- type
- commonmark_text
description: COMMONMARK_TEXT variant
- type: object
properties:
type:
$ref: '#/components/schemas/MarkdownTextContentItemType'
description: Content type discriminator
markdown_text:
$ref: '#/components/schemas/MarkdownTextContent'
required:
- type
- markdown_text
description: MARKDOWN_TEXT variant
- type: object
properties:
type:
$ref: '#/components/schemas/CallbackActionContentItemType'
description: Content type discriminator
callback_action:
$ref: '#/components/schemas/CallbackActionContent'
required:
- type
- callback_action
description: CALLBACK_ACTION_CONTENT variant
discriminator:
propertyName: type
description: Message content with type discriminator
title: Content
securitySchemes:
BearerAuth:
type: http
scheme: bearer
description: JWT bearer token authentication. Obtain an access token from the Moveworks auth endpoint and include it in the Authorization header as 'Bearer <token>'.
x-refined-from:
- moveworks-beta-conversations-api-openapi.yaml
- moveworks-c
# --- truncated at 32 KB (32 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/moveworks/refs/heads/main/openapi/moveworks-messages-api-openapi.yml