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

# Action Items

<AccordionGroup>
  <Accordion title="Supported regions">
    US & EU <br />
  </Accordion>
</AccordionGroup>

Generate action items of your audio transcripts w/ timestamps and a quote of where the action item is from.

<Note>
  Action items is in open beta. Provide us feedback if results are not as good as expected.
</Note>

## Quickstart

Single call in async transcription:

<Tabs groupId="language">
  <Tab language="python" title="Python" default>
    ```python expandable theme={null}
    import requests
    import time

    base_url = "https://api.assemblyai.com"
    headers = {"authorization": "<YOUR_API_KEY>"}

    audio_url = "https://assembly.ai/wildfires.mp3"

    data = {
        "audio_url": audio_url,
        "speech_understanding": {
            "request": {
                "action_items": {}
            }
        }
    }

    response = requests.post(base_url + "/v2/transcript", json=data, headers=headers)
    transcript_id = response.json()['id']
    polling_endpoint = base_url + "/v2/transcript/" + transcript_id

    while True:
        transcription_result = requests.get(polling_endpoint, headers=headers).json()
        if transcription_result['status'] == 'completed':
            break
        elif transcription_result['status'] == 'error':
            raise RuntimeError(f"Transcription failed: {transcription_result['error']}")
        else:
            time.sleep(3)

    print(transcription_result["speech_understanding"]["response"]["action_items"])

    ```
  </Tab>

  <Tab language="javascript" title="JavaScript">
    ```javascript expandable theme={null}
    const baseUrl = "https://api.assemblyai.com";

    const headers = {
      authorization: "<YOUR_API_KEY>",
      "content-type": "application/json",
    };

    // Step 1: Transcribe your audio file
    const audioUrl = "https://assembly.ai/wildfires.mp3";

    const data = {
      audio_url: audioUrl,
      speech_understanding: {
        request: {
          action_items: {}
        }
      }
    };

    const response = await fetch(`${baseUrl}/v2/transcript`, {
      method: "POST",
      headers,
      body: JSON.stringify(data),
    });

    const { id: transcriptId } = await response.json();
    const pollingEndpoint = `${baseUrl}/v2/transcript/${transcriptId}`;

    let transcriptionResult;
    while (true) {
      const pollingResponse = await fetch(pollingEndpoint, { headers });
      transcriptionResult = await pollingResponse.json();

      if (transcriptionResult.status === "completed") {
        break;
      } else if (transcriptionResult.status === "error") {
        throw new Error(`Transcription failed: ${transcriptionResult.error}`);
      } else {
        await new Promise((resolve) => setTimeout(resolve, 3000));
      }
    }

    console.log(transcriptionResult.speech_understanding.response.action_items)
    ```
  </Tab>
</Tabs>

### Example output

```plain theme={null}
{
    "effort": "low",
    "items": [
      {
        "action_item": "Observe the expansion and contraction of the Arctic ice cap throughout the seasons.",
        "quote": "The Arctic ice cap is in a sense the beating heart of the global climate system. It expands in winter and contracts in summer.",
        "timestamp": 9520
      },
      {
        "action_item": "Analyze a fast-forwarded visualization of the Arctic ice cap's changes over the last 25 years.",
        "quote": "The next slide I show you will be a rapid fast forward of what's happened over the last 25 years.",
        "timestamp": 17680
      },
      {
        "action_item": "Examine the reduction of permanent Arctic ice (five years old or older).",
        "quote": "And the so called permanent ice, five years old or older, you can see it's almost like blood spilling out of the body here. In 25 years it's gone from this to this.",
        "timestamp": 32950
      },
      {
        "action_item": "Recognize the issue of warming heating frozen ground around the Arctic Ocean.",
        "quote": "This is a problem because the warming heats up the frozen ground around the Arctic Ocean",
        "timestamp": 46070
      },
      {
        "action_item": "Understand that thawing frozen carbon in the Arctic is converted to methane by microbes.",
        "quote": "where there is a massive amount of frozen carbon which when it thaws is turned into methane by microbes compared to the.",
        "timestamp": 52390
      }
    ],
    "status": "success"
}
```

## Customize your Action Items

You can control the action items output by adjusting the params.

### Include decisions

You can set the `include_decisions` param to `true` which will configure the call to include decisions made within the
text as action items.

### Effort

The `effort` param lets you determine whether to spend more processing power to get higher quality action items.

Currently there are two options: `low` which is the default, and `medium`.

Action items is not a high precision task, so generally the default `low` effort will be sufficient.

### When to use medium

Sometimes you have a use case where you need to make sure specific details are captured, or you have more
challenging topics to extract action items form. In these cases `medium` `effort` will more intelligently parse out
important details.

Examples:

* important meetings where missed details are significant
* multi-lingual texts where it's important to capture all languages
* very long audio, generally 1.5h and longer
