# List all Messages GET https://YOUR_SPACE.signalwire.com/api/laml/2010-04-01/Accounts/{AccountSid}/Messages List all messages. #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). Reference: https://signalwire.com/docs/compatibility-api/rest/messages/list-messages ## OpenAPI Specification ```yaml openapi: 3.1.0 info: title: compatibility version: 1.0.0 paths: /Accounts/{AccountSid}/Messages: get: operationId: list-messages summary: List all Messages description: >- List all messages. #### Permissions The API token used to authenticate must have the following scope(s) enabled to make a successful request: _Messaging_. [Learn more about API scopes](/docs/platform/your-signalwire-api-space). tags: - subpackage_messages parameters: - name: AccountSid in: path description: >- The unique identifier of the project that sent or received this message. required: true schema: type: string format: uuid - name: DateSent in: query description: >- Only return messages sent on this particular date, formatted as YYYY-MM-DD in UTC. required: false schema: type: string - name: DateSent< in: query description: >- Only return messages sent before this date, formatted as YYYY-MM-DD in UTC. required: false schema: type: string - name: DateSent> in: query description: >- Only return messages sent after this date, formatted as YYYY-MM-DD in UTC. required: false schema: type: string - name: From in: query description: >- The phone number in E.164 format. For inbound messages, this will be the remote phone number who sent the message. For outbound messages, this will be one of your SignalWire phone numbers. required: false schema: type: string - name: To in: query description: >- The phone number in E.164 format that received the message. For inbound messages, this is one of your SignalWire phone numbers; for outbound messages, this is the remote phone number that received the message. required: false schema: type: string - name: Status in: query description: Current status of the message. required: false schema: $ref: '#/components/schemas/MessageStatus' - name: Page in: query description: The page number to retrieve. Default is 0. required: false schema: type: integer default: 0 - name: PageSize in: query description: The number of items per page. Default is 50, maximum is 1000. required: false schema: type: integer default: 50 - name: PageToken in: query description: The token for cursor-based pagination. Must start with 'PA' or 'PB'. required: false schema: type: string - name: Authorization in: header description: >- SignalWire Basic Authentication using Project ID and API Token. The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password. Example: ``` Authorization: Basic base64(project_id:token) ``` required: true schema: type: string responses: '200': description: The request has succeeded. content: application/json: schema: $ref: '#/components/schemas/MessageListResponse' '400': description: >- The request was invalid or cannot be processed. Check the error details for more information. content: application/json: schema: $ref: '#/components/schemas/CompatibilityErrorResponse' '401': description: Authentication failed. Please verify your credentials and try again. content: application/json: schema: $ref: '#/components/schemas/CompatibilityErrorResponse' '422': description: >- The request could not be processed due to validation errors. Check the error details for more information. content: application/json: schema: $ref: '#/components/schemas/CompatibilityErrorResponse' servers: - url: https://YOUR_SPACE.signalwire.com/api/laml/2010-04-01 components: schemas: MessageStatus: type: string enum: - queued - initiated - sent - failed - delivered - undelivered - received description: Message status. title: MessageStatus MessageDirection: type: string enum: - inbound - outbound-api - outbound-call - outbound-reply description: Message direction. title: MessageDirection MessageSubresourceUris: type: object properties: media: type: string description: The URI for media. required: - media description: Message subresource URIs. title: MessageSubresourceUris Message: type: object properties: account_sid: type: string format: uuid description: >- The unique identifier of the project that sent or received this message. api_version: type: string description: >- The version number of the SignalWire cXML REST API used to handle this message. body: type: - string - 'null' description: >- The text of the message. Up to 1600 characters long. May be null if filtered for spam. num_segments: type: integer description: The number of segments that make up the entire message. num_media: type: integer description: The number of media files that were included with the message. date_created: type: string description: The date and time the message was created in RFC 2822 format. date_sent: type: - string - 'null' description: >- The date and time the message was sent in RFC 2822 format, or null if not yet sent. date_updated: type: string description: The date and time the message was last updated in RFC 2822 format. direction: $ref: '#/components/schemas/MessageDirection' description: The direction of the message. error_code: type: - string - 'null' description: >- If an error has occurred on the message, the error code will give you a specific code, or null if no error. error_message: type: - string - 'null' description: >- A human readable description of the error that occurred, or null if no error. from: type: string description: The phone number in E.164 format that sent the message. price: type: - number - 'null' format: double description: >- The cost of the individual message billed to your project, or null if not yet calculated. price_unit: type: string description: The currency in which `price` is charged as. sid: type: string format: uuid description: A unique ID that identifies this specific message. status: $ref: '#/components/schemas/MessageStatus' description: Current status of the message. to: type: string description: The phone number in E.164 format that received the message. messaging_service_sid: type: - string - 'null' format: uuid description: >- If a number group was used when sending an outbound message, the number group's ID will be present, or null otherwise. uri: type: string description: The URI of this particular message. subresource_uris: $ref: '#/components/schemas/MessageSubresourceUris' description: The URIs for any subresources associated with this message. required: - account_sid - api_version - body - num_segments - num_media - date_created - date_sent - date_updated - direction - error_code - error_message - from - price - price_unit - sid - status - to - messaging_service_sid - uri - subresource_uris description: Message model. title: Message MessageListResponse: type: object properties: uri: type: string description: The URI of the current page. first_page_uri: type: string description: The URI of the first page. next_page_uri: type: - string - 'null' description: The URI of the next page, or null if there are no more pages. previous_page_uri: type: - string - 'null' description: The URI of the previous page, or null if this is the first page. page: type: integer description: The current page number. page_size: type: integer description: The number of items per page. messages: type: array items: $ref: '#/components/schemas/Message' description: List of messages. required: - uri - first_page_uri - next_page_uri - previous_page_uri - page - page_size - messages description: Response containing a list of messages. title: MessageListResponse CompatibilityErrorResponse: type: object properties: code: type: integer description: Error code. message: type: string description: Error message. more_info: type: string description: URL for more information about the error. status: type: integer description: HTTP status code. required: - code - message - more_info - status description: Error response model. title: CompatibilityErrorResponse securitySchemes: SignalWireBasicAuth: type: http scheme: basic description: >- SignalWire Basic Authentication using Project ID and API Token. The client sends HTTP requests with the Authorization header containing the word Basic followed by a space and a base64-encoded string of project_id:token. The project ID will be used as the username and the API token as the password. Example: ``` Authorization: Basic base64(project_id:token) ``` ``` ## SDK Code Examples ```python import requests url = "https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages" headers = {"Authorization": "Basic :"} response = requests.get(url, headers=headers) print(response.json()) ``` ```javascript const url = 'https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages'; const options = {method: 'GET', headers: {Authorization: 'Basic :'}}; try { const response = await fetch(url, options); const data = await response.json(); console.log(data); } catch (error) { console.error(error); } ``` ```go package main import ( "fmt" "net/http" "io" ) func main() { url := "https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages" req, _ := http.NewRequest("GET", url, nil) req.Header.Add("Authorization", "Basic :") res, _ := http.DefaultClient.Do(req) defer res.Body.Close() body, _ := io.ReadAll(res.Body) fmt.Println(res) fmt.Println(string(body)) } ``` ```ruby require 'uri' require 'net/http' url = URI("https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages") http = Net::HTTP.new(url.host, url.port) http.use_ssl = true request = Net::HTTP::Get.new(url) request["Authorization"] = 'Basic :' response = http.request(request) puts response.read_body ``` ```java import com.mashape.unirest.http.HttpResponse; import com.mashape.unirest.http.Unirest; HttpResponse response = Unirest.get("https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages") .header("Authorization", "Basic :") .asString(); ``` ```php request('GET', 'https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages', [ 'headers' => [ 'Authorization' => 'Basic :', ], ]); echo $response->getBody(); ``` ```csharp using RestSharp; var client = new RestClient("https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages"); var request = new RestRequest(Method.GET); request.AddHeader("Authorization", "Basic :"); IRestResponse response = client.Execute(request); ``` ```swift import Foundation let headers = ["Authorization": "Basic :"] let request = NSMutableURLRequest(url: NSURL(string: "https://your_space.signalwire.com/api/laml/2010-04-01/Accounts/AccountSid/Messages")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0) request.httpMethod = "GET" request.allHTTPHeaderFields = headers let session = URLSession.shared let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in if (error != nil) { print(error as Any) } else { let httpResponse = response as? HTTPURLResponse print(httpResponse) } }) dataTask.resume() ```