Jobiflow LogoAPI Docs
ApiJob Listings

Publish a job listing

Transitions the listing from `DRAFT` (or `CLOSED`) to `ACTIVE` (or `UNDER_REVIEW` if moderation is enabled). Optionally activates paid addons such as featured placement. Requires scope: `jobs:write`

POST
/public/v1/job-listings/{id}/publish

Transitions the listing from DRAFT (or CLOSED) to ACTIVE (or UNDER_REVIEW if moderation is enabled). Optionally activates paid addons such as featured placement.

Requires scope: jobs:write

Authorization

ApiKeyAuth
X-API-Key<token>

API key issued by Jobiflow. Pass it in the X-API-Key request header.

Create keys via the company dashboard (Settings → API Keys) or via POST /settings/api-keys.

In: header

Path Parameters

id*string

UUID of the job listing to publish.

Formatuuid

Request Body

application/json

Optional addon selection for this listing. Omit the body if no addons are needed.

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/public/v1/job-listings/497f6eca-6276-4993-bfeb-53cbbbba6f08/publish" \  -H "Content-Type: application/json" \  -d '{}'
{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "companyId": "8bb73d03-06b4-47c7-80c7-59301f770eda",
  "status": "DRAFT",
  "sectorId": "3274bbb4-3f99-4800-8405-d01f8a71a05d",
  "position": {
    "value": "string",
    "original": "string",
    "sourceLanguage": "en",
    "translated": true,
    "translationType": "AI"
  },
  "positionType": "FULL_TIME",
  "workPlaceType": "REMOTE",
  "address": {
    "street": "Marienplatz 1",
    "city": "Munich",
    "state": "Bavaria",
    "country": "DE",
    "postalCode": "80331",
    "latitude": 48.1374,
    "longitude": 11.5755
  },
  "isStartDate": true,
  "startDate": "2019-08-24",
  "jobDescription": {
    "value": "string",
    "original": "string",
    "sourceLanguage": "en",
    "translated": true,
    "translationType": "AI"
  },
  "requirementsSummary": {
    "value": "string",
    "original": "string",
    "sourceLanguage": "en",
    "translated": true,
    "translationType": "AI"
  },
  "personalQualitiesSummary": {
    "value": "string",
    "original": "string",
    "sourceLanguage": "en",
    "translated": true,
    "translationType": "AI"
  },
  "skills": [
    {
      "value": {
        "value": "string",
        "original": "string",
        "sourceLanguage": "en",
        "translated": true,
        "translationType": "AI"
      },
      "type": "SKILL",
      "expertType": "BEGINNER",
      "languageProficiency": "A1",
      "drivingClass": "AM"
    }
  ],
  "currency": "string",
  "salaryBase": 0,
  "isSalaryMax": true,
  "salaryMax": 0,
  "salaryType": "GROSS",
  "paymentInterval": "HOURLY",
  "salaryDescription": {
    "value": "string",
    "original": "string",
    "sourceLanguage": "en",
    "translated": true,
    "translationType": "AI"
  },
  "benefits": [
    {
      "value": "string",
      "original": "string",
      "sourceLanguage": "en",
      "translated": true,
      "translationType": "AI"
    }
  ],
  "educationLevel": "NONE",
  "fieldOfStudy": {
    "value": "string",
    "original": "string",
    "sourceLanguage": "en",
    "translated": true,
    "translationType": "AI"
  },
  "yearsOfExperience": 0,
  "availableForEveryCountry": true,
  "numberOfPositionsOpened": 0,
  "jobListingEndDate": "2019-08-24",
  "referenceNumber": "string",
  "hiringProcessSteps": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "jobListingId": "a7d01775-e611-4288-b8c1-442852b8ff39",
      "stepOrder": 1,
      "stepName": {
        "value": "string",
        "original": "string",
        "sourceLanguage": "en",
        "translated": true,
        "translationType": "AI"
      },
      "description": {
        "value": "string",
        "original": "string",
        "sourceLanguage": "en",
        "translated": true,
        "translationType": "AI"
      }
    }
  ],
  "jobListingTags": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "jobListingId": "a7d01775-e611-4288-b8c1-442852b8ff39",
      "tagId": "f69eb9f1-ae9f-4086-b25c-c39758a43fb3"
    }
  ],
  "jobListingRequirements": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "jobListingId": "a7d01775-e611-4288-b8c1-442852b8ff39",
      "requirementText": "string"
    }
  ],
  "createdAt": "2019-08-24T14:15:22Z",
  "updatedAt": "2019-08-24T14:15:22Z",
  "publishedAt": "2019-08-24T14:15:22Z",
  "expiresAt": "2019-08-24T14:15:22Z",
  "closedAt": "2019-08-24T14:15:22Z"
}
{
  "status": 400,
  "error": "BAD_REQUEST",
  "message": "Malformed JSON body",
  "timestamp": "2026-05-17T12:00:00Z",
  "path": "/public/v1/job-listings"
}
{
  "status": 401,
  "error": "UNAUTHORIZED",
  "message": "Invalid or missing API key",
  "timestamp": "2026-05-17T12:00:00Z",
  "path": "/public/v1/job-listings"
}
{
  "status": 403,
  "error": "FORBIDDEN",
  "message": "Scope 'jobs:write' is required",
  "timestamp": "2026-05-17T12:00:00Z",
  "path": "/public/v1/job-listings"
}
{
  "status": 404,
  "error": "NOT_FOUND",
  "message": "Job listing not found",
  "timestamp": "2026-05-17T12:00:00Z",
  "path": "/public/v1/job-listings/00000000-0000-0000-0000-000000000000"
}
{
  "status": 409,
  "error": "CONFLICT",
  "message": "Cannot delete an ACTIVE job listing",
  "timestamp": "2026-05-17T12:00:00Z",
  "path": "/public/v1/job-listings/abc"
}