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

# List Project Jobs

> List all jobs within a project.

Requires an API key with `read_only` or `full_access` scope.

Returns a paginated list of jobs for a project. Results are returned in pages of up to 50 jobs.

## Path parameters

<ParamField path="projectId" type="string" required>
  The unique identifier of the project.
</ParamField>

## Query parameters

<ParamField query="cursor" type="string">
  Pagination cursor from a previous response. Omit for the first page.
</ParamField>

## Response

<ResponseField name="jobs" type="object[]">
  Array of job objects.

  <Expandable title="job object">
    <ResponseField name="id" type="string">
      Job ID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Job name.
    </ResponseField>

    <ResponseField name="description" type="string | null">
      Job description.
    </ResponseField>

    <ResponseField name="type" type="string">
      Job type (e.g. `drone_inspection`, `thermal_inspection`).
    </ResponseField>

    <ResponseField name="status" type="string">
      Job status.
    </ResponseField>

    <ResponseField name="priority" type="string">
      Priority level (`low`, `medium`, or `high`).
    </ResponseField>

    <ResponseField name="job_pattern" type="string">
      `one_time` or `recurring`.
    </ResponseField>

    <ResponseField name="start_date" type="string">
      Start date in ISO 8601 format.
    </ResponseField>

    <ResponseField name="end_date" type="string | null">
      End date in ISO 8601 format, or `null` if not set.
    </ResponseField>

    <ResponseField name="latitude" type="number | null">
      Latitude of the job location.
    </ResponseField>

    <ResponseField name="longitude" type="number | null">
      Longitude of the job location.
    </ResponseField>

    <ResponseField name="project_id" type="string">
      The project this job belongs to.
    </ResponseField>

    <ResponseField name="inspection_notes" type="string | null">
      Inspection notes.
    </ResponseField>

    <ResponseField name="capture_types" type="string[] | null">
      Array of capture types for this job.
    </ResponseField>

    <ResponseField name="external_id" type="string | null">
      External identifier, if set.
    </ResponseField>

    <ResponseField name="created" type="number">
      Unix timestamp (milliseconds) when the job was created.
    </ResponseField>

    <ResponseField name="updated" type="number">
      Unix timestamp (milliseconds) when the job was last updated.
    </ResponseField>

    <ResponseField name="recurring_frequency" type="string | null">
      Recurrence frequency.
    </ResponseField>

    <ResponseField name="recurring_interval" type="number | null">
      Repeat every N periods.
    </ResponseField>

    <ResponseField name="selected_days_of_week" type="number[] | null">
      Days of the week (0 = Sunday, 6 = Saturday).
    </ResponseField>

    <ResponseField name="week_of_month" type="number | null">
      Week of the month (1-4, or -1 for last week).
    </ResponseField>

    <ResponseField name="weeks_of_month" type="number[] | null">
      Multiple weeks of the month.
    </ResponseField>

    <ResponseField name="flights_per_occurrence" type="number | null">
      Number of flights per occurrence.
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="count" type="number">
  Number of jobs in the current page.
</ResponseField>

<ResponseField name="cursor" type="string | null">
  Cursor for the next page. `null` when there are no more results.
</ResponseField>

<ResponseField name="project_id" type="string">
  The project ID these jobs belong to.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X GET "https://api.dronebundle.com/v1/projects/01964c6b-7a3e-7f00-8000-abc123def456/jobs" \
    -H "Authorization: Bearer v1_your_api_key_here"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "jobs": [
      {
        "id": "019d4350-a1b2-7c3d-8e4f-567890abcdef",
        "name": "Roof Inspection - Building A",
        "description": "Inspect roof for damage after storm.",
        "type": "drone_inspection",
        "status": "not_started",
        "priority": "high",
        "job_pattern": "one_time",
        "start_date": "2026-04-20",
        "end_date": null,
        "latitude": 55.6761,
        "longitude": 12.5683,
        "project_id": "01964c6b-7a3e-7f00-8000-abc123def456",
        "inspection_notes": null,
        "capture_types": null,
        "external_id": "JOB-2001",
        "created": 1743500000000,
        "updated": 1743500000000,
        "recurring_frequency": null,
        "recurring_interval": null,
        "selected_days_of_week": null,
        "week_of_month": null,
        "weeks_of_month": null,
        "flights_per_occurrence": null
      }
    ],
    "count": 1,
    "cursor": null,
    "project_id": "01964c6b-7a3e-7f00-8000-abc123def456"
  }
  ```
</ResponseExample>

## Errors

**404 Not Found** - Project not found.

```json theme={null}
{
  "message": "Project not found"
}
```
