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

# Requests and responses

> Understand the base URL, headers, success responses, and pagination shared by every Jobin API action.

Every Jobin API action follows the same conventions. Read this page once, then use the action pages for the exact fields.

## Base URL

Append each action's path to this base URL:

```text theme={null}
https://my.jobin.cloud/api/openapi/v1
```

## Headers

Send your [API key](/api-reference/authentication.md) with every request. Add `Content-Type` when the request has a JSON body.

```http theme={null}
x-api-key: <your API key>
Content-Type: application/json
```

## Success responses

| Status | Meaning |
| - | - |
| `200` | The request completed and returned a result, such as a read, an update, or a removal. |
| `201` | Jobin created something new, such as an imported contact, a note, a tag, a document, or a task. |
| `202` | Jobin queued the work and will finish it in the background. Adding contacts to a sequence always responds this way; enrichment can too. |

After a `202`, check the contact or the [operations](/api-reference/operations.md) for the result.
For error responses and retries, see [integration guidelines](/development.md).

## Identifiers

Actions that work on one record take its identifier in the path. Keep the identifiers that earlier responses return,
such as `contactId` and `campaignId`, and reuse them in later requests.
The [introduction](/api-reference/introduction.md#terms-you-will-see) lists the terms you will see.

## Pagination

List actions return one page at a time. Most use `page` (starting at `1`, up to `100`) and `limit`.

| Action | Default `limit` | Maximum `limit` |
| - | - | - |
| [List contacts](/api-reference/contacts/list-contacts.md) | 25 | 100 |
| [List contact tasks](/api-reference/contacts/list-contact-tasks.md) | 25 | 100 |
| [List campaigns](/api-reference/campaigns/list-campaigns.md) | 25 | 25 |
| [List operations](/api-reference/operations.md) | 25 | 25 |
| [List contact tags](/api-reference/contacts/list-contact-tags.md) | 100 | 500 |
| [Download contact events](/api-reference/contacts/download-contact-events.md) | 10 | 20 |

A few lists work differently:

* **Contacts beyond page 100.** Page numbers stop at `100`. To keep going, send the `nextCursor` value from the
  previous response as the `cursor` query parameter. `nextCursor` is `null` when there are no more contacts.
* **Counts.** Contact and campaign lists only include a `total` when you send `includeTotal=true`.
  Request it only when you need the count; contact lists with a count have a lower [rate limit](/development.md#rate-limits).
* **Contact events.** Events have no page number. Send `beforeDate` to read events created before that timestamp.
* **Contact tags.** Tags have no page number. Use `limit` to choose how many to return.

## Next steps

> **[Integration guidelines](/development.md)**
>
> Handle errors, retries, background work, and rate limits.

> **[OpenAPI specification](/api-reference/openapi.md)**
>
> Give your tool or assistant the exact request definitions.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.