Publer Jobs API

The Jobs API from Publer — 1 operation for resolving the asynchronous job returned by every write on the Publer API. Scheduling, publishing and media-from-URL uploads all return 202 with a job_id; this endpoint reports working/complete/failed plus per-account failures.

OpenAPI Specification

publer-jobs-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Publer Jobs API
  description: 'The Publer API (v1) is a RESTful JSON interface for automating social media workflows
    - scheduling, publishing, media management and analytics - across Facebook, Instagram, X/Twitter,
    LinkedIn, TikTok, YouTube, Pinterest, Threads, Bluesky, Mastodon, Google Business Profiles, WordPress
    and Telegram. Authentication is an API key sent as `Authorization: Bearer-API YOUR_API_KEY` together
    with a `Publer-Workspace-Id` header. The API is available exclusively to Publer Business users.'
  termsOfService: https://publer.com/terms
  contact:
    name: Publer Support
    email: support@publer.com
    url: https://publer.com/docs
  version: 1.0.0
servers:
- url: https://app.publer.com/api/v1
security:
- BearerApiAuth: []
tags:
- name: Jobs
  description: Endpoints for managing asynchronous jobs
paths:
  /job_status/{job_id}:
    get:
      summary: Get job status
      description: Check the status of an asynchronous job, including URL media uploads
      tags:
      - Jobs
      parameters:
      - schema:
          type: string
        name: Publer-Workspace-Id
        in: header
        description: ID of the workspace to retrieve posts from
        required: true
      - schema:
          type: string
        name: job_id
        in: path
        description: ID of the job to check
        required: true
      responses:
        '200':
          description: Job status retrieved successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JobStatusResponse'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/401ErrorResponse'
        '403':
          description: Permission denied or missing required scope
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/403ErrorResponse'
      operationId: getJobStatus
components:
  schemas:
    401ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          description: List of error messages
          items:
            type: string
    403ErrorResponse:
      type: object
      properties:
        errors:
          type: array
          description: List of error messages
          items:
            type: string
    JobStatusResponse:
      type: object
      properties:
        success:
          type: boolean
          description: Whether the request was successful
        data:
          type: object
          properties:
            status:
              type: string
              enum:
              - working
              - complete
              - failed
              description: "Current status of the job \n\n - `working`: The job is still processing.\n\
                \ - `complete`: The job has completed successfully.\n - `failed`: The job has failed."
            result:
              type: object
              description: Result data, contents depend on job type
              properties:
                status:
                  type: string
                  enum:
                  - working
                  - complete
                  - failed
                  description: "Current status of the job \n\n - `working`: The job is still processing.\n\
                    \ - `complete`: The job has completed successfully.\n - `failed`: The job has failed."
                payload:
                  type: object
                  description: Result payload containing any operation results
                  properties:
                    failures:
                      type: object
                      description: Any failures that occurred during processing
                plan:
                  type: object
                  description: Current user's plan information
                  properties:
                    rate:
                      type: string
                      description: The rate plan of the workspace
                    locked:
                      type: boolean
                      description: Whether the workspace is locked
  securitySchemes:
    BearerApiAuth:
      type: apiKey
      name: Authorization
      in: header
      description: 'API key authentication. Format: "Bearer-API YOUR_API_KEY"'