Client API Reference

Client API Reference

Client API Reference

Documentation for the @audelabs/formic-client package.

Core API

FormicConfig

Configuration options for the Formic client.

interface FormicConfig {
  /** Your Formic API key */
  apiKey: string;
  /** Your form slug identifier */
  slug: string;
  /** Optional base URL for the Formic API (defaults to https://api.audelabs.com) */
  baseUrl?: string;
}

FormicClient

The main client class for handling form submissions.

import { FormicClient } from '@audelabs/formic-client';

const client = new FormicClient({
  apiKey: 'your-api-key',
  slug: 'your-form-slug'
});

Constructor

new FormicClient(config: FormicConfig)

Methods

handleProxyRequest(request: Request): Promise

Forwards a browser request to the Formic API. This should only be called from a server environment.

Parameters:

  • request - The incoming request object

Returns: A Response object with the Formic API response

submit(data: Record<string, unknown>): Promise

Submits form data directly to the Formic API.

Parameters:

  • data - The form data to submit as a key-value object

Returns: A submission result containing submission_id and status

getSchema(): Promise

Retrieves the form schema for the configured slug.

getApiKey(): string

Gets the API key used by this client.

Returns: The API key

getSlug(): string

Gets the form slug used by this client.

Returns: The form slug

getBaseUrl(): string

Gets the base URL used by this client.

Returns: The base URL

Framework Adapters

Astro Adapter

import { handleFormicRequest } from '@audelabs/formic-client/adapters/astro';

export const POST = handleFormicRequest({
  apiKey: import.meta.env.FORMIC_API_KEY,
  slug: 'my-form'
});

Functions:

  • handleFormicRequest(options: AstroFormicOptions) - Creates an Astro API route handler
  • createFormicClient(config: FormicConfig) - Creates a FormicClient for Astro

Next.js Adapter

import { handleFormicRequest } from '@audelabs/formic-client/adapters/next';

export const POST = handleFormicRequest({
  apiKey: process.env.FORMIC_API_KEY!,
  slug: 'my-form'
}).POST;

Functions:

  • handleFormicRequest(options: NextFormicOptions) - Creates a Next.js route handler
  • createFormicClient(config: FormicConfig) - Creates a FormicClient for Next.js

Remix Adapter

import { handleFormicRequest } from '@audelabs/formic-client/adapters/remix';

export const action = handleFormicRequest({
  apiKey: process.env.FORMIC_API_KEY!,
  slug: 'my-form'
});

Functions:

  • handleFormicRequest(options: RemixFormicOptions) - Creates a Remix action handler
  • createFormicClient(config: FormicConfig) - Creates a FormicClient for Remix

Quick Reference

FunctionFrameworkUsage
handleFormicRequestAstroAPI route handler
handleFormicRequestNext.jsAPI route (.POST)
handleFormicRequestRemixAction handler
createClientAnyCreate client instance

Type Definitions

All types are exported from the main package:

import { 
  FormicClient, 
  FormicConfig,
  createClient
} from '@audelabs/formic-client';

Adapter option types are exported by their adapter entrypoints:

import type { AstroFormicOptions } from '@audelabs/formic-client/adapters/astro';
import type { NextFormicOptions } from '@audelabs/formic-client/adapters/next';
import type { RemixFormicOptions } from '@audelabs/formic-client/adapters/remix';