campaigns

Embed
Preview of the card
<a href="https://hermeticor.com/docs/ref-campaigns"><img src="https://hermeticor.com/docs/_api/public/orgs/5fcd8b3c-a27c-4688-972f-de710125592f/spaces/caf5dc05-15f7-4e0c-bdb8-ab29ede6211e/pages/7b5e5778-2701-4b75-820c-3417186ab185/social-card.svg?v=3e7ae33eec8b" alt="campaigns" width="600" height="315"></a>
POSThttps://hermeticor.com/v1/programs/{id}/assets

Parameters

idstringpathrequired

Request body

application/json
kindstringrequired
campaign | journey | form | page | template | sms | list | segment
assetIdstringrequired
{
  "kind": "campaign",
  "assetId": "string"
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/programs/{id}/assets" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"kind":"campaign","assetId":"string"}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

201 Default Response
Example
{
  "ok": true
}
Schema
okbooleanrequired
true
4XX Default Response
Example
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {}
  }
}
Schema
errorobjectrequired
Show child parameters
codestringrequired
messagestringrequired
detailsobject
5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

DELETEhttps://hermeticor.com/v1/programs/{id}/assets/{kind}/{assetId}

Parameters

idstringpathrequired
kindstringpathrequired
campaign | journey | form | page | template | sms | list | segment
assetIdstringpathrequired

Code samples

cURL
curl -X DELETE "https://hermeticor.com/v1/programs/{id}/assets/{kind}/{assetId}" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 201 · POST /v1/programs/{id}/assets

4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

POSThttps://hermeticor.com/v1/campaigns/{id}/content/zip

Set a draft campaign's email content from a ZIP (multipart field "file"): one HTML page plus its images. Images become library assets and the page links are rewritten to them

Parameters

idstringpathrequired

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/campaigns/{id}/content/zip" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "messageId": "string",
  "source": "template",
  "templateId": "string",
  "templateVersionId": "string",
  "html": "string",
  "plainText": "string",
  "blocks": {},
  "zip": {
    "imagesHosted": 0,
    "imagesSkipped": [
      "string"
    ],
    "htmlFile": "string"
  }
}
Schema
messageIdstringrequired
sourcestringrequired
template | html | blocks | none
templateIdstringrequired
templateVersionIdstringrequired
htmlstringrequired
plainTextstringrequired
blocksrequired
zipobjectrequired
Show child parameters
imagesHostedintegerrequired
imagesSkippedstring[]required
htmlFilestringrequired
4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

GEThttps://hermeticor.com/v1/campaign-folders/{id}/assets

Forms, pages, workflows and templates filed under this folder

Parameters

limitintegerquery
Page size; omitted returns the whole list
cursorstringquery
Opaque: the nextCursor of the previous page
idstringpathrequired

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/campaign-folders/{id}/assets" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "assetType": "form",
      "assetId": "string"
    }
  ],
  "nextCursor": "string"
}
Schema
itemsItemsItem168[]required
Show child parameters
assetTypestringrequired
form | page | workflow | template
assetIdstringrequired
nextCursorstringrequired
4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

PUThttps://hermeticor.com/v1/campaign-folders/{id}/assets/{assetType}/{assetId}

File an asset under the folder (moves it if it was in another folder)

Parameters

idstringpathrequired
assetTypestringpathrequired
form | page | workflow | template
assetIdstringpathrequired

Code samples

cURL
curl -X PUT "https://hermeticor.com/v1/campaign-folders/{id}/assets/{assetType}/{assetId}" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 201 · POST /v1/programs/{id}/assets

4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

DELETEhttps://hermeticor.com/v1/campaign-folders/{id}/assets/{assetType}/{assetId}

Parameters

idstringpathrequired
assetTypestringpathrequired
form | page | workflow | template
assetIdstringpathrequired

Code samples

cURL
curl -X DELETE "https://hermeticor.com/v1/campaign-folders/{id}/assets/{assetType}/{assetId}" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response

Same as 201 · POST /v1/programs/{id}/assets

4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

GEThttps://hermeticor.com/v1/campaign-folders/{id}/assets/{assetType}

Parameters

limitintegerquery
Page size; omitted returns the whole list
cursorstringquery
Opaque: the nextCursor of the previous page
idstringpathrequired
assetTypestringpathrequired
form | page | workflow | template

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/campaign-folders/{id}/assets/{assetType}" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

POSThttps://hermeticor.com/v1/campaigns/query

Filter campaigns with a typed where / orderBy / limit / offset (fields are an allowlist; read "fields" in the result)

Request body

application/json
whereWhereItem[]
= []
Show child parameters
fieldstringrequired
opstringrequired
eq | ne | gt | gte | lt | lte | contains | starts_with | in | is_null | not_null
valuestring | number | boolean | string | number[]
orderByobject[]
= []
Show child parameters
fieldstringrequired
dirstring
asc | desc = asc
limitinteger
= 50
offsetinteger
= 0
{
  "where": [],
  "orderBy": [],
  "limit": 50,
  "offset": 0
}

Code samples

cURL
curl -X POST "https://hermeticor.com/v1/campaigns/query" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"where":[],"orderBy":[],"limit":50,"offset":0}'
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {}
  ],
  "fields": [
    "string"
  ],
  "hasMore": true
}
Schema
itemsobject[]required
fieldsstring[]required
hasMorebooleanrequired
4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

GEThttps://hermeticor.com/v1/campaigns/{id}/language-metrics

How each language group (by the language on the contact) did, with clicks per link

Parameters

idstringpathrequired

Code samples

cURL
curl -X GET "https://hermeticor.com/v1/campaigns/{id}/language-metrics" \
  -H "Authorization: Bearer $HERMETICOR_API_KEY"
TypeScript
Python
Go
PHP
Ruby
Java

Responses

200 Default Response
Example
{
  "items": [
    {
      "locale": "string",
      "sent": 0,
      "delivered": 0,
      "opens": 0,
      "clicks": 0
    }
  ],
  "links": [
    {
      "locale": "string",
      "url": "string",
      "clicks": 0
    }
  ]
}
Schema
itemsobject[]required
Show child parameters
localestringrequired
sentnumberrequired
deliverednumberrequired
opensnumberrequired
clicksnumberrequired
linksobject[]required
Show child parameters
localestringrequired
urlstringrequired
clicksnumberrequired
4XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

5XX Default Response

Same as 4XX · POST /v1/programs/{id}/assets

Updated