Create a profile
Merge the supplied values with an existing profile or create a new profile if one doesn't already exist.
URL: https://api.courier.com/profiles/:user_id
Method: POST
Path Parameters
user_idstringrequired
A unique identifier representing the user associated with the requested profile. We do not advise using an email address or phone number for this value because those values may change over time.
Body Parameters
profileobject
+ Show Properties
Responses
status: 200 OK
statusstring
status: 400 Bad Request
messagestring
A message describing the error that occurred.
typestring
[invalid_request_error] The type of error that occurred.
Request Example
- cURL
- Node.js
- Ruby
- Python
- Go
- PHP
curl --request POST \
--url https://api.courier.com/profiles/0460766e-8463-4905-ae98-b72c7aef41d6 \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--data '
{
"profile": {
"email": "user@example.com",
"phone_number": "555-555-5555"
}
}
'
// Dependencies to install:
// $ npm install node-fetch --save
const fetch = require('node-fetch');
const options = {
method: 'POST',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
"profile": {
"email": "user@example.com",
"phone_number": "555-555-5555"
}
})
};
fetch('https://api.courier.com/profiles/0460766e-8463-4905-ae98-b72c7aef41d6', options)
.then(response => response.json())
.then(response => console.log(response))
.catch(err => console.error(err));
require 'uri'
require 'net/http'
require 'openssl'
url = URI("https://api.courier.com/profiles/0460766e-8463-4905-ae98-b72c7aef41d6")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Accept"] = 'application/json'
request["Content-Type"] = 'application/json'
request.body = "{\"profile\":{\"email\":\"user@example.com\",\"phone_number\":\"555-555-5555\"}}"
response = http.request(request)
puts response.read_body
# Dependencies to install:
# $ python -m pip install requests
import requests
url = "https://api.courier.com/profiles/0460766e-8463-4905-ae98-b72c7aef41d6"
payload = {
"profile": {
"email": "user@example.com",
"phone_number": "555-555-5555"
}
}
headers = {
"Accept": "application/json",
"Content-Type": "application/json"
}
response = requests.request("POST", url, json=payload, headers=headers)
print(response.text)
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://api.courier.com/profiles/0460766e-8463-4905-ae98-b72c7aef41d6"
payload := strings.NewReader("{\"profile\":{\"email\":\"user@example.com\",\"phone_number\":\"555-555-5555\"}}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Accept", "application/json")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
<?php
// Dependencies to install:
// $ composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://api.courier.com/profiles/0460766e-8463-4905-ae98-b72c7aef41d6', [
'body' => '{"profile":{"email":"user@example.com","phone_number":"555-555-5555"}}',
'headers' => [
'Accept' => 'application/json',
'Content-Type' => 'application/json',
],
]);
echo $response->getBody();
Responses Example
{
"status": "SUCCESS"
}
{
"message": "Error Message",
"type": "invalid_request_error"
}