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';
firstName?: string;
lastName?: string;
}
interface ConfirmUserParams {
token: string;
}
interface GetLoginUrlParams {
provider: 'GOOGLE' | 'APPLE';
redirectUrl: string;
}
Profile Management
interface UpdateAccountProfileParams {
phoneNumbers?: string[];
addresses?: any[];
apiTokens?: any[] | null;
}
Password Management
interface ForgotPasswordParams {
email: string;
}
interface ResetForgotPasswordParams {
token: string;
newPassword: string;
}
interface ResetPasswordParams {
oldPassword: string;
newPassword: string;
}
Business API Types
interface CreateBusinessParams {
name: string;
slug?: string;
description?: string;
settings?: Partial<BusinessSettings>;
parentId?: string;
}
interface UpdateBusinessParams {
id: string;
name?: string;
slug?: string;
description?: string;
logo?: string;
settings?: Partial<BusinessSettings>;
}
interface GetBusinessParams {
businessId: string;
}
interface GetBusinessesParams extends PaginationParams {
search?: string;
}
interface InviteUserParams {
businessId: string;
email: string;
roleId: string;
}
interface HandleInvitationParams {
businessId: string;
token: string;
accept: boolean;
}
E-shop API Types
Products
interface CreateProductParams {
key: string;
description?: string;
audienceIds?: string[];
blocks?: any[];
taxonomies?: any[];
variants?: any[];
status?: Status; // 'active' | 'archived'
[key: string]: any;
}
interface UpdateProductParams {
id: string;
key?: string;
description?: string;
audienceIds?: string[];
blocks?: any[];
taxonomies?: any[];
variants?: any[];
status?: Status;
[key: string]: any;
}
interface GetProductParams {
id?: string;
slug?: string;
}
interface GetProductsParams {
ids?: string[];
taxonomyQuery?: any[];
status?: string;
statuses?: string[];
query?: string;
limit?: number;
cursor?: string;
sortField?: string;
sortDirection?: string;
createdAtFrom?: number | null;
createdAtTo?: number | null;
}
Orders
interface EshopItem {
productId: string;
variantId: string;
quantity: number;
}
interface GetQuoteParams {
items: EshopItem[];
paymentMethodId?: string;
shippingMethodId?: string;
promoCode?: string;
blocks?: any[];
location?: ZoneLocation;
}
interface OrderCheckoutParams {
items: EshopItem[];
paymentMethodId?: string;
blocks?: any[];
shippingMethodId: string;
promoCodeId?: string;
shippingAddress?: Address;
billingAddress?: Address;
}
interface UpdateOrderParams {
id: string;
status: string;
blocks: any[];
items: any[];
address?: any | null;
billingAddress?: any | null;
payment?: any | null;
}
interface GetOrdersParams {
statuses?: string[] | null;
productIds?: string[];
query?: string | null;
limit?: number | null;
cursor?: string | null;
sortField?: string | null;
sortDirection?: string | null;
createdAtFrom?: string | null;
createdAtTo?: 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 {
businessId?: string;
key: string;
parentId?: string | null;
blocks?: any[];
filters?: any[];
slug?: Record<string, string>;
audienceIds?: string[];
status?: string; // 'active' | 'archived'
}
interface UpdateNodeParams {
id: string;
businessId?: string;
key?: string;
parentId?: string | null;
blocks?: any[];
filters?: any[];
slug?: Record<string, string>;
audienceIds?: string[];
status?: string;
}
interface GetNodeParams {
id?: string;
slug?: string;
key?: string;
businessId?: string;
}
interface GetNodesParams {
businessId?: string;
parentId?: string;
ids?: string[];
query?: string;
type?: string;
key?: string;
statuses?: string[];
limit?: number;
cursor?: string;
sortField?: string;
sortDirection?: string;
createdAtFrom?: string;
createdAtTo?: string;
}
Forms
interface CreateFormParams {
businessId?: string;
key: string;
schema?: any[]; // FormSchema[]
}
interface UpdateFormParams {
id: string;
businessId?: string;
key?: string;
schema?: any[];
status?: string;
}
interface SubmitFormParams {
formId: string;
businessId?: string;
fields: any[]; // FormField[]
}
Customers
interface CreateCustomerParams {
businessId?: string;
email: string;
blocks?: Block[];
taxonomies?: TaxonomyEntry[];
}
interface UpdateCustomerParams {
id: string;
businessId?: string;
emails?: string[];
blocks?: Block[];
taxonomies?: TaxonomyEntry[];
status?: 'active' | 'archived';
}
Audiences
Audiences live under sdk.crm.audiences.*.
interface CreateAudienceParams {
key: string;
type?: AudienceType;
confirmTemplateId?: string;
}
interface UpdateAudienceParams {
id: string;
key?: string;
status?: Status;
confirmTemplateId?: string;
}
interface GetAudiencesParams {
ids?: string[];
status?: string;
query?: string;
limit?: number;
cursor?: string;
}
interface SubscribeAudienceParams {
id: string;
customerId: string;
priceId?: string;
successUrl?: string;
cancelUrl?: string;
confirmUrl?: string;
}
Booking API Types
Services
interface CreateServiceParams {
businessId?: string;
key: string;
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface UpdateServiceParams {
id: string;
businessId?: string;
key?: string;
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface GetServiceParams {
id?: string;
slug?: string;
businessId?: string;
}
interface GetServicesParams {
businessId?: string;
providerId?: string;
taxonomyQuery?: any[];
ids?: string[];
query?: string;
statuses?: string[];
limit?: number;
cursor?: string;
sortField?: string;
sortDirection?: string;
}
Providers
interface CreateProviderParams {
businessId?: string;
key: string;
audienceIds?: string[];
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface UpdateProviderParams {
id: string;
businessId?: string;
key?: string;
audienceIds?: string[];
blocks?: any[];
taxonomies?: any[];
status?: Status;
[key: string]: any;
}
interface GetProvidersParams {
businessId?: string;
serviceId?: string;
taxonomyQuery?: any[];
ids?: string[];
query?: string | null;
statuses?: string[] | null;
limit?: number;
cursor?: string;
sortField?: string | null;
sortDirection?: string | null;
createdAtFrom?: string | null;
createdAtTo?: string | null;
}
Service Providers
interface CreateServiceProviderParams {
businessId?: string;
serviceId: string;
providerId: string;
workingDays: WorkingDay[];
specificDates: SpecificDate[];
prices?: any[];
durations?: any[];
slotInterval: number;
}
interface UpdateServiceProviderParams {
businessId?: string;
id: string;
workingDays: WorkingDay[];
specificDates: SpecificDate[];
prices?: any[];
durations?: any[];
slotInterval: number;
}
Availability
interface GetAvailabilityParams {
businessId?: string;
serviceId: string;
month: string; // YYYY-MM
providerId?: string;
}
Bookings
interface CreateBookingParams {
businessId?: string;
[key: string]: any;
}
interface UpdateBookingParams {
id: string;
status?: string;
forms?: any;
parts?: any;
payment?: any | null;
[key: string]: any;
}
interface GetBookingParams {
id: string;
businessId?: string;
}
interface SearchBookingsParams {
businessId?: string;
query?: string;
serviceIds?: string[];
providerIds?: string[];
from?: number;
to?: number;
status?: string;
limit?: number;
cursor?: string;
sortField?: string;
sortOrder?: string;
}
interface BookingQuoteItem {
serviceId: string;
providerId: string;
slots: SlotRange[];
}
interface SlotRange {
from: number;
to: number;
}
interface GetBookingQuoteParams {
businessId?: string;
items: BookingQuoteItem[];
paymentMethodId?: string;
promoCode?: string;
location?: ZoneLocation;
}
interface BookingCheckoutParams {
businessId?: string;
items: any[];
paymentMethodId?: string;
forms?: any[];
promoCodeId?: string;
location?: ZoneLocation;
}
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>;
}