Diamra for developers
Connect your own code to your jewelry store.
The design studio on your website already tells your page what customers do in it. Webhooks and an API come next, so you can build the whole customer side yourself.
- diamra:ready{ store: "yourstore", signed_in: true }
- diamra:design.generated{ image_count: 4, image_urls: [...] }
- diamra:project.started{ project_id: "8c1f...", image_url: "..." }
- diamra:estimate.displayed{ price: 2450, currency: "USD" }
- diamra:estimate.accepted{ price: 2450, bench_url: "..." }
Hear what customers do in the studio.
When your store's studio is embedded on your website, it posts a message to your page each time a customer signs in, gets designs, starts a project or accepts a price. Your page can answer with commands.
diamra:estimate.accepted
Send accepted prices to your POS
Carries the price, the currency, the customer and a link to the project on your bench, the moment the customer taps Continue.
diamra:sign_out
Sign out at the counter
Post it when a sale on a shared tablet closes, and the next customer starts with an empty studio.
const STORE = "https://yourstore.diamra.com";
window.addEventListener("message", (event) => {
if (event.origin !== STORE) return;
if (event.data?.type !== "diamra:estimate.accepted") return;
// project_id, price, currency, customer, bench_url, image_url...
fetch("/pos/orders", { method: "POST", body: JSON.stringify(event.data) });
});const studio = document.querySelector("[data-diamra-store] iframe");
// The sale is closed: clear the counter tablet for the next customer.
studio.contentWindow.postMessage({ type: "diamra:sign_out" }, STORE);Get a POST when something happens in your store.
Embed events reach a page only while it is open. Webhooks reach your server wherever something happened: on your website, on your store's own address or on your bench. Every delivery is signed to the Standard Webhooks spec, so any library for it can check that it came from Diamra.
estimate.accepted
Open the order in your POS
Create the order the moment a customer accepts a price, whether they did it on your website or on your store's own address.
message.created
Answer customers where your team works
Forward every message from a project thread to the inbox or the chat your staff already watches.
Diamra Email Delivery
Send your own emails
Turn off any email Diamra sends for your store, one event at a time, and send your own from your domain instead.
{
"id": "7b9e2f1c-3a44-4d2e-9f0b-0c1a2b3c4d5e",
"type": "estimate.accepted",
"created_at": "2026-10-31T18:04:12Z",
"store": { "id": "a1b2c3d4-...", "subdomain": "yourstore" },
"data": {
"project_id": "...",
"price": 2450,
"currency": "USD",
"metal": "18K Gold",
"customer": { "first_name": "Jane", "email": "jane@example.com" },
"bench_url": "https://yourstore.diamra.com/bench/projects/..."
}
}Build the whole customer side yourself.
The API lets your server do what the studio does: make designs, price them and start projects. On top of it, build the experience you want: your own design flow on your website, say, or an app for your customers.
Your server holds the key and makes every call, so your customers' browsers only ever talk to your domain. Serve the images from there too, and nothing your customers can see points to Diamra.
What your customers can see
yourstore.comapi.diamra.com/v1From developers
What they wired up first.
“We already had a message listener for our analytics. Adding diamra:estimate.accepted took about twenty minutes, and accepted prices now show up in our POS as draft orders.”
Web developer at a two-store jeweler, Texas
“Our counter iPad runs the studio all day. We post sign_out when the sale closes, so the next customer never sees the last one's designs.”
Owner of a bridal store, New Jersey
“project.started drops into our email tool as a new lead with the design picture. Follow-ups go out the same day now, not whenever someone checks the bench.”
Freelance developer for a family jeweler, Ohio
Questions
Before you start.
What can I build today?
Embed events are live. When your store's design studio is embedded on your website, your page hears what customers do in it, such as a design generated, a project started or a price accepted, and can send the studio commands. Webhooks and the API are documented and coming next.
Do I need a paid plan?
Embedding the studio on your website comes with the Retail plan. The API needs an active Retail subscription too, and it turns on once your free trial ends.
How is the API billed?
It is metered: you pay for each task your server runs, such as a set of designs, an estimate, a video or a 3D model. On the 1st, the month's tasks go on one invoice, charged to the card that pays for your Retail plan. Reads, sign-in and webhooks cost nothing.
Can a bug in my code run up a big bill?
Every store has a daily spending limit on the API. We warn you as you get close, and once you reach it, API calls stop until midnight UTC. If your store needs a higher limit, write to us.
Will my customers see Diamra?
The embedded studio carries your store's name and colors. With the API, your server makes every call, so your customers' browsers talk only to your domain. Serve the images from your domain too, and nothing your customers can see points to Diamra.
Is there a test mode?
No. Every key is live and every event is real. To test, do the thing yourself in your own store: keep a design, which starts a project, or send a message on one.
When do webhooks and the API open?
We have not set dates. The docs already describe how both will work, signing and errors included, so you can plan your side now.
Where do I set all this up?
In your store's Developer Console, at yourstore.diamra.com/console. It has three tabs: Embed, Webhooks and API Keys.
Start with the docs.
Embed events work today on any page that runs your store's embed. Everything coming is written down there too.