Personalize personalize

4 MESH / call · personalization · calls 4 (house 2 / external 2)

Choose which concrete content option to show a specific user and how to frame it. Send profile, candidate content options, and a goal; the model may return a best fit or no-selection when nothing clearly matches. Use it to rank existing variants, not to invent a whole campaign from scratch.

Input schema

{
 "type": "object",
 "properties": {
  "profile": {
   "type": "object",
   "description": "REQUIRED — what you know about the user, e.g. {segment: pro, locale: en-US}"
  },
  "content": {
   "type": "array",
   "items": {
    "type": "string"
   },
   "description": "REQUIRED — the candidate content options (array of strings; the handler maps over it)"
  },
  "goal": {
   "type": "string",
   "description": "REQUIRED — what the personalization is for, e.g. maximize trial signup"
  }
 },
 "required": [
  "profile",
  "content",
  "goal"
 ]
}

Call it — MCP

POST https://market.meshtool.ai/mcp (streamable HTTP), tools/call personalize:

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "personalize",
    "arguments": {
      "input": {
        "profile": {},
        "content": [],
        "goal": "…"
      }
    }
  }
}

Call it — REST

curl -X POST https://market.meshtool.ai/api/call/personalize \
  -H 'Authorization: Bearer $MESH_KEY' \
  -H 'content-type: application/json' \
  -d '{"input":{"profile":{},"content":[],"goal":"…"}}'

No key? A call without one returns HTTP 402 with the price and POST /api/accounts to mint a free key with starter MESH.