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

# Create a job

> Hand RevDesk an outcome to pursue. The agent plans and executes across channels until the success criteria are met, the deadline passes, or the guardrails stop it. Progress and the terminal outcome arrive on the JOB_* webhooks.



## OpenAPI

````yaml /openapi.json post /v1/jobs
openapi: 3.1.0
info:
  title: RevDesk v1 API
  version: 1.0.0
  description: >-
    Programmatic access to the RevDesk voice platform — calls, numbers, caller
    trust, and brands.
  contact:
    name: RevDesk
    email: support@revdesk.com
servers:
  - url: https://api.revdesk.com
security:
  - bearerAuth: []
tags:
  - name: Phone Numbers
  - name: Caller IDs
  - name: Enterprise Registration
  - name: Branded Calling
  - name: Calls
  - name: SMS
  - name: WebRTC
  - name: Reputation
  - name: Usage
  - name: Account
  - name: Agents
  - name: Appointments
  - name: Contacts
  - name: Documents
  - name: Number Registration
  - name: Sub-entities
  - name: Webhooks
  - name: Jobs
paths:
  /v1/jobs:
    post:
      tags:
        - Jobs
      summary: Create a job
      description: >-
        Hand RevDesk an outcome to pursue. The agent plans and executes across
        channels until the success criteria are met, the deadline passes, or the
        guardrails stop it. Progress and the terminal outcome arrive on the
        JOB_* webhooks.
      operationId: v1_jobs_post
      parameters:
        - name: Idempotency-Key
          in: header
          required: false
          description: >-
            UUID — when present, deduplicates repeat submissions. See
            /api-reference/idempotency.
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $schema: http://json-schema.org/draft-07/schema#
              type: object
              properties:
                type:
                  type: string
                  minLength: 1
                objective:
                  type: string
                  minLength: 1
                contact_id:
                  type: string
                opportunity_id:
                  type: string
                deadline: {}
                success_criteria:
                  type: object
                  properties:
                    outcome_kinds:
                      type: array
                      items:
                        type: string
                  additionalProperties: false
                guardrails:
                  type: object
                  properties:
                    channels:
                      type: array
                      items:
                        type: string
                    quiet_hours:
                      type: object
                      properties:
                        from:
                          type: number
                        to:
                          type: number
                        time_zone:
                          type: string
                      required:
                        - from
                        - to
                      additionalProperties: false
                    max_touches:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                    max_touches_since_reply:
                      type: integer
                      exclusiveMinimum: 0
                      maximum: 9007199254740991
                    min_hours_between_touches:
                      type: number
                      exclusiveMinimum: 0
                  additionalProperties: false
              required:
                - type
                - objective
              additionalProperties: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $schema: http://json-schema.org/draft-07/schema#
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      type:
                        type: string
                      status:
                        type: string
                      objective:
                        type: string
                      contact_id:
                        anyOf:
                          - type: string
                          - type: 'null'
                      opportunity_id:
                        anyOf:
                          - type: string
                          - type: 'null'
                      deadline:
                        anyOf:
                          - type: string
                          - type: 'null'
                      created_at:
                        type: string
                      closed_at:
                        anyOf:
                          - type: string
                          - type: 'null'
                    required:
                      - id
                      - type
                      - status
                      - objective
                      - contact_id
                      - opportunity_id
                      - deadline
                      - created_at
                      - closed_at
                    additionalProperties: false
                required:
                  - data
                additionalProperties: false
        '400':
          description: Validation error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '409':
          description: Conflict (incl. idempotency conflicts)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
        '429':
          description: Rate limited
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorEnvelope'
components:
  schemas:
    ErrorEnvelope:
      type: object
      properties:
        error:
          type: object
          required:
            - code
            - message
          properties:
            code:
              type: string
            message:
              type: string
            fields:
              type: object
              additionalProperties:
                type: string
            doc_url:
              type: string
              format: uri
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer

````