Create Team Member
curl --request POST \
--url https://staging-api.puppetvendors.com/settings/team \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"email": "<string>",
"password": "<string>",
"profile": {},
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>",
"apiPermissions": [
"<string>"
]
}
'import requests
url = "https://staging-api.puppetvendors.com/settings/team"
payload = {
"email": "<string>",
"password": "<string>",
"profile": {},
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>",
"apiPermissions": ["<string>"]
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
password: '<string>',
profile: {},
'profile.firstName': '<string>',
'profile.lastName': '<string>',
'profile.phone': '<string>',
apiPermissions: ['<string>']
})
};
fetch('https://staging-api.puppetvendors.com/settings/team', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging-api.puppetvendors.com/settings/team",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'profile' => [
],
'profile.firstName' => '<string>',
'profile.lastName' => '<string>',
'profile.phone' => '<string>',
'apiPermissions' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging-api.puppetvendors.com/settings/team"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"profile\": {},\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\",\n \"apiPermissions\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://staging-api.puppetvendors.com/settings/team")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"profile\": {},\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\",\n \"apiPermissions\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging-api.puppetvendors.com/settings/team")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"profile\": {},\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\",\n \"apiPermissions\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyTeam Members
Create Team Member
Invite a new team member to the vendor account
POST
/
settings
/
team
Create Team Member
curl --request POST \
--url https://staging-api.puppetvendors.com/settings/team \
--header 'Content-Type: application/json' \
--header 'x-access-token: <api-key>' \
--data '
{
"email": "<string>",
"password": "<string>",
"profile": {},
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>",
"apiPermissions": [
"<string>"
]
}
'import requests
url = "https://staging-api.puppetvendors.com/settings/team"
payload = {
"email": "<string>",
"password": "<string>",
"profile": {},
"profile.firstName": "<string>",
"profile.lastName": "<string>",
"profile.phone": "<string>",
"apiPermissions": ["<string>"]
}
headers = {
"x-access-token": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-access-token': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
email: '<string>',
password: '<string>',
profile: {},
'profile.firstName': '<string>',
'profile.lastName': '<string>',
'profile.phone': '<string>',
apiPermissions: ['<string>']
})
};
fetch('https://staging-api.puppetvendors.com/settings/team', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://staging-api.puppetvendors.com/settings/team",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => '<string>',
'password' => '<string>',
'profile' => [
],
'profile.firstName' => '<string>',
'profile.lastName' => '<string>',
'profile.phone' => '<string>',
'apiPermissions' => [
'<string>'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-access-token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://staging-api.puppetvendors.com/settings/team"
payload := strings.NewReader("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"profile\": {},\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\",\n \"apiPermissions\": [\n \"<string>\"\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-access-token", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://staging-api.puppetvendors.com/settings/team")
.header("x-access-token", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"profile\": {},\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\",\n \"apiPermissions\": [\n \"<string>\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://staging-api.puppetvendors.com/settings/team")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-access-token"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"<string>\",\n \"password\": \"<string>\",\n \"profile\": {},\n \"profile.firstName\": \"<string>\",\n \"profile.lastName\": \"<string>\",\n \"profile.phone\": \"<string>\",\n \"apiPermissions\": [\n \"<string>\"\n ]\n}"
response = http.request(request)
puts response.read_bodyV2 Preview — This endpoint is part of the V2 API preview. Breaking changes may occur.
Overview
Create a new team member for the vendor account. The team member receives login credentials and can be assigned specific API permissions.Use Cases
- Invite warehouse staff with fulfillment-only permissions
- Add a bookkeeper with read-only access to orders and payouts
- Onboard new team members with scoped access
Request Body
Email address for the team member. Must be a valid email format.
Initial password. Minimum 6 characters, maximum 100 characters.
Profile information.
First name. Maximum 100 characters.
Last name. Maximum 100 characters.
Phone number. Maximum 50 characters.
Array of permission strings to grant the team member.
Response
200
{
"success": true,
"data": {
"_id": "665a1b2e3d98f0001a2b3c81",
"email": "bob@example.com",
"profile": {
"firstName": "Bob",
"lastName": "Smith",
"phone": "+15125559876"
},
"apiPermissions": [
"orders:read",
"fulfillments:write"
],
"createdAt": "2026-05-19T12:00:00.000Z"
}
}
Example
curl -X POST "https://staging-api.puppetvendors.com/settings/team" \
-H "x-access-token: YOUR_VENDOR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"email": "bob@example.com",
"password": "secureP@ss123",
"profile": {
"firstName": "Bob",
"lastName": "Smith",
"phone": "+15125559876"
},
"apiPermissions": ["orders:read", "fulfillments:write"]
}'
More Examples
Create team member with limited permissionscurl -X POST "https://staging-api.puppetvendors.com/settings/team" \
-H "Content-Type: application/json" \
-H "x-access-token: YOUR_VENDOR_TOKEN" \
-d '{
"email": "assistant@acmeco.com",
"password": "temp-pass-123",
"profile": {
"firstName": "Alex",
"lastName": "Johnson"
},
"apiPermissions": ["orders:read", "products:read", "fulfillments:read"]
}'
Was this page helpful?
⌘I