Skip to content

Create an SMS template

POST
/v1/sms-templates
curl --request POST \
--url https://api2.recruso.co.uk/v1/sms-templates \
--header 'Authorization: <Authorization>' \
--header 'Content-Type: application/json' \
--data '{ "templateName": "example", "templateDescription": "example" }'

Creates an SMS template for your agency. Recruso sends SMS and WhatsApp messages on your agency’s behalf, and a template saves writing the same message every time.

The name must not already be in use by another of your agency’s records; a clash returns 400 rather than creating a duplicate.

Returns 201 with the created record.

You only ever see and change your own agency’s records; there is no owner id on the request, and an id belonging to another agency returns 404 rather than 403 so that its existence is never disclosed.

Access. Requires a client-credentials access token. Tokens issued through the interactive user login are rejected.

Media typeapplication/json
object
templateName
string
templateDescription
string
nullable
Examplegenerated
{
"templateName": "example",
"templateDescription": "example"
}

Created

Media typeapplication/json
object
templateId
integer format: int32
templateName
string
templateDescription
string
nullable
createdBy

The Recruso user who created the template. SMS templates are your agency’s own content rather than something Recruso supplies, which is why they are audited.

integer format: int16
createdOn

When the template was created.

string format: date-time
Examplegenerated
{
"templateId": 1,
"templateName": "example",
"templateDescription": "example",
"createdBy": 1,
"createdOn": "2026-04-15T12:00:00Z"
}

Bad Request

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Unauthorized

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}

Forbidden

Media typeapplication/problem+json
object
type
string
nullable
title
string
nullable
status
integer format: int32
nullable
detail
string
nullable
instance
string
nullable
Examplegenerated
{
"type": "example",
"title": "example",
"status": 1,
"detail": "example",
"instance": "example"
}