Quick Start

Get up and running with Arky in 5 minutes

Get up and running with Arky in 5 minutes. This guide shows you how to initialize the SDK and start fetching data immediately.

Installation

npm install arky-sdk

Initialize the SDK

Client-Side (Browser)

For client-side applications with automatic guest token handling:

import { createArkySDK } from 'arky-sdk';

const sdk = createArkySDK({
baseUrl: 'https://api.arky.io',
businessId: 'your-business-id',
market: 'us',

autoGuest: true, // Auto-create guest token

getToken: () => ({
  accessToken: localStorage.getItem('accessToken') || '',
  refreshToken: localStorage.getItem('refreshToken') || '',
  provider: 'GUEST',
  expiresAt: parseInt(localStorage.getItem('expiresAt') || '0'),
}),

setToken: (tokens) => {
  localStorage.setItem('accessToken', tokens.accessToken);
  if (tokens.refreshToken) localStorage.setItem('refreshToken', tokens.refreshToken);
  if (tokens.expiresAt) localStorage.setItem('expiresAt', tokens.expiresAt.toString());
},

logout: () => {
  localStorage.removeItem('accessToken');
  localStorage.removeItem('refreshToken');
},
});

Server-Side (SSR/API)

For server-side rendering or backend services:

import { createArkySDK } from 'arky-sdk';

const sdk = createArkySDK({
baseUrl: 'https://api.arky.io',
businessId: process.env.ARKY_BUSINESS_ID,
market: 'us',

autoGuest: false,

getToken: () => ({
  accessToken: process.env.ARKY_API_KEY,
  provider: 'API',
  expiresAt: 0,
}),

setToken: () => {},
logout: () => {},
});

Make Your First Request

Fetch Products

const { items: products } = await sdk.eshop.getProducts({
status: 'ACTIVE',
limit: 20,
});

products.forEach(product => {
console.log(product.name, product.variants[0].pricing);
});

Fetch CMS Content

const node = await sdk.cms.getNode({ key: 'homepage' });

// Extract block values
const title = sdk.utils.getBlockTextValue(
node.blocks.find(b => b.key === 'title'),
'en'
);

console.log('Page title:', title);

Fetch Services

const { items: services } = await sdk.reservation.getServices({
limit: 50,
});

const { items: providers } = await sdk.reservation.getProviders({
serviceId: services[0].id,
});

console.log('Service:', services[0].name);
console.log('Providers:', providers.length);
Note

The SDK automatically handles token refresh when your access token expires. You don’t need to manually manage token expiration.

Next Steps