{
  "generated_at": "2026-09-17T09:07:23.940201+00:00",
  "source": "https://docs.mapp.com/llms.txt and https://docs.mapp.com/apidocs/*.md",
  "calls": [
    {
      "operation": "create",
      "slug": "create-a-selection-plan",
      "url": "https://docs.mapp.com/apidocs/create-a-selection-plan.md",
      "title": "Create a segment plan",
      "method": "POST",
      "path": "/segmentation/create",
      "summary": "Create a segment plan",
      "description": "Creates a new segment plan. The request body is a wrapper whose json field carries the raw plan JSON document as a string (escaped). The plan must contain at least name and nodes ; validate it against schema first. Returns the new plan's id. Example body { \"json\": \"{\\\"name\\\":\\\"My plan\\\",\\\"timeZoneId\\\":\\\"Europe/Belgrade\\\",\\\"nodes\\\":[ ... ]}\" }",
      "parameters": [],
      "body_fields": [
        {
          "name": "json",
          "type": "string",
          "format": null,
          "required": false
        }
      ],
      "responses": [
        {
          "code": "200",
          "description": "The new plan's id, e.g. {\"id\":\"...\"}."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [
        {
          "code": "200",
          "fields": [
            {
              "name": "id",
              "type": "string",
              "format": null,
              "required": false
            }
          ]
        }
      ],
      "examples": [
        "{ \"json\": \"{\\\"name\\\":\\\"My plan\\\",\\\"timeZoneId\\\":\\\"Europe/Belgrade\\\",\\\"nodes\\\":[ ... ]}\" }",
        "{\\n \\\"json\\\": \\\"{\\\\\\\"name\\\\\\\":\\\\\\\"My plan\\\\\\\",\\\\\\\"timeZoneId\\\\\\\":\\\\\\\"Europe/Belgrade\\\\\\\",\\\\\\\"nodes\\\\\\\":[ ... ]}\\\"\\n}"
      ],
      "demo_examples": [
        "Erstelle ein Segment Name: Demo geklickt für Kontakte, die noch nie geöffnet und nie geklickt haben"
      ],
      "chat_behavior": "builds PlanCreate JSON, wraps it as body.json string, returns new ID",
      "safety": "write: creates a new draft plan"
    },
    {
      "operation": "delete",
      "slug": "delete-a-selection-plan",
      "url": "https://docs.mapp.com/apidocs/delete-a-selection-plan.md",
      "title": "Delete a segment plan",
      "method": "DELETE",
      "path": "/segmentation/delete",
      "summary": "Delete a segment plan",
      "description": "Permanently deletes a segment plan by ID. Irreversible. Segment Builder responds 204 No Content on success.",
      "parameters": [
        {
          "name": "id",
          "in": "query",
          "required": true,
          "description": "ID of the plan to delete (GUID).",
          "type": "string"
        }
      ],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "Plan deleted."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [],
      "examples": [],
      "demo_examples": [
        "Lösche Segment ID <id>"
      ],
      "chat_behavior": "requires explicit ID; should require confirmation before delete",
      "safety": "destructive"
    },
    {
      "operation": "find",
      "slug": "find-selection-plans",
      "url": "https://docs.mapp.com/apidocs/find-selection-plans.md",
      "title": "Find segment plans",
      "method": "POST",
      "path": "/segmentation/find",
      "summary": "Find segment plans",
      "description": "Returns a paged list of segment plans (without node detail). Filter, sort and paging criteria are supplied in the request body; all fields are optional - send an empty body or {} to list with server defaults. Body fields (all optional): page - zero-based page index (default 0). size - page size (default: server page size). sort - array of \"field,asc|desc\" ; the first entry is the primary key, the rest are tie-breakers. E.g. \"overviewCount.size,desc\" , \"createdOn,asc\" . name - case-insensitive substring match on plan name. status - exact status, e.g. draft or published . labels - label filter. id - substring match on plan id. selectionTermId - match on the published segment term id. createdByName - case-insensitive substring on the creator's display name. createdBefore / updatedBefore / publishedBefore - ISO-8601 timestamp upper bounds. Example body { \"page\": 0, \"size\": 3, \"sort\": [\"overviewCount.size,desc\", \"createdOn,asc\"], \"name\": \"544\" }",
      "parameters": [],
      "body_fields": [
        {
          "name": "page",
          "type": "integer",
          "format": "int32",
          "required": false
        },
        {
          "name": "size",
          "type": "integer",
          "format": "int32",
          "required": false
        },
        {
          "name": "sort",
          "type": "array",
          "format": null,
          "required": false
        },
        {
          "name": "name",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "status",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "labels",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "id",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "selectionTermId",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "createdByName",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "createdBefore",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "updatedBefore",
          "type": "string",
          "format": null,
          "required": false
        },
        {
          "name": "publishedBefore",
          "type": "string",
          "format": null,
          "required": false
        }
      ],
      "responses": [
        {
          "code": "200",
          "description": "A paged list of matching plans (without node detail)."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [
        {
          "code": "200",
          "fields": [
            {
              "name": "segmentationSummary",
              "type": "array",
              "format": null,
              "required": false
            },
            {
              "name": "number",
              "type": "integer",
              "format": "int32",
              "required": false
            },
            {
              "name": "size",
              "type": "integer",
              "format": "int32",
              "required": false
            },
            {
              "name": "totalElements",
              "type": "integer",
              "format": "int64",
              "required": false
            },
            {
              "name": "totalPages",
              "type": "integer",
              "format": "int32",
              "required": false
            }
          ]
        }
      ],
      "examples": [
        "{ \"page\": 0, \"size\": 3, \"sort\": [\"overviewCount.size,desc\", \"createdOn,asc\"], \"name\": \"544\" }",
        "{\\n \\\"page\\\": 0,\\n \\\"size\\\": 3,\\n \\\"sort\\\": [\\\"overviewCount.size,desc\\\", \\\"createdOn,asc\\\"],\\n \\\"name\\\": \\\"544\\\"\\n}"
      ],
      "demo_examples": [
        "Zeig mir alle Segmente mit Demo",
        "Zeig mir die ersten 3 Entwurf Segmente mit Demo",
        "Zeig mir die 5 ältesten Segmente"
      ],
      "chat_behavior": "maps natural language to server-side find filters and returns cleartext list",
      "safety": "read"
    },
    {
      "operation": "get",
      "slug": "get-a-selection-plan",
      "url": "https://docs.mapp.com/apidocs/get-a-selection-plan.md",
      "title": "Get a segment plan",
      "method": "GET",
      "path": "/segmentation/get",
      "summary": "Get a segment plan",
      "description": "Returns a single segment plan by ID in FULL - every node with its complete selector configuration. This is the lossless read: the returned shape is exactly what update accepts, so a fetch-modify-resubmit round-trip is safe. Use this (not preview ) whenever the plan will be edited and saved back.",
      "parameters": [
        {
          "name": "id",
          "in": "query",
          "required": true,
          "description": "ID of the plan to retrieve (GUID), e.g. FF784C2A-B3FD-4851-A49A-ECC807E8F8A2.",
          "type": "string"
        }
      ],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "The full plan as a JSON document."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [],
      "examples": [],
      "demo_examples": [
        "Lade Segment ID <id>"
      ],
      "chat_behavior": "fetches full segment plan by ID and summarizes it",
      "safety": "read"
    },
    {
      "operation": "getCount",
      "slug": "get-a-segment-count",
      "url": "https://docs.mapp.com/apidocs/get-a-segment-count.md",
      "title": "Get a segment count",
      "method": "GET",
      "path": "/segmentation/getCount",
      "summary": "Get a segment count",
      "description": "Returns segment count size for requested segment plan id.",
      "parameters": [
        {
          "name": "termId",
          "in": "query",
          "required": true,
          "description": "ID of segment term user wants to get a count for.",
          "type": "string"
        }
      ],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "Returned count result with last updated date"
        },
        {
          "code": "400",
          "description": "Provided term ID is invalid, No term id found for specified ID, An unexpected backend error has occurred."
        }
      ],
      "response_fields": [],
      "examples": [],
      "demo_examples": [
        "Wie viele Kontakte sind im Segment ID <id>?"
      ],
      "chat_behavior": "returns current/last calculated count for one segment",
      "safety": "read"
    },
    {
      "operation": "preview",
      "slug": "preview-a-selection-plan",
      "url": "https://docs.mapp.com/apidocs/preview-a-selection-plan.md",
      "title": "Preview a segment plan",
      "method": "GET",
      "path": "/segmentation/preview",
      "summary": "Preview a segment plan",
      "description": "Returns a single segment plan by ID in REDUCED form: identity, status, time zone and a lightweight node tree (node types, and per criterion selector type / operator / property / values) but no selector configuration. Cheap to render and reason over. Lossy - never feed this back into update ; use get for round-trips.",
      "parameters": [
        {
          "name": "id",
          "in": "query",
          "required": true,
          "description": "ID of the plan to preview (GUID), e.g. FF784C2A-B3FD-4851-A49A-ECC807E8F8A2.",
          "type": "string"
        }
      ],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "The reduced plan view as a JSON document."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [],
      "examples": [],
      "demo_examples": [
        "Preview Segment ID <id>"
      ],
      "chat_behavior": "fetches reduced plan preview by ID",
      "safety": "read"
    },
    {
      "operation": "publish",
      "slug": "publish-a-selection-plan",
      "url": "https://docs.mapp.com/apidocs/publish-a-selection-plan.md",
      "title": "Publish a segment plan",
      "method": "POST",
      "path": "/segmentation/publish",
      "summary": "Publish a segment plan",
      "description": "Publishes a segment plan by ID, making it the live published version and assigning a segment term id. There is no request body - publishing acts on the plan already saved by create / update . The plan is fully validated on publish (drafts may save with invalid criteria, but publish rejects them). Returns the published plan's metadata (without node detail).",
      "parameters": [
        {
          "name": "id",
          "in": "query",
          "required": true,
          "description": "ID of the plan to publish (GUID).",
          "type": "string"
        },
        {
          "name": "isBeta",
          "in": "query",
          "required": false,
          "description": "Use the beta calculation path. Defaults to false.",
          "type": "boolean"
        },
        {
          "name": "fastCountMode",
          "in": "query",
          "required": false,
          "description": "Fast-count mode. Defaults to 'off'.",
          "type": "string"
        }
      ],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "The published plan's metadata (without node detail)."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [
        {
          "code": "200",
          "fields": [
            {
              "name": "id",
              "type": "string",
              "format": null,
              "required": false
            },
            {
              "name": "name",
              "type": "string",
              "format": null,
              "required": false
            },
            {
              "name": "status",
              "type": "string",
              "format": null,
              "required": false
            },
            {
              "name": "timeZone",
              "type": "object",
              "format": null,
              "required": false
            },
            {
              "name": "selectionTermId",
              "type": "integer",
              "format": "int64",
              "required": false
            },
            {
              "name": "labels",
              "type": "array",
              "format": null,
              "required": false
            },
            {
              "name": "createdBy",
              "type": "object",
              "format": null,
              "required": false
            },
            {
              "name": "createdOn",
              "type": "string",
              "format": null,
              "required": false
            },
            {
              "name": "publishedBy",
              "type": "object",
              "format": null,
              "required": false
            },
            {
              "name": "publishedOn",
              "type": "string",
              "format": null,
              "required": false
            },
            {
              "name": "updatedBy",
              "type": "object",
              "format": null,
              "required": false
            },
            {
              "name": "updatedOn",
              "type": "string",
              "format": null,
              "required": false
            }
          ]
        }
      ],
      "examples": [],
      "demo_examples": [
        "Veröffentliche Segment ID <id>"
      ],
      "chat_behavior": "requires explicit ID and should require confirmation",
      "safety": "write/action"
    },
    {
      "operation": "schema",
      "slug": "get-the-selection-plan-schema",
      "url": "https://docs.mapp.com/apidocs/get-the-selection-plan-schema.md",
      "title": "Get the segment plan schema",
      "method": "GET",
      "path": "/segmentation/schema",
      "summary": "Get the segment plan schema",
      "description": "Returns the segment plan JSON schema as a string. The schema describes every node type, selector and field (including the string-boolean fields such as negated , caseSensitive , present and ignoreYear , which are serialized as the strings \"true\" / \"false\" ). Fetch it once and validate a plan body against it before calling create or update . Takes no parameters.",
      "parameters": [],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "The schema as a JSON document string."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [],
      "examples": [],
      "demo_examples": [
        "Zeig mir das Segment Schema"
      ],
      "chat_behavior": "loads JSON schema used to validate generated segment plans",
      "safety": "read"
    },
    {
      "operation": "triggerCount",
      "slug": "trigger-a-segment-count",
      "url": "https://docs.mapp.com/apidocs/trigger-a-segment-count.md",
      "title": "Trigger a segment count",
      "method": "POST",
      "path": "/segmentation/triggerCount",
      "summary": "Trigger a segment count",
      "description": "Returns count size for requested termId.",
      "parameters": [
        {
          "name": "termId",
          "in": "query",
          "required": true,
          "description": "ID of segment term user wants to get a count for.",
          "type": "string"
        }
      ],
      "body_fields": [],
      "responses": [
        {
          "code": "200",
          "description": "Returns uuid of order for submitted termId"
        },
        {
          "code": "400",
          "description": "Provided term ID is invalid, No term id found for specified ID, An unexpected backend error has occurred."
        }
      ],
      "response_fields": [],
      "examples": [],
      "demo_examples": [
        "Starte Count für Segment ID <id>"
      ],
      "chat_behavior": "starts a count calculation for one segment",
      "safety": "action"
    },
    {
      "operation": "update",
      "slug": "update-a-selection-plan",
      "url": "https://docs.mapp.com/apidocs/update-a-selection-plan.md",
      "title": "Update a segment plan",
      "method": "PUT",
      "path": "/segmentation/update",
      "summary": "Update a segment plan",
      "description": "Overwrites an existing segment plan. The query parameter id identifies the plan; the request body is a wrapper whose json field carries the full plan JSON document as a string (escaped). Update replaces the whole plan, so fetch the current plan with get first, modify it, then send it back here. If the plan JSON also contains an id it must match the query id . Returns the updated plan. Example body { \"json\": \"{\\\"id\\\":\\\"FF784C2A-...\\\",\\\"name\\\":\\\"My plan\\\",\\\"nodes\\\":[ ... ]}\" }",
      "parameters": [
        {
          "name": "id",
          "in": "query",
          "required": true,
          "description": "ID of the plan to update (GUID).",
          "type": "string"
        }
      ],
      "body_fields": [
        {
          "name": "json",
          "type": "string",
          "format": null,
          "required": false
        }
      ],
      "responses": [
        {
          "code": "200",
          "description": "The updated plan as a JSON document."
        },
        {
          "code": "400",
          "description": "bad request"
        }
      ],
      "response_fields": [],
      "examples": [
        "{ \"json\": \"{\\\"id\\\":\\\"FF784C2A-...\\\",\\\"name\\\":\\\"My plan\\\",\\\"nodes\\\":[ ... ]}\" }",
        "{\\n \\\"json\\\": \\\"{\\\\\\\"id\\\\\\\":\\\\\\\"FF784C2A-...\\\\\\\",\\\\\\\"name\\\\\\\":\\\\\\\"My plan\\\\\\\",\\\\\\\"nodes\\\\\\\":[ ... ]}\\\"\\n}"
      ],
      "demo_examples": [
        "Ändere Segment ID <id> auf Gruppe 12345"
      ],
      "chat_behavior": "get first, modify full plan, then update because update overwrites the whole plan",
      "safety": "write"
    }
  ]
}