=encoding utf8
=head1 NAME
OpenAPI::Client::OpenAI::Path::threads-thread_id-messages - Documentation for the /threads/{thread_id}/messages path.
=head1 DESCRIPTION
This document describes the API endpoint at C</threads/{thread_id}/messages>.
=head1 PATHS
=head2 C<GET /threads/{thread_id}/messages>
Returns a list of messages for a given thread.
=head3 Operation ID
C<listMessages>
$client->listMessages( ... );
=head3 Parameters
=over 4
=item * C<thread_id> (in path) (Required) - The ID of the [thread](/docs/api-reference/threads) the messages belong to.
Type: C<string>
=item * C<limit> (in query) (Optional) - A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default is 20.
Type: C<integer>
Default: C<20>
=item * C<order> (in query) (Optional) - Sort order by the `created_at` timestamp of the objects. `asc` for ascending order and `desc` for descending order.
Type: C<string>
Allowed values: C<asc, desc>
Default: C<desc>
=item * C<after> (in query) (Optional) - A cursor for use in pagination. `after` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, ending with obj_foo, your subsequent call can include after=obj_foo in order to fetch the next page of the list.
Type: C<string>
=item * C<before> (in query) (Optional) - A cursor for use in pagination. `before` is an object ID that defines your place in the list. For instance, if you make a list request and receive 100 objects, starting with obj_foo, your subsequent call can include before=obj_foo in order to fetch the previous page of the list.
Type: C<string>
=item * C<run_id> (in query) (Optional) - Filter messages by the run ID that generated them.
Type: C<string>
=back
=head3 Responses
=head4 Status Code: C<200>
OK
=head4 Content Types:
=over 4
=item * C<application/json>
Example (See the L<OpenAI spec for more detail|https://github.com/openai/openai-openapi/blob/master/openapi.yaml>):
{
"data" : [
"{\n \"id\": \"msg_abc123\",\n \"object\": \"thread.message\",\n \"created_at\": 1698983503,\n \"thread_id\": \"thread_abc123\",\n \"role\": \"assistant\",\n \"content\": [\n {\n \"type\": \"text\",\n \"text\": {\n \"value\": \"Hi! How can I help you today?\",\n \"annotations\": []\n }\n }\n ],\n \"assistant_id\": \"asst_abc123\",\n \"run_id\": \"run_abc123\",\n \"attachments\": [],\n \"metadata\": {}\n}\n"
],
"first_id" : "msg_abc123",
"has_more" : false,
"last_id" : "msg_abc123",
"object" : "list"
}
=back
=head2 C<POST /threads/{thread_id}/messages>
Create a message.
=head3 Operation ID
C<createMessage>
$client->createMessage( ... );
=head3 Parameters
=over 4
=item * C<thread_id> (in path) (Required) - The ID of the [thread](/docs/api-reference/threads) to create a message for.
Type: C<string>
=back
=head3 Request Body
=head3 Content Type: C<application/json>
Example:
{
"attachments" : [
{
"tools" : [
null
]
}
]
}
=head3 Responses
=head4 Status Code: C<200>
OK
=head4 Content Types:
=over 4
=item * C<application/json>
Example (See the L<OpenAI spec for more detail|https://github.com/openai/openai-openapi/blob/master/openapi.yaml>):
{
"id": "msg_abc123",
"object": "thread.message",
"created_at": 1698983503,
"thread_id": "thread_abc123",
"role": "assistant",
"content": [
{
"type": "text",
"text": {
"value": "Hi! How can I help you today?",
"annotations": []
}
}
],
"assistant_id": "asst_abc123",
"run_id": "run_abc123",
"attachments": [],
"metadata": {}
}
=back
=head1 SEE ALSO
L<OpenAPI::Client::OpenAI::Path>
=head1 COPYRIGHT AND LICENSE
Copyright (C) 2023-2025 by Nelson Ferraz
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.14.0 or,
at your option, any later version of Perl 5 you may have available.
=cut