Endpoints
GET /vendor/vacancies

GET /vendor/vacancies

Fetches the paginated list of active vacancies belonging to the authenticated vendor.

GET https://api.easyfind.jobs/vendor/vacancies

Headers

HeaderValueRequiredDescription
AuthorizationBearer your_api_key_hereYesYour API key
Acceptapplication/jsonYesResponse format
Accept-Languageaz or enNoResponse language for translated fields

Query Parameters

ParameterTypeDescription
typeintegerFilter by vacancy type: 1 Full Time, 2 Part Time, 3 Remote, 4 Internship
experience_minintegerMinimum years of experience required
experience_maxintegerMaximum years of experience required
per_pageintegerResults per page (min: 1, max: 100)
pageintegerPage number to retrieve (default: 1)
langstringaz or en — overrides Accept-Language header

Example Request

curl "https://api.easyfind.jobs/vendor/vacancies?type=1&experience_min=2&experience_max=5&per_page=15" \
  -H "Authorization: Bearer your_api_key_here" \
  -H "Accept: application/json" \
  -H "Accept-Language: az"

Response

{
  "status": "success",
  "company": "Pasha Bank",
  "data": [
    {
      "id": 15,
      "title": "Senior Laravel Developer",
      "url": "https://api.easyfind.jobs/vakansiyalar/senior-laravel-developer",
      "description": "Yeni layihələrin sıfırdan qurulması və mövcud sistemlərin optimallaşdırılması.",
      "requirements": "Ən az 4 il Laravel təcrübəsi, SQL biliyi.",
      "responsibilities": "Kod bazasının təmiz saxlanılması, API dizaynı.",
      "category": "İnformasiya Texnologiyaları",
      "city": "Bakı",
      "type": "Tam iş günü",
      "salary_min": 2500,
      "salary_max": 3500,
      "salary": null,
      "salary_type": "Aralıq (min-max)",
      "deadline": "2026-07-01",
      "created_at": "2026-06-01 11:30:00"
    }
  ],
  "pagination": {
    "current_page": 1,
    "last_page": 3,
    "per_page": 10,
    "total": 25,
    "next_page_url": "https://api.easyfind.jobs/vendor/vacancies?page=2",
    "prev_page_url": null
  }
}

Response Fields

FieldTypeDescription
statusstringsuccess
companystringAuthenticated vendor company name
dataarrayList of vacancy objects
data[].idintegerVacancy ID
data[].titlestringVacancy title
data[].urlstringPublic vacancy URL
data[].descriptionstringJob description
data[].requirementsstringRequirements
data[].responsibilitiesstringResponsibilities
data[].categorystringJob category (localized)
data[].citystringCity (localized)
data[].typestringEmployment type (localized)
data[].salary_mininteger|nullMinimum salary
data[].salary_maxinteger|nullMaximum salary
data[].salaryinteger|nullFixed salary
data[].salary_typestringSalary type (localized)
data[].deadlinestringApplication deadline (YYYY-MM-DD)
data[].created_atstringCreation datetime
pagination.current_pageintegerCurrent page number
pagination.last_pageintegerTotal pages
pagination.per_pageintegerResults per page
pagination.totalintegerTotal vacancy count
pagination.next_page_urlstring|nullNext page URL
pagination.prev_page_urlstring|nullPrevious page URL

Pagination

Results are paginated. Use the page query parameter to navigate between pages.

# Page 2
curl "https://api.easyfind.jobs/vendor/vacancies?page=2&per_page=10" \
  -H "Authorization: Bearer your_api_key_here"

Or use next_page_url / prev_page_url directly from the response:

let url = 'https://api.easyfind.jobs/vendor/vacancies?per_page=10';
 
while (url) {
  const response = await fetch(url, {
    headers: { 'Authorization': 'Bearer your_api_key_here' },
  });
  const data = await response.json();
 
  // process data.data ...
 
  url = data.pagination.next_page_url;
}
FieldDescription
pagination.current_pageCurrent page
pagination.last_pageTotal number of pages
pagination.totalTotal vacancy count
pagination.next_page_urlURL for next page, null if last page
pagination.prev_page_urlURL for previous page, null if first page

Translated Fields

The following fields are returned in the requested locale:

  • category
  • city
  • type
  • salary_type