> ## Documentation Index
> Fetch the complete documentation index at: https://docs.legitmark.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Getting Started

> Integration workflow for Legitmark's authentication platform.

## Overview

Legitmark provides authentication APIs for partners who intend to use Legitmark programmatically in their workflows. The integration enables access to Legitmark's highly capable workflows, processes and authentication through a structured workflow that captures requirements upfront and provides real-time results.

## Setup

<Steps>
  <Step title="Get set up as an organization">
    If you have a Legitmark account but need to be set up as an organization, contact [**accounts@legitmark.com**](mailto:accounts@legitmark.com) to discuss more. If you don't have an account yet, they can get you started.
  </Step>

  <Step title="Create an API key">
    Go to [**Developer Settings**](https://app.legitmark.com/settings/developer) and create a new API key. Keys use the format `leo_xxx` and are used to authenticate all API requests.
  </Step>

  <Step title="Add a webhook destination (optional)">
    In [**Developer Settings**](https://app.legitmark.com/settings/developer), add a webhook destination with your HTTPS endpoint URL to receive real-time notifications when authentication completes, images are rejected, or requests are cancelled.

    Don't have an endpoint ready? Use [Svix Play](https://play.svix.com/) to generate a temporary URL for testing.
  </Step>

  <Step title="Install the SDK">
    ```bash theme={null}
    npm install legitmark
    ```
  </Step>
</Steps>

## TypeScript SDK

The fastest way to integrate is with the official [TypeScript SDK](https://github.com/legitmark-eng/legitmark-typescript):

```typescript theme={null}
import { Legitmark } from 'legitmark';

const legitmark = new Legitmark('leo_your_api_key');

// service is optional — auto-resolved if omitted
const { sr } = await legitmark.sr.create({
  item: { category: 'category-uuid', type: 'type-uuid', brand: 'brand-uuid' },
});

await legitmark.images.uploadForSide(sr.uuid, sideUuid, './photo.jpg');
await legitmark.sr.submit(sr.uuid);
```

The SDK includes full TypeScript types, automatic retries, and handles the complete authentication workflow — including [typed webhook event handling](/webhook-reference/handling) for processing results. See the [SDK documentation](https://github.com/legitmark-eng/legitmark-typescript) for detailed usage.

## Integration Guide

<CardGroup cols={2}>
  <Card title="Authentication" href="/partner/authentication" icon="key">
    API key usage, rate limits, and security best practices
  </Card>

  <Card title="Taxonomy" href="/partner/taxonomy" icon="sitemap">
    Understanding Legitmark's classification system and mapping strategies
  </Card>

  <Card title="Workflow" href="/partner/workflow" icon="arrow-down-arrow-up">
    Step-by-step process from service request creation to submission
  </Card>

  <Card title="States" href="/partner/service-request-states" icon="list-check">
    Service request states and workflow transitions
  </Card>
</CardGroup>

## Quick Reference

<CardGroup cols={2}>
  <Card title="API Reference" href="/api-reference/introduction" icon="code">
    Test all endpoints with live authentication and detailed specifications
  </Card>

  <Card title="Webhook Reference" href="/webhook-reference/introduction" icon="webhook">
    Real-time webhook notifications and status update handling
  </Card>
</CardGroup>
