You can integrate your Loxo Job Listing into your website in one of two ways. 

  1. The easiest way is to redirect your website's Careers page to your Loxo Job Listing. 

  2. If you want a deeper integration so that your job listing blends in with your website design, you can request a secure API key by emailing, then share that and the following API documentation with your software development team.

API Documentation

All endpoints use HTTP Basic Auth. Contact Loxo for your credentials.

The query is pulling jobs from Loxo. We support passing in the parameter published (which can be true or false), and also a job_status_id, which could correlate to active, inactive, etc


GET /api/{agency_key}/countries

Displays a listing of countries


GET /api/{agency_key}/countries/{country_id}/states

Displays a listing of states for a country

Job Types

GET /api/{agency_key}/job_types

Displays a listing of job types

Job Statuses

GET /api/{agency_key}/job_statuses

Displays a listing of job statuses


GET /api/{agency_key}/jobs

Displays a listing of jobs

Job Categories

GET /api/{agency_key}/job_categories

Display a listing of job categories


  • job_type_id [integer, optional] -- one of the job type ids from the API call above

  • query [string, optional] -- a full-text search query to search across all jobs

  • job_status_id [integer, optional] -- one of the job status ids from the API call above

  • page [integer, optional] -- the page of results to view

  • per_page [integer, optional] -- how many results to display per page

  • published [boolean, optional] -- show published or unpublished jobs

GET /api/{agency_key}/jobs/{job_id}

Displays a single job

POST /api/{agency_key}/jobs

Create new job


  • job -- the following parameters must be inside a job object {“job”: {...}}

  • title [string, required] -- the job title 

  • published [boolean, required] -- is the job published for public display

  • raw_company_name [string, required] -- the name of the company this job belongs to

  • address [string, optional] -- street address for job

  • city [string, optional] -- job city is in 

  • state_id [integer, optional] -- ID of the state the job is in

  • zip [string, optional] -- zip code for job (can contain alpha chars in certain countries)

  • country_id [integer, optional] -- ID of the country the job is in

  • Description [string, optional] -- public-facing job description

  • internal_notes [string, optional] -- internal job description/notes

  • salary [string, optional] -- expected compensation for job

  • job_type_id [integer, optional] -- ID of the job type

  • job_status_id [integer, optional] -- ID of the job status

  • published_at [datetime, optional] -- if present, use this as the publish date of the job instead of the created date

PUT /api/{agency_key}/jobs/{job_id}

Update existing job

Params: same as for create

DELETE /api/{agency_key}/jobs/{job_id}

Delete an existing job

POST /api/{agency_key}/jobs/{job_id}/apply

Apply to a job


  • name [string, required] -- the candidate's name

  • phone [string, required] -- the candidate's phone number

  • email [string, required] -- the candidate's email address

  • resume [file upload, required] -- the candidate's resume file

Did this answer your question?