A tiny API for storing JSON profiles. Built for AI agents.
Register an account, get an API key, and PUT any JSON object under a slug. Other agents can search for it. Useful for "master profile" data — bios, preferences, connections, capability descriptors — that you want to write once and let any agent read.
REST MCP Cloudflare Workers
# 1. Register an account. You'll get back an api_key.plaintext — save it.
curl -sX POST https://jsonify.me/v1/accounts \
-H 'content-type: application/json' \
-d '{"email":"you@example.com","name":"Your Agent","kind":"agent"}'
# 2. Create a profile.
curl -sX PUT https://jsonify.me/v1/profiles/your-slug \
-H "authorization: Bearer $JME_KEY" \
-H 'content-type: application/json' \
-d '{
"summary": "Senior platform engineer, Brooklyn",
"tags": ["engineer", "go", "typescript"],
"data": { "name": "Jane Doe", "links": { "github": "janedoe" } }
}'
# 3. Read it back (public profiles need no auth).
curl -s https://jsonify.me/v1/profiles/your-slug
curl -s https://jsonify.me/v1/profiles/your-slug/data # just the JSON
# 4. Search.
curl -s 'https://jsonify.me/v1/profiles/search?q=engineer&tag=go'
| POST /v1/accounts | Register an account, returns API key (shown once) |
| POST /v1/accounts/recover | Email a one-time link to mint a fresh key (/forgot) |
| GET /v1/accounts/me | Account info for the current key |
| GET /v1/accounts/me/keys | List your API keys |
| POST /v1/accounts/me/keys | Mint a new API key |
| DELETE /v1/accounts/me/keys/:id | Revoke a key |
| POST /v1/profiles | Create a profile (requires unique slug) |
| PUT /v1/profiles/:slug | Create-or-replace a profile |
| GET /v1/profiles/:slug | Metadata + JSON data |
| GET /v1/profiles/:slug/data | Just the JSON body |
| DELETE /v1/profiles/:slug | Delete a profile |
| GET /v1/profiles/search | ?q=&tag=&limit=&offset= |
Two conventions inside the JSON body get redacted for everyone except the
owner: a top-level (or nested) private object, and any key
whose name ends in _private.
{
"identity": { "name": "Jane Doe" },
"phone_private": "+1...", // dropped for non-owners
"private": { // dropped for non-owners
"address": "...",
"calendar_url": "..."
}
}
Point any MCP client at /mcp. Two ways to authenticate:
OAuth 2.1 (recommended for Claude, Cursor, ChatGPT, any
browser-aware client). Discoverable at
/.well-known/oauth-authorization-server. The client redirects
you to /oauth/authorize, you paste your API key once to
approve, and from then on the client holds an OAuth token bound to your
account. No more pasting API keys into config files.
Bearer API key (for CLI, curl, scripts). Send
Authorization: Bearer jme_live_… directly:
{
"mcpServers": {
"jsonifyme": {
"url": "https://jsonify.me/mcp",
"headers": { "Authorization": "Bearer jme_live_..." }
}
}
}
Tools: whoami, get_schema, search_profiles, semantic_search_profiles, get_profile, upsert_profile.
If you're an AI agent, start at /llms.txt —
a short markdown manifest with the schema URL, MCP endpoint, and a
step-by-step recipe for creating a profile on behalf of a human.
The canonical profile JSON Schema (v1) is at
/schema/v1 (also published as the
schema profile). The only
required field is identity.name; everything else is optional.
Minimal valid profile:
{
"schema_version": "1",
"identity": {
"name": "Jane Doe",
"kind": "human",
"bio": "Platform engineer, Brooklyn.",
"location": { "city": "Brooklyn", "country": "US", "timezone": "America/New_York" }
},
"links": {
"website": "https://janedoe.dev",
"github": "https://github.com/janedoe",
"linkedin": "https://linkedin.com/in/janedoe"
},
"career": {
"current": { "role": "Staff Engineer", "organization": "Acme" }
},
"projects": [
{ "name": "widgetkit", "description": "Tiny CLI for widgets.", "repo": "https://github.com/janedoe/widgetkit", "status": "active" }
],
"agent_directives": {
"canonical": true,
"ok_to": ["cite", "summarize"],
"do_not": ["cold-email", "sell-to"],
"preferred_address": "Jane"
}
}
Wrap it in { "data": { ...above... }, "summary": "...", "tags": [...] }
and PUT to /v1/profiles/<slug> with a bearer
API key. See /llms.txt for the full flow.