Projects

Organize newsletters, sequences, and automations into named projects. Assign resources via project_ids on newsletter create/update, then filter the newsletter and sequence list endpoints with ?project={projectId}.

GET/api/v1/projects

Get all projects for the authenticated client. Cursor-paginated (per_page default 25, max 100; cursor for next/previous page). Each project includes counts of attached newsletters, sequences, and automations.

Response Fields

idinteger

The project ID.

uuidstring

The project UUID.

namestring

The project name.

newsletters_countinteger

Number of newsletters assigned to the project.

sequences_countinteger

Number of sequences assigned to the project.

automations_countinteger

Number of automations assigned to the project.

visual_automations_countinteger

Number of visual automations assigned to the project.

created_atstring

ISO 8601 creation timestamp.

metaobject

Cursor pagination metadata (path, per_page, next_cursor, prev_cursor).

Request

curl -X GET \
  "https://byomailer.com/api/v1/projects" \
  -H "Authorization: Bearer {your-api-token}" \
  -H "Accept: application/json"

Response

200
{
  "data": [
    {
      "id": 2,
      "uuid": "project-uuid-2",
      "name": "Q3 Launch",
      "newsletters_count": 4,
      "sequences_count": 1,
      "automations_count": 0,
      "visual_automations_count": 2,
      "created_at": "2026-07-20T10:00:00.000000Z"
    },
    {
      "id": 1,
      "uuid": "project-uuid-1",
      "name": "Evergreen Onboarding",
      "newsletters_count": 0,
      "sequences_count": 3,
      "automations_count": 1,
      "visual_automations_count": 0,
      "created_at": "2026-07-18T09:00:00.000000Z"
    }
  ],
  "meta": {
    "path": "https://byomailer.com/api/v1/projects",
    "per_page": 25,
    "next_cursor": null,
    "prev_cursor": null
  }
}
GET/api/v1/projects/{projectId}

Get a single project by ID, including attached resource counts.

Path Parameters

projectIdinteger
required

The ID of the project to retrieve.

Response Fields

idinteger

The project ID.

uuidstring

The project UUID.

namestring

The project name.

newsletters_countinteger

Number of newsletters assigned to the project.

sequences_countinteger

Number of sequences assigned to the project.

automations_countinteger

Number of automations assigned to the project.

visual_automations_countinteger

Number of visual automations assigned to the project.

created_atstring

ISO 8601 creation timestamp.

Request

curl -X GET \
  "https://byomailer.com/api/v1/projects/{projectId}" \
  -H "Authorization: Bearer {your-api-token}" \
  -H "Accept: application/json"

Response

200
{
  "data": {
    "id": 2,
    "uuid": "project-uuid-2",
    "name": "Q3 Launch",
    "newsletters_count": 4,
    "sequences_count": 1,
    "automations_count": 0,
    "visual_automations_count": 2,
    "created_at": "2026-07-20T10:00:00.000000Z"
  }
}
POST/api/v1/projects

Create a new project. The name must be unique per account (case-insensitive).

Body Parameters

namestring
required

The project name. Max 255 characters. Unique per account (case-insensitive).

Response Fields

idinteger

The project ID.

uuidstring

The project UUID.

namestring

The project name.

created_atstring

ISO 8601 creation timestamp.

Request

curl -X POST \
  "https://byomailer.com/api/v1/projects" \
  -H "Authorization: Bearer {your-api-token}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Q3 Launch"
}'

Response

201
{
  "data": {
    "id": 3,
    "uuid": "project-uuid-3",
    "name": "Q3 Launch",
    "created_at": "2026-07-23T11:00:00.000000Z"
  }
}
PATCH/api/v1/projects/{projectId}

Rename a project. The name must be unique per account (case-insensitive).

Path Parameters

projectIdinteger
required

The ID of the project to update.

Body Parameters

namestring
required

The new project name. Max 255 characters. Unique per account (case-insensitive).

Response Fields

idinteger

The project ID.

uuidstring

The project UUID.

namestring

The updated project name.

created_atstring

ISO 8601 creation timestamp.

Request

curl -X PATCH \
  "https://byomailer.com/api/v1/projects/{projectId}" \
  -H "Authorization: Bearer {your-api-token}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Q3 Product Launch"
}'

Response

200
{
  "data": {
    "id": 3,
    "uuid": "project-uuid-3",
    "name": "Q3 Product Launch",
    "created_at": "2026-07-23T11:00:00.000000Z"
  }
}
DELETE/api/v1/projects/{projectId}

Delete a project. Attached newsletters, sequences, and automations are detached, not deleted.

Path Parameters

projectIdinteger
required

The ID of the project to delete.

Request

curl -X DELETE \
  "https://byomailer.com/api/v1/projects/{projectId}" \
  -H "Authorization: Bearer {your-api-token}" \
  -H "Accept: application/json"

Response

204
No content
BYOMailer

© 2026 All rights reserved.