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

# Sync vs Async Processing

> Decide when to run work synchronously or as a job by comparing turnaround, timeouts, limits, and credits per service tier.

## Sync vs Async

The v2 APIs give you two ways to run parsing and extraction work:

* **Synchronous**: Call [Parse](./parse) or [Extract](./extract) and get the result in the response.
* **Asynchronous**: Create a [Parse Job](./parse-async) or [Extract Job](./extract-async) and collect the result when the job finishes.

## Service Tiers

Every request runs on a service tier: `priority` or `standard`.

* The tier controls the turnaround time, the credit consumption rate, and which rate limit the request draws from.
* The tier does not change the supported file size or the number of pages allowed per file.
* Synchronous requests always run on the `priority` tier.
* Jobs run on the `standard` tier by default. Set the `service_tier` parameter to run a job on the `priority` tier.

## Choose a Processing Mode and Service Tier

Use the table to choose the right call for your workload. Turnaround times are estimates, not guaranteed speeds. Rate limit values depend on your pricing plan; for the values and how each API meters usage, see [Rate Limits](./rate-limits). For per-page credit rates, see [Credit Consumption](./credit-consumption).

<table className="tier-table">
  <thead>
    <tr>
      <th />

      <th>Parse and Extract (synchronous)</th>
      <th colspan="2">Parse Jobs and Extract Jobs (asynchronous)</th>
    </tr>

    <tr>
      <th>Service tier</th>
      <th colspan="2">Priority</th>
      <th>Standard (default)</th>
    </tr>
  </thead>

  <tbody>
    <tr>
      <td><strong>Best for</strong></td>
      <td>Interactive workflows: a person or agent is waiting on the result</td>
      <td>Time-sensitive work that a synchronous request can't handle: larger documents, or when you don't want to hold a connection open</td>
      <td>Work with no one waiting: automated pipelines, background agent steps, scheduled ingestion</td>
    </tr>

    <tr>
      <td><strong>How you get the result</strong></td>
      <td>Inline in the response</td>
      <td>Poll the job, or save the output to a URL</td>
      <td>Poll the job, or save the output to a URL</td>
    </tr>

    <tr>
      <td><strong>Estimated turnaround time</strong></td>
      <td>Seconds to minutes</td>
      <td>Seconds to minutes</td>
      <td>Minutes to hours</td>
    </tr>

    <tr>
      <td><strong>Timeout limit</strong></td>
      <td>475 seconds</td>
      <td>6 hours</td>
      <td>6 hours</td>
    </tr>

    <tr>
      <td><strong>Credit consumption</strong></td>
      <td>Full rate</td>
      <td>Full rate</td>
      <td>Half the <code>priority</code> rate</td>
    </tr>

    <tr>
      <td><strong>Parse limits per request</strong></td>
      <td>100 pages; 50 MiB</td>
      <td>6,000 pages; 1 GiB for PDFs, 50 MiB for images</td>
      <td>6,000 pages; 1 GiB for PDFs, 50 MiB for images</td>
    </tr>

    <tr>
      <td><strong>Parse rate limit</strong></td>
      <td>Per-minute limit</td>
      <td>Hourly limit; replenishes continuously</td>
      <td>Hourly limit; resets each hour</td>
    </tr>

    <tr>
      <td><strong>Extract limits per request</strong></td>
      <td>No input size limit</td>
      <td>No input size limit</td>
      <td>No input size limit</td>
    </tr>

    <tr>
      <td><strong>Extract rate limit</strong></td>
      <td>Based on your plan and the input Markdown size</td>
      <td>None: jobs are accepted immediately and paced internally</td>
      <td>None: jobs are accepted immediately and paced internally</td>
    </tr>
  </tbody>
</table>

## Set the Service Tier

[Parse](./parse) and [Extract](./extract) do not accept the `service_tier` parameter. To run a [Parse Job](./parse-async) or an [Extract Job](./extract-async) on the `priority` tier, set the `service_tier` parameter when you create the job.

```bash highlight={4} theme={null}
curl -X POST 'https://api.ade.landing.ai/v2/parse/jobs' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -F 'document=@document.pdf' \
  -F 'service_tier=priority'
```

## Confirm the Service Tier

To confirm which tier a request ran on, check `metadata.billing.service_tier` in the response. See [Parse API Response](./parse-response#metadata) and [Extract API Response](./extract-response#request-metadata-metadata).
