POST/api/v1/projects/{project_id}/lists
Needs scope: writeIdempotency-KeyMCP tool: create_list
operationId create_list
Create a list
Creates a mailing list in the project. Needs scope write; an admin
key may create one in any live project.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
project_idrequired |
path | string · uuid | The project’s id |
Idempotency-Key |
header | string
1–128 characters · pattern |
A key of the client’s choosing, one per request it means to send once (a UUID will do). A repeat with the same key and the same body within 24 h creates nothing again and gets the first answer, marked Idempotent-Replayed: true. The key belongs to the API key that sent it. Only a 2xx answer is kept: after any other answer the key is free again. |
Request body
application/json · required
- CreateListRequest object
-
namestringrequiredWhat people call the list: 1 to 128 characters, trimmed. Two lists may share a name.
example
Weekly news -
confirmation_template_idstring · uuid | nullThe template of the confirmation letter: the id of a message template of the project; required with
double_opt_in.nullor left out: none. -
double_opt_inbooleanSubscribers confirm by a link before they get campaigns; default
false. Needsconfirmation_template_id. -
from_overrideFromOverrideInput | nullThe sender of the list’s own letters (confirmations) in place of the project’s;
nullor left out: the project’s.2 fields
- FromOverrideInput object
-
from_emailstring · emailrequiredThe sender address.
example
news@acme.example -
from_namestring | nullThe sender name, 1 to 128 characters, no line breaks;
nullor left out: the project’ssettings.from_name.example
Acme News
Responses
201
The list
| Header | Type | Description |
|---|---|---|
Idempotent-Replayed | string · enum | true when the answer is a replay of an earlier request with the same Idempotency-Key; absent otherwise. |
Location | string | The list’s URL |
- List object · all fields required
-
confirmation_template_idstring · uuid | nullThe template of the confirmation letter;
null: none. -
created_atstring · date-time -
deleted_atstring · date-time | nullWhen the list was deleted;
nullwhile it is live. A deleted list can only be read. -
double_opt_inbooleanSubscribers confirm by a link before they get campaigns.
-
from_overrideFromOverride | nullThe sender of the list’s own letters;
null: the project’s.2 fields
- FromOverride object · all fields required
-
from_emailstring · email -
from_namestring | nullnull: the project’ssettings.from_name.
-
idstring · uuidexample
01900000-0000-7000-8000-000000000001 -
namestringexample
Weekly news -
project_idstring · uuidThe list’s project.
-
updated_atstring · date-timeThe latest change: creation, name, options, deletion.
409
The project is deleted (conflict); or a request with the same Idempotency-Key has not answered yet (idempotency_key_in_progress)
422
Invalid fields, every one in errors (validation_failed): unknown_field, required (also confirmation_template_id with double_opt_in), invalid_type, invalid; or the Idempotency-Key was used in the last 24 h for another request (idempotency_key_reused), or is not 1 to 128 visible ASCII characters (validation_failed, field Idempotency-Key)
429
The key is over its rate limit, api.rate_limit_per_minute requests a minute on this node (rate_limited)
| Header | Type | Description |
|---|---|---|
Retry-After | integer | Seconds until the key’s next request passes; rounded up. |
504
Postwind’s storage did not answer within its time limit (storage_timeout). A change the request makes may still take effect: check before repeating it. A repeat with the same Idempotency-Key never runs it twice: it is 409 idempotency_key_in_progress until the key’s 24 h end