---
title: "Import Recurring Jobs"
method: POST
path: "/imports/job/recurring_import"
---

# Import Recurring Jobs

`POST /imports/job/recurring_import`

## Request

- Base URL: `https://dc-region.zuperpro.com/api`
- URL: `https://dc-region.zuperpro.com/api/imports/job/recurring_import`
- Auth: API key in header `x-api-key`

Bulk-creates recurring job series from an uploaded single-sheet XLSX file. Row cap is 250. Validates job_title, job_category (must match an existing category name), job_priority/job_type, assigned_team/assigned_user existence, customer resolution (by uid/email/phone/name — at least one differentiating field required), frequency_of_visit, days_of_week, and recurrence_start_date/recurrence_end_date (strict datetime format, end after start). Builds a weekly RRule from frequency+days-of-week to expand all occurrence dates between start and end; creates one Recurring_Jobs doc plus one Jobs doc per computed occurrence — a wide date range with daily cadence can generate many jobs from a single row. Assigned users get acceptance_status AWAIT_RESPONSE (unlike plain job import's ACCEPTED). All rows are validated before any are created.

## Request body `multipart/form-data`

- object
  - `file` string, binary, required: Single-sheet XLSX matching the recurring import template's columns.

## Response `200`

200

## Other responses

- `400`: 400

## Changes

- **2026-11-03** `3c21bc232e16`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zuper/apis/zuper-pro-api/changes/imports/job/recurring_import/post.md)

---

[API](https://skmtc.dev/zuper/apis/zuper-pro-api.md) - [All operations](https://skmtc.dev/zuper/apis/zuper-pro-api/llms.txt) - [OpenAPI document](https://skmtc.dev/zuper/apis/zuper-pro-api/revisions/3c21bc232e16?raw)
