Accounts management user manual
Login
Go to https://dm.diamondmatch.org/ and sign in with your user credentials. You can use either your unique username or your email to log in.
Info
Please contact us if you have trouble signing in: it-support@spacecode.com.
User management and permissions
To manage other users, click on Users in the sidebar or open this link.
To change your own user profile, click on your user name in the top right corner and go to My Profile, or open this link.
The user permissions are shown in the following table:
| Permission | Authentication | Fingerprinting | Admin | |
|---|---|---|---|---|
| Account management | ||||
| Add, edit & delete users | ✗ | ✗ | ✓ | |
| DiamondMatch | ||||
| Fingerprinting | ✗ | ✓ | ✓ | |
| Authentication with SKU | ✓ | ✓ | ✓ | |
| Inventory | ||||
| View inventory | ✓ | ✓ | ✓ | |
| Add, edit & delete diamonds | ✗ | ✓ | ✓ | |
User management through API
Another way you can manage users is through our API
The relevant endpoints for this functionality are the following:
Me
This is a GET endpoint (https://api.dm.diamondmatch.org/v2/external/users/me) and returns the user's details
{
"email": "john.doe@email.com",
"username": "john_doe",
"firstName": "John",
"lastName": "Doe",
"contactNumber": "0761234567",
"permissions": [
"Admin"
]
}
User
This endpoint (https://api.dm.diamondmatch.org/v2/external/users) allows to view, create and delete users through GET, POST and DELETE methods respectively.
# GET request
curl -X GET "https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe" \
-H "x-api-key: YOUR_KEY"
# [
# {
# "email": "john.doe@email.com",
# "username": "john_doe",
# "firstName": "John",
# "lastName": "Doe",
# "contactNumber": "0761234567",
# "permissions": [
# "Admin"
# ]
# }
# ]
# POST request
curl -X POST "https://api.dm.diamondmatch.org/v2/external/users" \
-H "x-api-key: YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{
"email": "jane.doe@email.com",
"username": "jane_doe",
"firstName": "Jane",
"lastName": "Doe",
"permissions": ["Admin"]
}'
# HTTP 201
# DELETE request
curl -X DELETE "https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe" \
-H "x-api-key: YOUR_KEY"
# HTTP 204
import requests
# GET request
response = requests.get(
"https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe",
headers={"x-api-key": "YOUR_KEY"}
)
print(response.json())
# [
# {
# "email": "john.doe@email.com",
# "username": "john_doe",
# "firstName": "John",
# "lastName": "Doe",
# "contactNumber: "0761234567",
# "permissions": [
# "Admin"
# ]
# }
# ]
# POST request
response = requests.post(
"https://api.dm.diamondmatch.org/v2/external/users",
headers={"x-api-key": "YOUR_KEY"},
json={
"email": "jane.doe@email.com",
"username": "jane_doe",
"firstName": "Jane",
"lastName": "Doe",
"permissions": [
"Admin"
]
}
)
print(response.status_code) # 201
# DELETE request
response = requests.delete(
"https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe",
headers={"x-api-key": "YOUR_KEY"}
)
print(response.status_code) # 204
// GET request
const getResponse = await fetch(
"https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe",
{
headers: { "x-api-key": "YOUR_KEY" }
}
);
const userData = await getResponse.json();
console.log(userData);
// [
// {
// "email": "john.doe@email.com",
// "username": "john_doe",
// "firstName": "John",
// "lastName": "Doe",
// "contactNumber": "0761234567",
// "permissions": [
// "Admin"
// ]
// }
// ]
// POST request
const postResponse = await fetch(
"https://api.dm.diamondmatch.org/v2/external/users",
{
method: "POST",
headers: {
"x-api-key": "YOUR_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
email: "jane.doe@email.com",
username: "jane_doe",
firstName: "Jane",
lastName: "Doe",
permissions: ["Admin"]
})
}
);
console.log(postResponse.status); // 201
// DELETE request
const deleteResponse = await fetch(
"https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe",
{
method: "DELETE",
headers: { "x-api-key": "YOUR_KEY" }
}
);
console.log(deleteResponse.status); // 204
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
client := &http.Client{}
// GET request
req, _ := http.NewRequest("GET",
"https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe",
nil)
req.Header.Set("x-api-key", "YOUR_KEY")
resp, _ := client.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
// [
// {
// "email": "john.doe@email.com",
// "username": "john_doe",
// "firstName": "John",
// "lastName": "Doe",
// "contactNumber": "0761234567",
// "permissions": [
// "Admin"
// ]
// }
// ]
// POST request
userData := map[string]interface{}{
"email": "jane.doe@email.com",
"username": "jane_doe",
"firstName": "Jane",
"lastName": "Doe",
"permissions": []string{"Admin"},
}
jsonData, _ := json.Marshal(userData)
req, _ = http.NewRequest("POST",
"https://api.dm.diamondmatch.org/v2/external/users",
bytes.NewBuffer(jsonData))
req.Header.Set("x-api-key", "YOUR_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ = client.Do(req)
defer resp.Body.Close()
fmt.Println(resp.StatusCode) // 201
// DELETE request
req, _ = http.NewRequest("DELETE",
"https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe",
nil)
req.Header.Set("x-api-key", "YOUR_KEY")
resp, _ = client.Do(req)
defer resp.Body.Close()
fmt.Println(resp.StatusCode) // 204
}
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
public class ApiExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
// GET request
HttpRequest getRequest = HttpRequest.newBuilder()
.uri(URI.create("https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe"))
.header("x-api-key", "YOUR_KEY")
.GET()
.build();
HttpResponse<String> getResponse = client.send(getRequest,
HttpResponse.BodyHandlers.ofString());
System.out.println(getResponse.body());
// [
// {
// "email": "john.doe@email.com",
// "username": "john_doe",
// "firstName": "John",
// "lastName": "Doe",
// "contactNumber": "0761234567",
// "permissions": [
// "Admin"
// ]
// }
// ]
// POST request
String jsonBody = """
{
"email": "jane.doe@email.com",
"username": "jane_doe",
"firstName": "Jane",
"lastName": "Doe",
"permissions": ["Admin"]
}
""";
HttpRequest postRequest = HttpRequest.newBuilder()
.uri(URI.create("https://api.dm.diamondmatch.org/v2/external/users"))
.header("x-api-key", "YOUR_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(jsonBody))
.build();
HttpResponse<String> postResponse = client.send(postRequest,
HttpResponse.BodyHandlers.ofString());
System.out.println(postResponse.statusCode()); // 201
// DELETE request
HttpRequest deleteRequest = HttpRequest.newBuilder()
.uri(URI.create("https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe"))
.header("x-api-key", "YOUR_KEY")
.DELETE()
.build();
HttpResponse<String> deleteResponse = client.send(deleteRequest,
HttpResponse.BodyHandlers.ofString());
System.out.println(deleteResponse.statusCode()); // 204
}
}
<?php
// GET request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("x-api-key: YOUR_KEY"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
// [
// {
// "email": "john.doe@email.com",
// "username": "john_doe",
// "firstName": "John",
// "lastName": "Doe",
// "contactNumber": "0761234567",
// "permissions": [
// "Admin"
// ]
// }
// ]
// POST request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.dm.diamondmatch.org/v2/external/users");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
"x-api-key: YOUR_KEY",
"Content-Type: application/json"
));
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array(
"email" => "jane.doe@email.com",
"username" => "jane_doe",
"firstName" => "Jane",
"lastName" => "Doe",
"permissions" => array("Admin")
)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode; // 201
// DELETE request
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");
curl_setopt($ch, CURLOPT_HTTPHEADER, array("x-api-key: YOUR_KEY"));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
echo $httpCode; // 204
?>
require 'net/http'
require 'json'
# GET request
uri = URI("https://api.dm.diamondmatch.org/v2/external/users?filters%5Busername%5D=john_doe")
request = Net::HTTP::Get.new(uri)
request["x-api-key"] = "YOUR_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.body
# [
# {
# "email": "john.doe@email.com",
# "username": "john_doe",
# "firstName": "John",
# "lastName": "Doe",
# "contactNumber": "0761234567",
# "permissions": [
# "Admin"
# ]
# }
# ]
# POST request
uri = URI("https://api.dm.diamondmatch.org/v2/external/users")
request = Net::HTTP::Post.new(uri)
request["x-api-key"] = "YOUR_KEY"
request["Content-Type"] = "application/json"
request.body = {
email: "jane.doe@email.com",
username: "jane_doe",
firstName: "Jane",
lastName: "Doe",
permissions: ["Admin"]
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.code # 201
# DELETE request
uri = URI("https://api.dm.diamondmatch.org/v2/external/users?username=jane_doe")
request = Net::HTTP::Delete.new(uri)
request["x-api-key"] = "YOUR_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
puts response.code # 204