# Sequences
NOTE
The URI for the API endpoint is often the same for multiple endpoints, the difference being in HTTP methods.
# Create Sequence
POST https://api.wolfeo.me/v1/sequence
# Example Request
curl --request POST "https://api.wolfeo.me/v1/sequence" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{"name": "Welcome Series", "type": "normal"}'
# Parameters
| Parameter | Type | Description |
|---|---|---|
| name* | string | Name of the sequence |
| type | string | normal (default) or inverted |
* denotes a required parameter
# Sample Return
HTTP 201 Created
{
"success": true,
"data": {
"id": 12,
"name": "Welcome Series",
"type": "normal"
}
}
# Create Sequence Stage
POST https://api.wolfeo.me/v1/sequence-stage
Adds a step to an existing sequence. The step is created inactive — configure it in the dashboard before activating.
# Example Request
curl --request POST "https://api.wolfeo.me/v1/sequence-stage" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{"sequence_id": 12, "name": "Day 1 Email", "stage_type": "send_email", "time_value": 1, "time_type": 86400}'
# Parameters
| Parameter | Type | Description |
|---|---|---|
| sequence_id* | integer | The sequence to add the step to |
| name | string | Name of the step (default: Step N) |
| stage_type | string | send_email, send_sms, or action |
| time_value | integer | Delay value (default: 1) |
| time_type | integer | Delay unit in seconds (default: 86400) |
* denotes a required parameter
# Possible values for time_type
| Value | Description |
|---|---|
3600 | Hours |
86400 | Days |
604800 | Weeks |
# Sample Return
HTTP 201 Created
{
"success": true,
"data": {
"id": 55,
"sequence_id": 12,
"step": 1,
"name": "Day 1 Email",
"stage_type": "send_email",
"time_value": 1,
"time_type": 86400
}
}
# Possible Errors
| Code | HTTP | Description |
|---|---|---|
| NOT_FOUND | 404 | Sequence not found |
# Update Sequence Stage Content
PUT https://api.wolfeo.me/v1/sequence-stage-content
Sets the HTML body of a send_email stage. The HTML is uploaded to storage and linked to the stage's email. Optional meta fields (subject, from_name, from_email) can be updated in the same call.
# Example Request
curl --request PUT "https://api.wolfeo.me/v1/sequence-stage-content" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{"stage_id": 55, "html": "<p>Hello {{first_name}}</p>", "subject": "Welcome!"}'
# Parameters
| Parameter | Type | Description |
|---|---|---|
| stage_id* | integer | The stage whose email body you want to update |
| html* | string | Raw HTML body of the email |
| subject | string | Optional — update the email subject |
| from_name | string | Optional — update the sender name |
| from_email | string | Optional — update the sender email |
* denotes a required parameter
# Sample Return
{
"success": true,
"data": {
"id": 55,
"email_id": 209,
"path_to_email": "https://wolfeo.s3.eu-west-1.amazonaws.com/emails/files/file_209.html"
}
}
# Possible Errors
| Code | HTTP | Description |
|---|---|---|
| NOT_FOUND | 404 | Stage not found |
| STAGE_NOT_EMAIL | 422 | Stage is not a send_email stage or has no linked email |
| VALIDATION_ERROR | 422 | Missing or invalid field (see error.details) |
# Retrieve All Sequences
GET https://api.wolfeo.me/v1/sequences
# Example Request
curl --request GET "https://api.wolfeo.me/v1/sequences" \
--header "Authorization: Bearer YOUR_API_KEY"
# Parameters
| Parameter | Type | Description |
|---|---|---|
| page | int | Page number (default: 1) |
| per_page | int | Results per page, 1–100 (default: 50) |
# Sample Return
{
"success": true,
"data": [
{
"id": 1,
"name": "First Sequence",
"created_at": "2021-01-01 09:00:00"
},
{
"id": 2,
"name": "Second Sequence",
"created_at": "2021-01-01 09:00:00"
}
],
"meta": {
"current_page": 1,
"last_page": 1,
"per_page": 50,
"total": 2
}
}
# Get An Individual Sequence
GET https://api.wolfeo.me/v1/sequence
# Example Request
curl --request GET "https://api.wolfeo.me/v1/sequence?sequence_id=1" \
--header "Authorization: Bearer YOUR_API_KEY"
# Parameters
| Parameter | Type | Description |
|---|---|---|
| sequence_id* | int | A sequence's ID |
* denotes a required parameter
# Sample Return
{
"success": true,
"data": {
"id": 1,
"name": "First Sequence",
"created_at": "2021-01-01 09:00:00",
"stages": [
{
"id": 1,
"step": 1,
"name": "Day 1 Email",
"stage_type": "send_email",
"time_value": 1,
"time_type": 86400,
"active": false,
"created_at": "2021-01-01 09:00:00"
}
]
}
}
# Get A Contact's Sequences
Returns all sequences a contact is subscribed to.
GET https://api.wolfeo.me/v1/contacts-sequences
# Example Request
curl --request GET "https://api.wolfeo.me/v1/contacts-sequences?contact_id=1" \
--header "Authorization: Bearer YOUR_API_KEY"
# Parameters
| Parameter | Type | Description |
|---|---|---|
| email** | string | A contact's email address |
| contact_id** | int | A contact's ID |
** at least one of these parameters must be passed
# Possible Errors
| Code | HTTP | Description |
|---|---|---|
| VALIDATION_ERROR | 422 | Neither email nor contact_id was provided, or one is malformed |
| NOT_FOUND | 404 | No contact found for given parameters |
# Sample Return
{
"success": true,
"data": [
{
"id": 1,
"name": "First Sequence",
"created_at": "2021-01-01 09:00:00"
},
{
"id": 2,
"name": "Second Sequence",
"created_at": "2021-01-01 09:00:00"
}
]
}
# Get A Sequence's Contacts
Returns all contacts subscribed to a sequence (paginated).
GET https://api.wolfeo.me/v1/sequences-contacts
# Example Request
curl --request GET "https://api.wolfeo.me/v1/sequences-contacts?sequence_id=1" \
--header "Authorization: Bearer YOUR_API_KEY"
# Parameters
| Parameter | Type | Description |
|---|---|---|
| sequence_id* | int | A sequence's ID |
| page | int | Page number (default: 1) |
| per_page | int | Results per page, 1–100 (default: 50) |
* denotes a required parameter
# Sample Return
{
"success": true,
"data": [
{
"id": 1,
"email": "first_contact@wolfeo.ie",
"first_name": "First",
"last_name": "Contact"
},
{
"id": 2,
"email": "second_contact@wolfeo.ie",
"first_name": "Second",
"last_name": "Contact"
}
],
"meta": {
"current_page": 1,
"last_page": 3,
"per_page": 50,
"total": 142
}
}
# Delete Sequence
DELETE https://api.wolfeo.me/v1/sequence
Permanently deletes a sequence and all its associated stages.
WARNING
This action is irreversible. All stages belonging to the sequence will also be deleted.
# Example Request
curl --request DELETE "https://api.wolfeo.me/v1/sequence" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{"sequence_id": 12}'
# Parameters
| Parameter | Type | Description |
|---|---|---|
| sequence_id* | integer | The sequence ID to delete |
* denotes a required parameter
# Sample Return
{
"success": true,
"data": {
"deleted": true
}
}
# Possible Errors
| Code | HTTP | Description |
|---|---|---|
| NOT_FOUND | 404 | Sequence not found |
# Delete Sequence Stage
DELETE https://api.wolfeo.me/v1/sequence-stage
Permanently deletes a single stage from a sequence.
# Example Request
curl --request DELETE "https://api.wolfeo.me/v1/sequence-stage" \
--header "Authorization: Bearer YOUR_API_KEY" \
--header "Content-Type: application/json" \
--data '{"stage_id": 55}'
# Parameters
| Parameter | Type | Description |
|---|---|---|
| stage_id* | integer | The stage ID to delete |
* denotes a required parameter
# Sample Return
{
"success": true,
"data": {
"deleted": true
}
}
# Possible Errors
| Code | HTTP | Description |
|---|---|---|
| NOT_FOUND | 404 | Stage not found |