Snappr Editing Jobs API

Create and retrieve photo editing jobs (beta).

OpenAPI Specification

snappr-editing-jobs-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Snappr Availability Editing Jobs API
  version: 1.0.0
  summary: The API for visual content.
  description: 'The Snappr API is a universal API for commissioning and handling visual content: on-demand photography with Snappr network photographers, automated and human-augmented photo editing services, and retrieval of the resulting images and videos. The API is available only to Snappr for Enterprise customers. Faithfully generated by the API Evangelist enrichment pipeline from the public documentation at https://docs.snappr.com/ (no fabricated operations or fields).'
  contact:
    name: Snappr for Enterprise
    url: https://www.snappr.com/enterprise
  x-apievangelist-generated: true
servers:
- url: https://api.snappr.com
  description: Production
- url: https://sandbox.snappr.com
  description: Sandbox (returns dummy data; write actions are not persisted)
security:
- bearerAuth: []
tags:
- name: Editing Jobs
  description: Create and retrieve photo editing jobs (beta).
paths:
  /editing-jobs:
    get:
      operationId: listEditingJobs
      tags:
      - Editing Jobs
      summary: Get All Editing Jobs
      description: Retrieves all editing jobs, paginated with limit and offset. (Beta.)
      parameters:
      - $ref: '#/components/parameters/AcceptVersion'
      - $ref: '#/components/parameters/Limit'
      - $ref: '#/components/parameters/Offset'
      responses:
        '200':
          description: A paginated list of editing jobs.
          content:
            application/json:
              schema:
                allOf:
                - $ref: '#/components/schemas/PaginatedEnvelope'
                - type: object
                  properties:
                    results:
                      type: array
                      items:
                        $ref: '#/components/schemas/EditingJob'
        '401':
          $ref: '#/components/responses/Error'
    post:
      operationId: createEditingJob
      tags:
      - Editing Jobs
      summary: Create New Editing Job
      description: Creates a new editing job. Provide the source images, or set images to null to have Snappr collect them from a third-party uploader. The Editing Jobs API is in beta; contact your account manager to enable it.
      parameters:
      - $ref: '#/components/parameters/AcceptVersion'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EditingJobCreate'
      responses:
        '200':
          description: The created editing job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditingJob'
        '400':
          $ref: '#/components/responses/Error'
        '401':
          $ref: '#/components/responses/Error'
        '402':
          $ref: '#/components/responses/Error'
  /editing-jobs/{editing_job_uid}:
    get:
      operationId: getEditingJob
      tags:
      - Editing Jobs
      summary: Get Single Editing Job
      description: Retrieves a specific editing job by its identifier.
      parameters:
      - $ref: '#/components/parameters/AcceptVersion'
      - $ref: '#/components/parameters/EditingJobUid'
      responses:
        '200':
          description: The requested editing job.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EditingJob'
        '401':
          $ref: '#/components/responses/Error'
        '404':
          $ref: '#/components/responses/Error'
components:
  parameters:
    Limit:
      name: limit
      in: query
      description: Maximum number of results to return.
      schema:
        type: integer
    Offset:
      name: offset
      in: query
      description: Offset used for pagination. Defaults to 0.
      schema:
        type: integer
        default: 0
    EditingJobUid:
      name: editing_job_uid
      in: path
      required: true
      description: The identifier of the editing job.
      schema:
        type: string
    AcceptVersion:
      name: accept-version
      in: header
      required: false
      description: Requested API version (e.g. "1.0.0").
      schema:
        type: string
        default: 1.0.0
  schemas:
    EditingJobCreate:
      type: object
      required:
      - type
      - preset_id
      properties:
        title:
          type: string
        type:
          type: string
        images:
          type:
          - array
          - 'null'
          description: Source images. Set to null to have Snappr collect them from a third-party uploader.
          items:
            type: object
            properties:
              file_name:
                type: string
              url_source:
                type: string
                format: uri
            required:
            - url_source
        uploader_firstname:
          type: string
        uploader_surname:
          type: string
        uploader_email:
          type: string
          format: email
        uploader_mobilephone:
          type: string
        uploader_company:
          type: string
        internal_id:
          type: string
        preset_id:
          type: string
    PaginatedEnvelope:
      type: object
      properties:
        count:
          type: integer
        limit:
          type: integer
        offset:
          type: integer
        total:
          type: integer
    EditingJob:
      type: object
      properties:
        uid:
          type: string
        title:
          type: string
        status:
          type: string
          description: e.g. creating, pending_upload, paid, completed.
        credits:
          type: integer
        type:
          type: string
        preset_id:
          type: string
        uploader_firstname:
          type: string
        uploader_surname:
          type: string
        uploader_email:
          type: string
          format: email
        uploader_mobilephone:
          type: string
        uploader_company:
          type: string
        internal_id:
          type: string
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
    Error:
      type: object
      description: Snappr error envelope. Named error in the response body with an optional Problems field on validation errors.
      properties:
        name:
          type: string
        message:
          type: string
        problems:
          type: array
          items:
            type: object
  responses:
    Error:
      description: Error response. See the error catalog for named error codes.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key passed as a bearer token in the Authorization header (Authorization: Bearer <api_key>). Each user has a single unique active API key, managed in the Snappr Photography Portal.'
externalDocs:
  description: Snappr API Documentation
  url: https://docs.snappr.com/