API Types
API request and response type definitions
Type definitions for API requests and responses.
User API Types
Authentication
interface LoginUserParams {
email?: string;
password?: string;
provider: 'EMAIL' | 'GOOGLE' | 'APPLE' | 'GUEST';
code?: string; // OAuth code
}
interface RegisterUserParams {
email: string;
password: string;
provider: 'EMAIL';
first_name?: string;
last_name?: string;
}
interface ConfirmUserParams {
token: string;
}
interface GetLoginUrlParams {
provider: 'GOOGLE' | 'APPLE';
redirect_url: string;
}
Profile Management
interface UpdateAccountProfileParams {
phone_numbers?: string[];
addresses?: any[];
api_tokens?: any[] | null;
}
Password Management
interface ForgotPasswordParams {
email: string;
}
interface ResetForgotPasswordParams {
token: string;
new_password: string;
}
interface ResetPasswordParams {
old_password: string;
new_password: string;
}
Store API Types
interface CreateStoreParams {
name: string;
slug?: string;
description?: string;
settings?: Partial<StoreSettings>;
parent_id?: string;
}
interface UpdateStoreParams {
id: string;
name?: string;
slug?: string;
description?: string;
logo?: string;
settings?: Partial<StoreSettings>;
}
interface GetStoreParams {
store_id: string;
}
interface GetStoresParams extends PaginationParams {
search?: string;
}
interface AddMemberParams {
store_id: string;
email: string;
role?: 'admin' | 'owner' | 'super';
}
E-shop API Types
Products
interface CreateProductParams {
key: string;
description?: string;
audience_ids?: string[];
blocks?: any[];
taxonomies?: any[];
variants?: any[];
status?: Status; // 'active' | 'archived'
[key: string]: any;
}
interface UpdateProductParams {
id: string;
key?: string;
description?: string;
audience_ids?: string[];
blocks?: any[];
taxonomies?: any[];
variants?: any[];
status?: Status;
[key: string]: any;
}
interface GetProductParams {
id?: string;
slug?: string;
}
interface GetProductsParams {
ids?: string[];
taxonomy_query?: any[];
status?: string;
statuses?: string[];
query?: string;
limit?: number;
cursor?: string;
sort_field?: string;
sort_direction?: string;
created_at_from?: number | null;
created_at_to?: number | null;
}
Orders
interface EshopItem {
product_id: string;
variant_id: string;
quantity: number;
}
interface GetQuoteParams {
items: EshopItem[];
payment_method_id?: string;
shipping_method_id?: string;
promo_code?: string;
blocks?: any[];
location?: ZoneLocation;
}
interface OrderCheckoutParams {
items: EshopItem[];
payment_method_id?: string;
blocks?: any[];
shipping_method_id: string;
promo_code_id?: string;
shipping_address?: Address;
billing_address?: Address;
}
interface UpdateOrderParams {
id: string;
status: string;
blocks: any[];
items: any[];
address?: any | null;
billing_address?: any | null;
payment?: any | null;
}
interface GetOrdersParams {
statuses?: string[] | null;
product_ids?: string[];
query?: string | null;
limit?: number | null;
cursor?: string | null;
sort_field?: string | null;
sort_direction?: string | null;
created_at_from?: string | null;
created_at_to?: string | null;
}
Note
The current SDK still types OrderCheckoutParams.blocks as any[]. The
server has since renamed this to forms, but the SDK type has not yet been
regenerated — pass blocks until the next SDK release.
CMS API Types
interface CreateNodeParams {
store_id?: string;
key: string;
parent_id?: string | null;
blocks?: any[];
filters?: any[];
slug?: Record<string, string>;
audience_ids?: string[];
status?: string; // 'active' | 'archived'
}
interface UpdateNodeParams {
id: string;
store_id?: string;
key?: string;
parent_id?: string | null;
blocks?: any[];
filters?: any[];
slug?: Record<string, string>;
audience_ids?: string[];
status?: string;
}
interface GetNodeParams {
id?: string;
slug?: string;
key?: string;
store_id?: string;
}
interface GetNodesParams {
store_id?: string;
parent_id?: string;
ids?: string[];
query?: string;
type?: string;
key?: string;
statuses?: string[];
limit?: number;
cursor?: string;
sort_field?: string;
sort_direction?: string;
created_at_from?: string;
created_at_to?: string;
}
Forms
interface CreateFormParams {
store_id?: string;
key: string;
schema?: any[]; // FormSchema[]
}
interface UpdateFormParams {
id: string;
store_id?: string;
key?: string;
schema?: any[];
status?: string;
}
interface SubmitFormParams {
form_id: string;
store_id?: string;
fields: any[]; // FormField[]
}
Profiles
interface CreateProfileParams {
store_id?: string;
email: string;
taxonomies?: TaxonomyEntry[];
}
interface UpdateProfileParams {
id: string;
store_id?: string;
email?: string;
taxonomies?: TaxonomyEntry[];
status?: 'active' | 'archived';
}
Audiences
Audiences live under sdk.crm.audiences.*.
interface CreateAudienceParams {
key: string;
type?: AudienceType;
confirm_template_id?: string;
}
interface UpdateAudienceParams {
id: string;
key?: string;
status?: Status;
confirm_template_id?: string;
}
interface GetAudiencesParams {
ids?: string[];
status?: string;
query?: string;
limit?: number;
cursor?: string;
}
interface SubscribeAudienceParams {
id: string;
profile_id: string;
price_id?: string;
success_url?: string;
cancel_url?: string;
confirm_url?: string;
}
E-shop Scheduling API Types
Services
interface CreateServiceParams {
store_id?: string;
key: string;
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface UpdateServiceParams {
id: string;
store_id?: string;
key?: string;
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface GetServiceParams {
id?: string;
slug?: string;
store_id?: string;
}
interface GetServicesParams {
store_id?: string;
provider_id?: string;
taxonomy_query?: any[];
ids?: string[];
query?: string;
statuses?: string[];
limit?: number;
cursor?: string;
sort_field?: string;
sort_direction?: string;
}
Providers
interface CreateProviderParams {
store_id?: string;
key: string;
audience_ids?: string[];
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface UpdateProviderParams {
id: string;
store_id?: string;
key?: string;
audience_ids?: string[];
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface GetProvidersParams {
store_id?: string;
service_id?: string;
taxonomy_query?: any[];
ids?: string[];
query?: string | null;
statuses?: string[] | null;
limit?: number;
cursor?: string;
sort_field?: string | null;
sort_direction?: string | null;
created_at_from?: string | null;
created_at_to?: string | null;
}
Service Providers
interface CreateServiceProviderParams {
store_id?: string;
service_id: string;
provider_id: string;
working_days: WorkingDay[];
specific_dates: SpecificDate[];
prices?: any[];
durations?: any[];
slot_interval: number;
}
interface UpdateServiceProviderParams {
store_id?: string;
id: string;
working_days: WorkingDay[];
specific_dates: SpecificDate[];
prices?: any[];
durations?: any[];
slot_interval: number;
}
Availability
interface GetAvailabilityParams {
store_id?: string;
service_id: string;
from: number;
to: number;
provider_id?: string;
}
Service Order Items
interface ServiceQuoteItemInput {
type: 'service';
service_id: string;
provider_id: string;
slots: SlotRange[];
}
interface SlotRange {
from: number;
to: number;
}
interface GetQuoteParams {
store_id?: string;
items: Array<ProductQuoteItemInput | ServiceQuoteItemInput>;
payment_method_id?: string;
promo_code?: string;
shipping_method_id?: string;
location?: ZoneLocation;
}
interface ServiceCheckoutItemInput extends ServiceQuoteItemInput {
forms?: FormEntry[];
}
interface OrderCheckoutParams {
store_id?: string;
items: Array<ProductCheckoutItemInput | ServiceCheckoutItemInput>;
payment_method_id?: string;
forms?: any[];
promo_code_id?: string;
shipping_method_id?: string;
shipping_address?: Address;
location?: ZoneLocation;
}
interface GetAvailabilityParams {
store_id?: string;
service_id: string;
provider_id?: string;
from: number;
to: number;
}
Database API Types
interface PutDataParams {
key: string;
value: unknown;
ttl?: number;
}
interface ScanDataParams {
key?: string;
prefix?: string;
cursor?: string;
limit?: number;
}
interface DeleteDataParams {
key: string;
}
interface RunScriptParams {
script: string;
input?: Record<string, unknown>;
}