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

# Introduction

> The Intelliprint API is flexible and powerful. You can send letters and postcards, cancel them, track their status and more. The API is organised around [REST](https://w.wiki/4YH8).

## Sending Your First Letter

<Steps>
  <Step title="1. Get an API Key" icon="key">
    All Intelliprint accounts can create an API key in the [API Keys](https://account.intelliprint.net/api_keys) section of their account. API keys are displayed only once when they are created. We do not store them.

    In case you don't already have an account, [creating one](https://account-v2.intelliprint.net/applications/new) is free and takes just a minute.
  </Step>

  <Step title="2. Choose an SDK" icon="code">
    Intelliprint maintains SDKs for the most popular programming languages. In case you didn't find one for your language, you can refer to our [OpenAPI specification](/api) and our cURL examples to build your own.

    #### Install an SDK

    ```bash Node.js SDK theme={null}
    npm install intelliprint
    ```
  </Step>

  <Step title="3. Send Your Letter" icon="send">
    <CodeGroup>
      ```javascript Node.js SDK theme={null}
      import Intelliprint from 'intelliprint'

      const ip = new Intelliprint('your-api-key-here')

      const printJob = await ip.prints.create({
        type: 'letter',
        content: 'Hello World!\nThis is a letter!',
        recipients: [{
          address: {
            name: 'John Doe',
            line: '123 Main Street, Anytown, Anyplace',
            postcode: 'AB1 2CD',
            country: 'GB'
          }
        }],
        confirmed: false //Set to 'true' when you're ready to start submitting mail for printing.
      })

      console.log('Print job created:', printJob.id)
      ```

      ```bash cURL theme={null}
      curl -X POST https://api.intelliprint.net/v1/prints \
        -H 'Authorization: YOUR_API_KEY' \
        -d 'type=letter' \
        -d 'content=Hello World!\nThis is a letter!' \
        -d 'recipients[0][address][name]=John Doe' \
        -d 'recipients[0][address][line]=123 Main Street, Anytown, Anyplace' \
        -d 'recipients[0][address][postcode]=AB1 2CD' \
        -d 'recipients[0][address][country]=GB' \
        -d 'confirmed=false'
      ```
    </CodeGroup>

    You can review the parameters available for this endpoint in the [API Reference](/api#tag/prints/POST/prints).
  </Step>
</Steps>

## Switching to a Postcard

You can send postcards instead of letters by setting the `type` parameter to `postcard`.

<CodeGroup>
  ```javascript Node.js SDK theme={null}
  import Intelliprint from 'intelliprint'

  const ip = new Intelliprint('your-api-key-here')

  const printJob = await ip.prints.create({
    type: 'postcard',  // [!code ++]
    content: 'Hello World!\nThis is now a postcard!',
    recipients: [{
      address: {
        name: 'John Doe',
        line: '123 Main Street, Anytown, Anyplace',
        postcode: 'AB1 2CD',
        country: 'GB'
      }
    }],
    confirmed: false //Set to 'true' when you're ready to start submitting mail for printing.
  })

  console.log('Print job created:', printJob.id)
  ```

  ```bash cURL theme={null}
  curl -X POST https://api.intelliprint.net/v1/prints \
    -H 'Authorization: YOUR_API_KEY' \
    -d 'type=postcard' \
    -d 'content=Hello World!\nThis is now a postcard!' \
    -d 'recipients[0][address][name]=John Doe' \
    -d 'recipients[0][address][line]=123 Main Street, Anytown, Anyplace' \
    -d 'recipients[0][address][postcode]=AB1 2CD' \
    -d 'recipients[0][address][country]=GB' \
    -d 'confirmed=false'
  ```
</CodeGroup>

## Next Steps

Now that you've sent your first letter or postcard, it's time to choose how you want to send items in production. For that, open the [Choose a Content Strategy](/get-started/choose-a-content-strategy) page to learn more.
