Learn how to integrate Masivo with your e-commerce platforms
Account settings
/auth/authorize
x-api-key
const response = await fetch("https://api.masivo.ai/auth/authorize", { method: "GET", headers: { "x-api-key": /* YOUR-API-KEY-HERE */ } });
const response = await fetch( "https://app.masivo.ai/api/storefront/v1/rewards", { method: "GET", headers: { Authorization: `Bearer ${accessToken}` } } );
const response = await decodeJwt(accessToken); const { exp } = response.payload; const expired = Date.now() >= exp; if (expired) { // refresh access token } else { // continue }
import { decodeJwt } from "jose"; const baseUrl = "https://api.masivo.ai/api/storefront/v1"; let accessToken; // Get an access token that is safe to use const getBearerToken = async () => { const decoded = accessToken ? await decodeJwt(accessToken) : undefined; const { exp = 0 } = decoded?.payload ?? {}; // 5 minutes before it actually expires const expirationTime = exp * 1000 - 5 * 60 * 1000; const expired = Date.now() >= expirationTime; const refreshToken = !accessToken || expired; if (!refreshToken) return `Bearer ${accessToken}`; const url = `${baseUrl}/auth/authorize`; const headers = new Headers(); headers.set("x-api-key", process.env.API_KEY); const res = await fetch(url, { headers }); access_token = (await res.json()).data; return `Bearer ${accessToken}`; }; // Use this token as an authorization header in each subsequent api call const token = await getBearerToken(); // Your code...