# Create Document Transcription Task — Scale AI

> Create a document transcription task. See the documentation

- Key: `scale_ai-create-document-transcription-task`
- Type: Action (Write)
- Version: 0.0.3
- App: Scale AI (`scale_ai`) — https://pipedream.com/apps/scale-ai.md
- This page (HTML): https://pipedream.com/apps/scale-ai/actions/create-document-transcription-task
- Hints: open-world
- Source: https://github.com/PipedreamHQ/pipedream/blob/master/components/scale_ai/actions/create-document-transcription-task/create-document-transcription-task.mjs

## Description

Create a document transcription task. [See the documentation](https://docs.scale.com/reference/document-transcription-1)

## Props

| Prop | Type | Required | Description |
|---|---|---|---|
| `project` | `string` | No | The name of the project to associate this task with. Options are loaded from the connected account. |
| `instruction` | `string` | No | A markdown-enabled string or iframe embedded Google Doc explaining how to do the task. You can use markdown to show example images, give structure to your instructions, and more. See our instruction best practices for more details. For Scale Rapid projects, DO NOT set this field unless you specifically want to override the project level instructions. |
| `callbackUrl` | `string` | No | The full url (including the scheme http:// or https://) or email address of the callback that will be used when the task is completed. |
| `attachment` | `string` | No | The url of the attachment of the data to be collected. We will use the HTTP content type to determine the type of the attachment. Either Attachment or Attachments is required. You can supply attachments instead of attachment if needed. |
| `attachments` | `string[]` | No | Used instead of Attachment - The urls of a multi-page document. Either Attachment or Attachments is required. |
| `lang` | `string` | No | Language of the attachment. Defaults to en-U. |
| `geometry` | `string` | No | Geometry type for the annotations. Supported values are box for axis-aligned rectangles or polygon for rotated rectangles. Defaults to box. |
| `uniqueId` | `string` | No | A arbitrary ID that you can assign to a task and then query for later. This ID must be unique across all projects under your account, otherwise the task submission will be rejected. See Avoiding Duplicate Tasks for more details. |
| `numberOfFeatures` | `integer` | Yes | The number of features to be collected. Defaults to 1. |

## Run it

**MCP**

```ts
import { Client } from "@modelcontextprotocol/sdk/client/index.js"
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js"
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const accessToken = await pd.rawAccessToken

const transport = new StreamableHTTPClientTransport(
  new URL("https://remote.mcp.pipedream.net/v3"),
  {
    requestInit: {
      headers: {
        Authorization: `Bearer ${accessToken}`,
        "x-pd-project-id": process.env.PIPEDREAM_PROJECT_ID!,
        "x-pd-environment": "production",
        "x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
        "x-pd-app-slug": "scale_ai",
      },
    },
  },
)

const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)

const { tools } = await mcp.listTools()

// listTools() hands your model this tool's input schema, so it can
// fill the arguments itself:
const result = await mcp.callTool({
  name: "scale_ai-create-document-transcription-task",
  arguments: {
    project: "Project",
    instruction: "Instruction",
  },
})
```

**TypeScript**

```ts
import { PipedreamClient } from "@pipedream/sdk"

const pd = new PipedreamClient({
  projectId: process.env.PIPEDREAM_PROJECT_ID!,
  clientId: process.env.PIPEDREAM_CLIENT_ID!,
  clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
  projectEnvironment: "production",
})

const result = await pd.actions.run({
  id: "scale_ai-create-document-transcription-task",
  externalUserId: "{external_user_id}", // any stable ID for this user in your system
  configuredProps: {
    scale_ai: { authProvisionId: "apn_xxxxxxx" },
    project: "Project",
    instruction: "Instruction",
  },
})

console.log(result)
```

**cURL**

```bash
curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
  -H "Content-Type: application/json" \
  -H "X-PD-Environment: production" \
  -H "Authorization: Bearer {access_token}" \
  -d '{
    "external_user_id": "{external_user_id}",
    "id": "scale_ai-create-document-transcription-task",
    "configured_props": {
      "scale_ai": { "authProvisionId": "apn_xxxxxxx" },
      "project": "Project",
      "instruction": "Instruction"
    }
  }'
```

---

- App: https://pipedream.com/apps/scale-ai.md · All apps: https://pipedream.com/apps
