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 handlercreateFormicClient(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 handlercreateFormicClient(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 handlercreateFormicClient(config: FormicConfig)- Creates a FormicClient for Remix
Quick Reference
| Function | Framework | Usage |
|---|---|---|
handleFormicRequest | Astro | API route handler |
handleFormicRequest | Next.js | API route (.POST) |
handleFormicRequest | Remix | Action handler |
createClient | Any | Create 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';