---
title: "Execute job"
description: "Runs a billable job by action name and parameters, deducting credits accordingly."
---

> Documentation Index
> Fetch the complete documentation index at: https://staging.threadapi.dev/llms.txt
> Use this file to discover all available pages before exploring further.

Path: ThreadAPI API › Jobs

`POST /api/v1/jobs/execute`

Runs a billable job by action name and parameters, deducting credits accordingly.

## Authentication

Requires one of the following:

- `bearerAuth`, http, header `Authorization`
- `apiKeyAuth`, apiKey, in header, header `x-api-key`

## Request body

_Required._

- `action` (`executeJob.action`; string, required) — Name of the job action to execute
  - one of `"transcribe_video_summary"`, `"generate_embeddings_batch"`, `"dispatch_webhook_event"`; example `"generate_embeddings_batch"`
- `params` (`executeJob.params`; object, optional) — Arbitrary parameters for the job action
  - example `{}`

## Example request

```json
{
  "action": "generate_embeddings_batch",
  "params": {}
}
```

## Code samples

### cURL

```bash
curl --request POST \
  --url https://api.threadapi.dev/api/v1/jobs/execute \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "action": "generate_embeddings_batch",
  "params": {}
}
'
```

### TypeScript

```typescript
const url = 'https://api.threadapi.dev/api/v1/jobs/execute';
const options = {
  method: 'POST',
  headers: {'Content-Type': 'application/json', Authorization: 'Bearer <token>'},
  body: JSON.stringify({action: 'generate_embeddings_batch', params: {}})
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.threadapi.dev/api/v1/jobs/execute"

payload = {
    "action": "generate_embeddings_batch",
    "params": {}
}
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer <token>"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Job executed successfully

#### Example

```json
{
  "success": true,
  "action": "generate_embeddings_batch",
  "credits_deducted": 10,
  "remaining_credits": 90,
  "processed_at": "2026-10-23T12:00:00Z",
  "output": "Job completed successfully by core-go engine"
}
```

- `success` (`executeJob.response.200.success`; boolean, required)
  - example `true`
- `action` (`executeJob.response.200.action`; string, required)
  - example `"generate_embeddings_batch"`
- `credits_deducted` (`executeJob.response.200.credits_deducted`; integer, required)
  - example `10`
- `remaining_credits` (`executeJob.response.200.remaining_credits`; integer, required)
  - example `90`
- `processed_at` (`executeJob.response.200.processed_at`; string, required)
  - format `date-time`; example `"2026-10-23T12:00:00Z"`
- `output` (`executeJob.response.200.output`; string, required)
  - example `"Job completed successfully by core-go engine"`

### 400

Bad request (invalid parameter or unknown action)

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

One of:

- `ErrorResponse`
- `Error`

### 401

Missing or invalid API key or OAuth access token

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

One of:

- `ErrorResponse`
- `Error`

### 402

Insufficient credit balance to execute the requested job

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

- `error` (`executeJob.response.402.error`; string, required) — Human-readable error message
  - example `"unauthorized: missing or invalid credentials"`
- `error_code` (`executeJob.response.402.error_code`; string, optional) — Machine-readable error code. Known values include: forbidden_scope, rate_limited, daily_quota_exceeded, insufficient_credits, duplicate_transaction. Additional codes may be introduced in future releases.
  - one of `"forbidden_scope"`, `"rate_limited"`, `"daily_quota_exceeded"`, `"insufficient_credits"`, `"duplicate_transaction"`; example `"insufficient_credits"`

### 403

Insufficient permissions or scope for this endpoint

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

One of:

- `ErrorResponse`
- `Error`

### 404

Requested user or resource not found

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

One of:

- `ErrorResponse`
- `Error`

### 409

Conflict (e.g. duplicate transaction or idempotent request collision)

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

- `error` (`executeJob.response.409.error`; string, required) — Human-readable error message
  - example `"unauthorized: missing or invalid credentials"`
- `error_code` (`executeJob.response.409.error_code`; string, optional) — Machine-readable error code. Known values include: forbidden_scope, rate_limited, daily_quota_exceeded, insufficient_credits, duplicate_transaction. Additional codes may be introduced in future releases.
  - one of `"forbidden_scope"`, `"rate_limited"`, `"daily_quota_exceeded"`, `"insufficient_credits"`, `"duplicate_transaction"`; example `"insufficient_credits"`

### 429

Rate limit or daily request quota exceeded

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

One of:

- `ErrorResponse`
- `Error`

### 500

Internal server error

#### Example

```json
{
  "error": "unauthorized: missing or invalid credentials",
  "error_code": "insufficient_credits"
}
```

- `error` (`executeJob.response.500.error`; string, required) — Human-readable error message
  - example `"unauthorized: missing or invalid credentials"`
- `error_code` (`executeJob.response.500.error_code`; string, optional) — Machine-readable error code. Known values include: forbidden_scope, rate_limited, daily_quota_exceeded, insufficient_credits, duplicate_transaction. Additional codes may be introduced in future releases.
  - one of `"forbidden_scope"`, `"rate_limited"`, `"daily_quota_exceeded"`, `"insufficient_credits"`, `"duplicate_transaction"`; example `"insufficient_credits"`


Source: https://staging.threadapi.dev/api/Jobs/executeJob/index.md
