> ## 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.
* All `priority` work (synchronous requests and `priority` jobs) counts against one shared per-minute rate limit. A document with more pages than that per-minute limit cannot run on the `priority` tier. Run it as a `standard` job instead. See [Rate Limits](./rate-limits#run-large-documents-as-async-jobs-on-the-standard-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: files over the synchronous size cap, 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, and the largest documents</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>6,000 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>Largest single document (Parse)</strong></td>
      <td colspan="2">Your plan's per-minute page limit: 100 pages (Explore), 200 (Team). Enterprise limits are custom.</td>
      <td>6,000 pages</td>
    </tr>

    <tr>
      <td><strong>Parse rate limit</strong></td>
      <td colspan="2">Per-minute limit shared across all <code>priority</code> work, refilling continuously</td>
      <td>Hourly limit, resetting 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).
