> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.laposta.org/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.laposta.org/_mcp/server.

# Segment toevoegen

POST https://api.laposta.nl/v2/segment
Content-Type: application/x-www-form-urlencoded

Maakt een segment binnen een lijst. De definitie is een JSON-tekst met blokken en regels: alle regels binnen een blok gelden tegelijk, en een extra blok verbreedt de selectie.If there is something wrong with the provided parameters, an error code and message will be displayed. See above under Error Messages for what the codes mean.Erstellt ein Segment innerhalb einer Liste. Die Definition ist ein JSON-Text mit Blöcken und Regeln: alle Regeln innerhalb eines Blocks gelten gleichzeitig, und ein zusätzlicher Block erweitert die Auswahl.Crea un segmento dentro de una lista. La definición es un texto JSON con bloques y reglas: todas las reglas dentro de un bloque se aplican a la vez, y un bloque adicional amplía la selección.

Reference: https://docs.laposta.org/segmenten/segment-toevoegen

## Authentication

- `Authorization` header (basic auth, required) — Vul je API-sleutel in bij `api_key` en laat `leave_empty` leeg. De API gebruikt basic auth, waarbij je sleutel de plaats van de gebruikersnaam inneemt. In curl schrijf je dat als `-u JOUW_SLEUTEL:`, met een dubbele punt en niets erachter.Enter your API key at `api_key` and leave `leave_empty` empty. The API uses basic auth, with your key in place of the username. In curl that reads `-u YOUR_KEY:`, with a colon and nothing after it.Trage deinen API-Schlüssel bei `api_key` ein und lass `leave_empty` leer. Die API nutzt Basic Auth, wobei dein Schlüssel an die Stelle des Benutzernamens tritt. In curl schreibst du das als `-u DEIN_SCHLUESSEL:`, mit einem Doppelpunkt und nichts dahinter.Introduce tu clave API en `api_key` y deja `leave_empty` vacío. La API usa basic auth, con tu clave en lugar del nombre de usuario. En curl se escribe como `-u TU_CLAVE:`, con dos puntos y nada después.

## Request

### Body (application/x-www-form-urlencoded)

This endpoint expects an object.

- `list_id` (string, required) — Het id van de lijst. Dat vind je in het antwoord van [Alle lijsten opvragen](/lijsten/alle-lijsten-opvragen), en in de applicatie in de URL van de lijst.The id of the list. You find it in the response of [Get all lists](/lijsten/alle-lijsten-opvragen), and in the application in the URL of the list.Die ID der Liste. Du findest sie in der Antwort von [Alle Listen abrufen](/lijsten/alle-lijsten-opvragen) und in der Anwendung in der URL der Liste.El id de la lista. Lo encuentras en la respuesta de [Obtener todas las listas](/lijsten/alle-lijsten-opvragen) y en la aplicación, en la URL de la lista.
- `name` (string, required) — De naam van het segment.The name of the segmentDer Name des Segments.El nombre del segmento.
- `definition` (string, required) — De definitie van het segment als JSON-tekst. Zie de uitleg over segmentdefinities bij deze sectie. Let op: een veldnaam die niet bestaat wordt geaccepteerd en levert een segment op dat niemand selecteert.The segment definition as JSON text. Note that a field name that does not exist is accepted and produces a segment that matches nobody.Die Definition des Segments als JSON-Text. Siehe die Erklärung zu Segmentdefinitionen bei diesem Abschnitt. Achtung: ein Feldname, der nicht existiert, wird akzeptiert und ergibt ein Segment, das niemanden auswählt.La definición del segmento como texto JSON. Consulta la explicación sobre las definiciones de segmento en esta sección. Ten en cuenta que un nombre de campo que no existe se acepta y da como resultado un segmento que no selecciona a nadie.

## Response

### 201

De aanvraag is gelukt.The request succeeded.Die Anfrage war erfolgreich.La solicitud se ha realizado correctamente.

- `segment` (Segment, optional) — Het segment-objectThe segment objectDas segment-ObjektEl objeto segment

## Errors

### 400 Bad Request Error

De aanvraag klopt niet. Het antwoord bevat een `type`, een `message` en meestal een `code` en de `parameter` die de fout veroorzaakte. Een object dat niet bestaat valt ook hieronder, met code 203.The request is not valid. The response contains a `type`, a `message` and usually a `code` plus the `parameter` that caused it. An object that does not exist also falls under this, with code 203.Die Anfrage stimmt nicht. Die Antwort enthält einen `type`, eine `message` und meistens einen `code` und den `parameter`, der den Fehler verursacht hat. Ein Objekt, das nicht existiert, fällt ebenfalls hierunter, mit Code 203.La solicitud no es correcta. La respuesta contiene un `type`, un `message` y normalmente un `code` y el `parameter` que ha causado el error. Un objeto que no existe también entra aquí, con el código 203.

- `error` (ErrorError, optional)

### 401 Unauthorized Error

Er is geen geldige API-sleutel meegestuurd, of dit endpoint staat niet aan voor dit account.No valid API key was provided, or this endpoint is not enabled for this account.Es wurde kein gültiger API-Schlüssel mitgeschickt, oder dieser Endpunkt ist für dieses Konto nicht aktiv.No se ha enviado una clave API válida, o este endpoint no está activado para esta cuenta.

- `error` (ErrorError, optional)

### 429 Too Many Requests Error

Je hebt te veel aanvragen in een minuut gedaan. De header `Retry-After` vertelt na hoeveel seconden het weer mag.Too many requests in one minute. The `Retry-After` header tells you how many seconds to wait.Du hast zu viele Anfragen in einer Minute gestellt. Der Header `Retry-After` sagt, nach wie vielen Sekunden es wieder erlaubt ist.Has hecho demasiadas solicitudes en un minuto. La cabecera `Retry-After` indica después de cuántos segundos puedes volver a intentarlo.

- `error` (ErrorError, optional)

## Types

### Segment

Het segment-objectThe segment objectDas segment-ObjektEl objeto segment

- `segment_id` (string, optional) — Het id van deze segment.The ID of this segmentDie ID dieses Segments.El ID de este segmento.
- `list_id` (string, optional) — Het id van de lijst waartoe het segment behoort.The ID of the list to which the segment belongsDie ID der Liste, zu der das Segment gehört.El ID de la lista a la que pertenece el segmento.
- `timezone` (string, optional) — De tijdzone van het account voor datum- en tijdvelden.The account timezone used for datetime fieldsDie Zeitzone des Kontos für Datums- und Zeitfelder.La zona horaria de la cuenta para los campos de fecha y hora.
- `name` (string, optional) — De naam van het segment.The name of the segmentDer Name des Segments.El nombre del segmento.
- `definition` (string, optional) — De definitie van het segment, als JSON-tekst met blokken en regels.The definition of the segment (string in JSON format)Die Definition des Segments, als JSON-Text mit Blöcken und Regeln.La definición del segmento, como texto JSON con bloques y reglas.
- `created` (string, optional) — Moment van aanmaken.Time of creationZeitpunkt der Erstellung.Momento de creación.
- `created_iso` (string, optional, nullable) — Moment van aanmaken in ISO-formaat.Time of creation in ISO formatZeitpunkt der Erstellung im ISO-Format.Momento de creación en formato ISO.
- `modified` (string, optional, nullable) — Moment van laatste wijziging.Time of last modificationZeitpunkt der letzten Änderung.Momento de la última modificación.
- `modified_iso` (string, optional, nullable) — Moment van laatste wijziging in ISO-formaat.Time of last modification in ISO formatZeitpunkt der letzten Änderung im ISO-Format.Momento de la última modificación en formato ISO.
- `state` (enum, optional) — De status van dit segment: active of deleted.The state of this segment: active or deleted.Der Status dieses Segments: active oder deleted.El estado de este segmento: active o deleted.
  - Allowed values: `active`, `deleted`

### ErrorError

- `type` (enum, required)
  - Allowed values: `invalid_request`, `invalid_input`, `internal`
- `message` (string, required)
- `code` (integer, optional)
- `parameter` (string, optional)

## Examples

**Request**

```json
{
  "list_id": "BaImMu3JZA",
  "name": "Nieuwsbrief",
  "definition": "{\"blocks\":[{\"rules\":[{\"input\":{\"subject\":\"woonplaats\",\"comparator\":\"equal\",\"multi\":\"\",\"text\":\"Utrecht\"},\"type\":\"members\"}]}]}"
}
```

**Response**

```json
{
  "segment": {
    "segment_id": "pDrp5KOD0z",
    "list_id": "BaImMu3JZA",
    "timezone": "Europe/Amsterdam",
    "name": "Nieuwsbrief",
    "definition": "string",
    "created": "string",
    "created_iso": "string",
    "modified": "string",
    "modified_iso": "string",
    "state": "active"
  }
}
```

**SDK Code**

```python
import requests

url = "https://api.laposta.nl/v2/segment"

payload = ""
headers = {
    "Content-Type": "application/x-www-form-urlencoded"
}

response = requests.post(url, data=payload, headers=headers, auth=("<api_key>", "<leave_empty>"))

print(response.json())
```

```javascript
const url = 'https://api.laposta.nl/v2/segment';
const credentials = btoa("<api_key>:<leave_empty>");

const options = {
  method: 'POST',
  headers: {
    Authorization: `Basic ${credentials}`,
    'Content-Type': 'application/x-www-form-urlencoded'
  },
  body: new URLSearchParams('')
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://api.laposta.nl/v2/segment"

	req, _ := http.NewRequest("POST", url, nil)

	req.SetBasicAuth("<api_key>", "<leave_empty>")
	req.Header.Add("Content-Type", "application/x-www-form-urlencoded")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://api.laposta.nl/v2/segment")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request.basic_auth("<api_key>", "<leave_empty>")
request["Content-Type"] = 'application/x-www-form-urlencoded'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.laposta.nl/v2/segment")
  .basicAuth("<api_key>", "<leave_empty>")
  .header("Content-Type", "application/x-www-form-urlencoded")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.laposta.nl/v2/segment', [
  'form_params' => null,
  'headers' => [
    'Content-Type' => 'application/x-www-form-urlencoded',
  ],
    'auth' => ['<api_key>', '<leave_empty>'],
]);

echo $response->getBody();
```

```csharp
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://api.laposta.nl/v2/segment");
client.Authenticator = new HttpBasicAuthenticator("<api_key>", "<leave_empty>");
var request = new RestRequest(Method.POST);

request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let credentials = Data("<api_key>:<leave_empty>".utf8).base64EncodedString()

let headers = [
  "Authorization": "Basic \(credentials)",
  "Content-Type": "application/x-www-form-urlencoded"
]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.laposta.nl/v2/segment")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```