Post a new job to carehome.co.uk. Each job uses one job credit and stays live for 30 days.
Who can use it: Enhanced and Platinum subscribers with at least one job credit. Partners post with the subscriber's API key and their own
partner_key.
Post a job
POST /index.cfm/jobs
Base URL https://api.carehome.co.uk. Authentication, errors and support are covered in the Jobs API overview.
Send the fields as a JSON object with the header Content-Type: application/json. IDs can be sent as numbers or strings.
Body parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
api_key | string | Yes | Your API key. Partners send the API key of the customer the job is for. |
job_title | string | Yes | Job title, up to 60 characters. |
job_category_id | integer | Yes | From /jobs/categories. |
job_setting_id | integer | Yes | The kind of workplace, from /jobs/settings. |
job_type_id | integer | Yes | For example Full Time, from /jobs/types. |
job_description | string | Yes | Job description, as plain text or simple HTML. Up to 8,000 characters of text, not counting HTML tags. See Job description. |
job_contact_name | string | Yes | Contact name for the job, up to 255 characters. |
job_contact_email | string | One of these two | Email address applications are sent to, up to 255 characters. |
job_contact_url | string | One of these two | Web address of this job's application page, up to 1,000 characters. Applicants are sent there to apply. Use the page for this job, not a general jobs page. If you send both, the URL is used and the email address is ignored. |
job_admin_email | string | Yes | Email address we remind before the job expires, up to 300 characters. Not shown to applicants. |
job_processed_by | string | Yes | Name of the person posting the job, up to 100 characters. For our records; not shown to applicants. |
job_pay_type_id | integer | See Salary | 1 per annum, 2 per hour, 5 non-specific. From /jobs/pay_types. |
job_salary_from | string | See Salary | Lowest pay, for example "24000" or "12.50". Up to 7 digits and 2 decimal places, with no commas or currency sign. |
job_salary_to | string | See Salary | Highest pay, in the same format. For a fixed amount, send the same value as job_salary_from. |
job_salary | string | See Salary | Salary details as text, for example "Plus overtime", up to 60 characters. |
job_town_id | integer | See description | Where the job is, from /jobs/towns. If you leave it out, we use the town of the setting the job is branded as. If we can't find one, the request fails with Please provide job_town_id. |
job_member_id | integer | No (recommended) | The setting or group the job is shown as. If you leave it out, the job is branded as the setting or group your API key belongs to. Sending it links the job to the right setting and gets better application rates. See Branding. |
job_reference | string | No | Your own reference for the job, up to 255 characters. Returned with the job and its applications. |
uniqueReference | boolean | No | true to refuse the job if one of your open jobs already has the same job_reference. See Duplicate references. |
job_skills | string | No | Skills and qualifications, as a comma-separated list, up to 1,000 characters. |
job_accept_applicant_uk_only | integer | No | 1 to accept applicants based in the UK only. Default 0. |
partner_key | string | Partners only | Your partner key. |
Salary
Give the pay in one of these ways:
| Pay | Send |
|---|---|
| Per annum | job_pay_type_id 1, job_salary_from of at least 1000, and job_salary_to. job_salary is optional. |
| Per hour | job_pay_type_id 2, job_salary_from, and job_salary_to below 1000. job_salary is optional. |
| Non-specific | job_pay_type_id 5 and job_salary. Don't send job_salary_from or job_salary_to. |
| Text only | job_salary only. Supported for integrations built before February 2017; use a pay type for new integrations. |
job_salary_from must not be higher than job_salary_to, and both need a job_pay_type_id.
Branding
A job is shown on carehome.co.uk as posted by a setting or group. That is its branding, and you set it with job_member_id.
job_member_id is optional. If you leave it out, the job is branded as the setting or group your API key belongs to. We recommend always sending it: it links the job to the right setting, which helps it reach the right candidates and gets better application rates.
- Your own setting: send your own ID.
- Another setting in your group: send that setting's ID. A group can brand jobs as any of its settings.
Get the IDs you can use from /jobs/members. Any other ID fails with valid job_member_id is required.
Job description
We clean up job_description before it is shown:
- Use simple HTML:
p,br,b,strong,i,em,u,ul,olandli. Attributes are removed, and other tags may be removed. - Sentences containing contact details are removed: email addresses, web addresses, and phone numbers.
- Empty paragraphs and repeated spaces are removed.
Applicants apply through carehome.co.uk, using job_contact_email or job_contact_url, so contact details aren't needed in the description.
Duplicate references
If you send "uniqueReference": true with a job_reference, we check your open jobs, and those of your group, for the same reference. If there is one, the job is not posted and no credit is used. The response is 409:
{
"data": {},
"error": [],
"warn": [
"There is an existing job with the reference EXAMPLE-001"
]
}
Example request
curl -X POST "https://api.carehome.co.uk/index.cfm/jobs" \
-H "Content-Type: application/json" \
-d '{
"api_key": "YOUR_API_KEY",
"job_title": "Care Assistant (example)",
"job_category_id": 5,
"job_setting_id": 10,
"job_type_id": 1,
"job_description": "<p>An example job description.</p>",
"job_skills": "Example skill, another example skill",
"job_contact_name": "Example Name",
"job_contact_email": "example@example.com",
"job_admin_email": "example@example.com",
"job_processed_by": "Example Name",
"job_pay_type_id": 2,
"job_salary_from": "12.50",
"job_salary_to": "13.50",
"job_town_id": 12345,
"job_reference": "EXAMPLE-001"
}'
Example response
201 Created. data is the new job, in the same format as the job list. Keep job_id: you need it to edit or close the job.
{
"data": {
"job_id": 96000000001,
"job_title": "Care Assistant (example)",
"job_posted_date": "2026-10-01 09:30:00",
"job_expiry_date": "31-Oct-2026 00:00:00",
"job_link": "https://www.carehome.co.uk/jobs/job.cfm/id/96000000001",
"...": "other job fields"
},
"error": [],
"warn": []
}
Errors
Validation errors return 400 with the reasons in error. Common messages:
| error | What to do |
|---|---|
Please either provide both job_salary_from & job_salary_to, or provide job_salary | Add pay details; see Salary. |
When entering job_salary_from & job_salary_to, job_pay_type_id is a required field | Add job_pay_type_id. |
Please enter a value higher than 1000 for job_salary_from if submitting job_pay_type_id=1 | Annual pay must be at least 1000. |
Please enter a value lower than 1000 for job_salary_to if submitting job_pay_type_id=2 | Hourly pay must be below 1000. |
Please provide job_town_id | Send job_town_id. |
Please pass Contact Email or Contact URL | Send job_contact_email or job_contact_url. |
job_title is required (and similar) | Send the required field. |
Invalid job_category_id: 0 (and similar) | Use an ID from the lookup endpoints. |
valid job_member_id is required | Use an ID from /jobs/members. |
Insufficient Job Credits | Buy more credits. Check your balance with /jobs/credits. |