Create a interest category
/api/v1/interest-categoriesRequest body
titlestringrequireddisplay_orderintegerinterestsarray<string>typestring
Request
/api/v1/interest-categoriescurl -X POST 'https://app.mailyte.com/api/v1/interest-categories' \
-H 'Authorization: Bearer mk_live_YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"title": "<string>",
"display_order": "<integer>",
"interests": [],
"type": "<string>"
}'const response = await fetch('https://app.mailyte.com/api/v1/interest-categories', {
method: 'POST',
headers: {
Authorization: 'Bearer mk_live_YOUR_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"title": "<string>",
"display_order": "<integer>",
"interests": [],
"type": "<string>"
}),
});
const { data } = await response.json();import requests
response = requests.post(
"https://app.mailyte.com/api/v1/interest-categories",
headers={"Authorization": "Bearer mk_live_YOUR_API_KEY"},
json={
"title": "<string>",
"display_order": "<integer>",
"interests": [],
"type": "<string>"
},
)
data = response.json()["data"]<?php
$response = Http::withToken('mk_live_YOUR_API_KEY')
->post('https://app.mailyte.com/api/v1/interest-categories', [
'title' => '<string>',
'display_order' => '<integer>',
'interests' => [],
'type' => '<string>',
]);
$data = $response->json('data');require "net/http"
require "json"
uri = URI("https://app.mailyte.com/api/v1/interest-categories")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer mk_live_YOUR_API_KEY"
request["Content-Type"] = "application/json"
request.body = {
"title": "<string>",
"display_order": "<integer>",
"interests": [],
"type": "<string>"
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) { |http| http.request(request) }Response
Success.
dataobjectobjectstringinterest_categoryidstringtitlestringThe question, as a contact reads it on a signup form — usually phrased as one: "What do you want to hear about?"
typestringcheckboxes | dropdown | radio | hiddenHow the group renders on a form. THIS IS PRESENTATION, NOT ENFORCEMENT: a `radio` group with two interests selected is a form that was bypassed, not a rejected write, because refusing it would lose data we already hold rather than fix the form. `hidden` keeps the group off the form entirely so it can only be set through the API, which is how an internal classification lives beside the ones a contact chooses.
display_orderintegerPosition on the form, lower first.
interestsarray<object>The answers a contact can choose. Returned WITH the category because they are read as one thing — a form section — and fetching them separately would be two round trips to render one block of checkboxes. `null` means UNKNOWN: the relation was not loaded, never that the category has no answers.
idstringnamestringdisplay_orderinteger
created_atstring
Returned inside the standard envelope.
Errors
| Status | When |
|---|---|
401 | The API key is missing, unknown, revoked or expired. All four answer identically, on purpose: distinguishing them would confirm which keys exist. |
403 | The key is valid but may not do this: it lacks the required scope, its IP allowlist does not include you, or this endpoint does not accept API keys. |
404 | No such resource in this organization. |
422 | The request was understood but the values were not acceptable. |
429 | Too many requests, or the organization has spent its sending allowance. `Retry-After` says how long to wait. |
Every status, with what causes it and what to do, is on the error reference.