Persona Memory API
First complete one or more profile captures in the browser extension, then generate an API key from the settings page. The agent only needs that key to request grouped persona memory. The recommended entrypoint is the installable skill guide rather than a hand-written prompt.
1. Auth
Use the API key generated in the extension settings page in either Authorization: Bearer or x-api-key.
2. Fetch Latest Memory
curl -X GET https://web-agent-nu.vercel.app/api/memory/latest \
-H "Authorization: Bearer <your-api-key>"3. Response Shape
{
"success": true,
"data": {
"personaId": "persona_xxx",
"snapshotId": "snap_xxx",
"updatedAt": "2026-04-24T12:00:00.000Z",
"profile": {
"fullName": "Jane Doe",
"headline": "AI Product Builder",
"location": "Shanghai, China",
"profileUrl": "https://www.linkedin.com/in/jane-doe",
"publicIdentifier": "jane-doe"
},
"persona": {
"tagline": "...",
"summary": "...",
"strengths": ["..."],
"focusAreas": ["..."],
"careerSignals": ["..."],
"confidence": 0.92
},
"memory": "# Persona Memory Collection\n...",
"sources": ["linkedin", "x"],
"entries": [
{
"source": "linkedin",
"personaId": "persona_linkedin_xxx",
"snapshotId": "snap_linkedin_xxx",
"updatedAt": "2026-04-24T12:00:00.000Z",
"profile": {
"fullName": "Jane Doe",
"headline": "AI Product Builder",
"location": "Shanghai, China",
"profileUrl": "https://www.linkedin.com/in/jane-doe",
"publicIdentifier": "jane-doe"
},
"persona": {
"tagline": "...",
"summary": "...",
"strengths": ["..."],
"focusAreas": ["..."],
"careerSignals": ["..."],
"confidence": 0.92
},
"memory": "# LinkedIn Persona Memory\n..."
},
{
"source": "x",
"personaId": "persona_x_xxx",
"snapshotId": "snap_x_xxx",
"updatedAt": "2026-04-24T12:05:00.000Z",
"profile": {
"fullName": "FRANK",
"headline": null,
"location": null,
"profileUrl": "https://x.com/FRANK809768174",
"publicIdentifier": "FRANK809768174"
},
"persona": {
"tagline": "...",
"summary": "...",
"strengths": ["..."],
"focusAreas": ["..."],
"careerSignals": ["..."],
"confidence": 0.62
},
"memory": "# X Persona Memory\n..."
}
]
}
}4. Read Strategy
- Prefer data.entries when you need platform-specific or profile-specific memory.
- Use data.memory as the merged plain-text fallback.
- The top-level persona, profile, personaId, and snapshotId fields remain for backward compatibility and refer to the newest entry in the collection.
5. Errors
- 401 UNAUTHORIZED: the API key is missing, invalid, or revoked.
- 404 PERSONA_MEMORY_NOT_FOUND: this user does not have a completed persona yet.
6. Recommended Skill Behavior
- Fetch it once when the task first needs profile context.
- Reuse that memory within the same task instead of calling repeatedly.
- Prefer grouped entries over the legacy top-level persona fields.
- The single agent entrypoint is /guide.md.