- product:messaging - language:nodejs - language:python - language:php - sdk:compatibility # Sending Your First SMS Lets get you started by sending your first SMS. In this guide we are going to use [Compatibility APIs](/rest/compatibility-api): if you are migrating from a different provider, these APIs will likely be very similar. In case you need more advanced features, check out our [Realtime APIs](/sdks/reference/realtime-sdk/guides/messaging/first-steps-with-messaging). ## Your API Credentials To send messages, make phone calls, and programmatically control video rooms, you need API credentials. Find these in your [SignalWire Space](https://signalwire.com/signin), within the API tab on the left sidebar. If this is the first time you are using API credentials, you will need to create an API token. You can find your Project ID, Space URL, and API Token from the API tab in your SignalWire Space. Make sure your token has the necessary scopes enabled. In the API section you will find all the information youll need. In particular: - Your Project ID (e.g., 7b981d06-fa9e-XXXX-XXXX-XXXXXXXXXXXX) - Your Space URL (e.g., yourname.signalwire.com) - Your API Token (e.g., PTda745ebXXXXXXXXXXXXXXXXXXXXXX) The API Token is confidential: keep it private. ## Obtaining a number [Log in](https://signalwire.com/signin) to your SignalWire Space. From the Phone Numbers section, you can [buy a new phone number](/platform/phone-numbers/getting-started/buying-a-phone-number) if you dont have one already. You will need at least one number to send and receive messages. Make sure the number you are buying supports SMS messaging, and youre good. ## Sending a message Lets see how to send your first message. You have a few different options: you can trigger an HTTP request yourself (using cURL or the dedicated functions in your preferred programming language), or you can use [one of our SDKs](/sdks). Well show examples for both methods. ### Installation import Tabs from @theme/Tabs; import TabItem from @theme/TabItem; > Refer to https://everything.curl.dev/get. bash npm install @signalwire/compatibility-api bash pip install signalwire bash composer require signalwire-community/signalwire Once your environment is set up, you can proceed with your first API call. ### Sending To send a message, you can use the [Create a Message](/rest/compatibility-api/endpoints/create-message) endpoint from our [Compatibility APIs](https://developer.signalwire.com/compatibility-api/). :::info Ensuring message delivery If you are sending messages to the US from a 10DLC number, you _must_ register your traffic with the Campaign Registry. Otherwise, the carriers will not deliver your messages. Please see [**Campaign Registry - Everything You Need To Know**](/messaging/get-started/campaign-registry) for more information. ::: Lets see how to send a message with a REST API call: bash curl https://$SPACE_URL/api/laml/2010-04-01/Accounts/$PROJECT_ID/Messages \ -X POST \ -u $PROJECT_ID:$API_TOKEN \ --data-urlencode From=$FROM_NUMBER \ --data-urlencode To=$TO_NUMBER \ --data-urlencode Body=Hello js const { RestClient } = require(@signalwire/compatibility-api); const client = RestClient(PROJECT_ID, API_TOKEN, { signalwireSpaceUrl: SPACE_URL }); client.messages .create({ from: FROM_NUMBER, to: TO_NUMBER, body: Hello }) .then((message) => console.log(message.sid)) .done(); python from signalwire.rest import Client as signalwire_client client = signalwire_client(PROJECT_ID, API_TOKEN, signalwire_space_url = SPACE_URL) message = client.messages.create( from_=FROM_NUMBER, to=TO_NUMBER, body=Hello ) print(message.sid) php $SPACE_URL)); $message = $client->messages ->create($TO_NUMBER, // to array(from => $FROM_NUMBER, body => Hello) ); print($message->sid); ?> Make sure to replace all placeholders with your own values. This example used the [Compatibility API](pathname:///compatibility-api), and in particular the [Compatibility REST API](/rest/compatibility-api), to send a message. For more advanced, real-time applications, youll want to check out our [Realtime SDK](/sdks/reference/realtime-sdk/relay-v4).