{"openapi":"3.1.0","info":{"title":"Systemores Behavior Profiler API","version":"1.0.0","summary":"Deterministic 21-dimension Murray Needs-Press and Big Five OCEAN behavioral intelligence API & MCP 2026 server.","description":"Programmatic access to 23,000+ public behavioral signatures across global leaders, corporate entities, and metropolitan regions via versioned REST JSON (`/api/v1/*`), stateless Streamable HTTP MCP 2026 (`/api/mcp`), and agent-friendly Markdown negotiation (`Accept: text/markdown`).\n\n### Versioning, Deprecation & Sunset Policy\nMajor versions are scoped in the URL path (`/api/v1`) and echoed in the `X-API-Version` response header. Non-breaking additive fields may be introduced within `v1`. Before retiring any versioned endpoint, Systemores provides at least a **180-day notice window** using standard RFC 9745 `Deprecation` (`@<unix-timestamp>`), RFC 8594 `Sunset` (HTTP-date), and `Link: <https://profile.systemores.com/developers/deprecation>; rel=\"deprecation\"` headers.\n\n### Rate Limits & Typed Problem Errors\nEvery API response includes RFC `RateLimit-Limit`, `RateLimit-Remaining`, `RateLimit-Reset`, and `RateLimit-Policy` headers (plus `Retry-After` on HTTP `429`). All `4xx` and `5xx` errors return a consistent RFC 9457 / JSON Problem Details envelope containing machine-readable `code`, human-readable `message` / `detail`, and an actionable `resolution` hint.","contact":{"name":"Systemores LLC","url":"https://profile.systemores.com/contact"},"license":{"name":"Proprietary — Public Read-Only Access","url":"https://profile.systemores.com/terms"}},"x-deprecation-policy":{"url":"https://profile.systemores.com/developers/deprecation","minimum_sunset_days":180,"deprecation_header":"Deprecation","sunset_header":"Sunset"},"servers":[{"url":"https://profile.systemores.com/api/v1","description":"Production REST API v1"},{"url":"https://profile.systemores.com","description":"Production Root & MCP"}],"x-mcp-server":{"transport":"streamable-http","endpoint":"https://profile.systemores.com/api/mcp","alias":"https://profile.systemores.com/mcp","discovery":"https://profile.systemores.com/.well-known/mcp.json","stateless":true,"tools":["search_behavioral_profiles","get_behavioral_signature","compare_behavioral_signatures"]},"tags":[{"name":"Discovery","description":"API index and operational health status."},{"name":"Profiles","description":"Search and retrieve public behavioral signatures."},{"name":"Comparison","description":"Compute cross-profile synergy and friction vectors."},{"name":"MCP","description":"Stateless Streamable HTTP Model Context Protocol 2026."}],"paths":{"/api/v1":{"get":{"tags":["Discovery"],"operationId":"getApiV1Index","summary":"Get REST API v1 endpoint index and lifecycle metadata","responses":{"200":{"description":"API v1 service discovery document.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ApiDiscoveryIndex"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/api/health":{"get":{"tags":["Discovery"],"operationId":"getApiHealth","summary":"Check API operational health","responses":{"200":{"description":"API service health check.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/HealthStatus"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/api/v1/profiles":{"get":{"tags":["Profiles"],"operationId":"searchPublicProfiles","summary":"Search public behavioral profiles","parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","maxLength":120},"example":"satya","description":"Full-text keyword query over subject names and contexts."},{"name":"category","in":"query","required":false,"schema":{"type":"string","enum":["all","individuals","entities","cities"],"default":"all"}},{"name":"archetype","in":"query","required":false,"schema":{"type":"string","maxLength":60,"default":"all"}},{"name":"sort","in":"query","required":false,"schema":{"type":"string","enum":["newest","oldest","alphabetical","fidelity"],"default":"fidelity"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":50,"default":20}},{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1}}],"responses":{"200":{"description":"Paginated list of public profile summaries.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","required":["data","pagination"],"properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/ProfileSummary"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/api/v1/profiles/{slug}":{"get":{"tags":["Profiles"],"operationId":"getPublicProfileBySlug","summary":"Get a full 21D + Big Five behavioral signature","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]+$"},"example":"satya-nadella"}],"responses":{"200":{"description":"Full public behavioral signature.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ProfileDetail"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/api/v1/compare/{slug1}/{slug2}":{"get":{"tags":["Comparison"],"operationId":"comparePublicProfiles","summary":"Compare two behavioral signatures","parameters":[{"name":"slug1","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]+$"},"example":"satya-nadella"},{"name":"slug2","in":"path","required":true,"schema":{"type":"string","pattern":"^[a-z0-9-]+$"},"example":"microsoft"}],"responses":{"200":{"description":"Deterministic trait comparison, cosine similarity, alignment & friction traits.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object","required":["data"],"properties":{"data":{"$ref":"#/components/schemas/ComparisonResult"}}}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}}}},"/api/mcp":{"post":{"tags":["MCP"],"operationId":"invokeMcpJsonRpc","summary":"Stateless MCP 2026 Streamable HTTP JSON-RPC endpoint","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["jsonrpc","method"],"properties":{"jsonrpc":{"type":"string","enum":["2.0"]},"id":{"oneOf":[{"type":"string"},{"type":"integer"},{"type":"null"}]},"method":{"type":"string"},"params":{"type":"object"}}}}}},"responses":{"200":{"description":"JSON-RPC 2.0 MCP response.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"type":"object"}}}},"400":{"$ref":"#/components/responses/BadRequest"},"404":{"$ref":"#/components/responses/NotFound"},"429":{"$ref":"#/components/responses/RateLimited"},"500":{"$ref":"#/components/responses/InternalError"}}}}},"components":{"headers":{"X-API-Version":{"description":"Semantic version of the public API contract serving this response.","schema":{"type":"string","example":"1.0.0"}},"RateLimit-Limit":{"description":"Maximum requests permitted in the current sliding window.","schema":{"type":"integer","example":60}},"RateLimit-Remaining":{"description":"Remaining requests permitted in the current sliding window.","schema":{"type":"integer","example":59}},"RateLimit-Reset":{"description":"Seconds until the current rate-limit window resets.","schema":{"type":"integer","example":60}},"RateLimit-Policy":{"description":"Quota policy string formatted per IETF RateLimit header specification.","schema":{"type":"string","example":"60;w=60"}},"Retry-After":{"description":"Seconds to wait before retrying after HTTP 429.","schema":{"type":"integer","example":60}},"Deprecation":{"description":"RFC 9745 deprecation timestamp when an endpoint version enters deprecation.","schema":{"type":"string","example":"@1798761600"}},"Sunset":{"description":"RFC 8594 HTTP-date after which a deprecated endpoint becomes unresponsive.","schema":{"type":"string","example":"Wed, 30 Jun 2027 23:59:59 GMT"}}},"schemas":{"ApiDiscoveryIndex":{"type":"object","required":["service","version","status","endpoints"],"properties":{"service":{"type":"string"},"version":{"type":"string"},"status":{"type":"string","enum":["ok"]},"endpoints":{"type":"object","additionalProperties":{"type":"string","format":"uri"}}}},"HealthStatus":{"type":"object","required":["status","service","version","timestamp"],"properties":{"status":{"type":"string","enum":["ok"]},"service":{"type":"string"},"version":{"type":"string"},"timestamp":{"type":"string","format":"date-time"}}},"ProfileSummary":{"type":"object","properties":{"slug":{"type":"string"},"subject_name":{"type":"string"},"category":{"type":"string","enum":["individual","entity"]},"archetype":{"type":"string"},"resonance_archetype":{"type":["string","null"]},"signal_fidelity":{"type":"integer"},"search_context":{"type":"string"},"canonical_url":{"type":"string","format":"uri"},"api_url":{"type":"string","format":"uri"},"markdown_url":{"type":"string","format":"uri"}}},"ProfileDetail":{"allOf":[{"$ref":"#/components/schemas/ProfileSummary"},{"type":"object","properties":{"scores_21d":{"type":"object","additionalProperties":{"type":"number"}},"big_five":{"type":["object","null"]},"derived_typologies":{"type":["object","null"]},"playbook":{"type":"array","items":{"type":"string"}}}}]},"ComparisonResult":{"type":"object","properties":{"compatibility_index":{"type":"integer","minimum":0,"maximum":100},"cosine_similarity":{"type":"number"},"mean_absolute_delta":{"type":"number"},"compare_url":{"type":"string","format":"uri"}}},"Pagination":{"type":"object","properties":{"page":{"type":"integer"},"limit":{"type":"integer"},"totalCount":{"type":"integer"},"totalPages":{"type":"integer"}}},"ProblemError":{"type":"object","required":["type","title","status","detail","code","message","resolution","error"],"properties":{"type":{"type":"string","format":"uri"},"title":{"type":"string"},"status":{"type":"integer"},"detail":{"type":"string"},"code":{"type":"string"},"message":{"type":"string"},"resolution":{"type":"string"},"docs_url":{"type":"string","format":"uri"},"openapi_url":{"type":"string","format":"uri"},"error":{"type":"object","required":["code","message","status","resolution"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"status":{"type":"integer"},"resolution":{"type":"string"},"docs_url":{"type":"string","format":"uri"},"openapi_url":{"type":"string","format":"uri"}}}}}},"responses":{"BadRequest":{"description":"Invalid query or path parameter.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemError"}}}},"NotFound":{"description":"Requested endpoint or public profile was not found.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemError"}}}},"RateLimited":{"description":"Rate limit exceeded.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"},"Retry-After":{"$ref":"#/components/headers/Retry-After"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemError"}}}},"InternalError":{"description":"Unexpected internal server error.","headers":{"X-API-Version":{"$ref":"#/components/headers/X-API-Version"},"RateLimit-Limit":{"$ref":"#/components/headers/RateLimit-Limit"},"RateLimit-Remaining":{"$ref":"#/components/headers/RateLimit-Remaining"},"RateLimit-Reset":{"$ref":"#/components/headers/RateLimit-Reset"},"RateLimit-Policy":{"$ref":"#/components/headers/RateLimit-Policy"}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProblemError"}},"application/problem+json":{"schema":{"$ref":"#/components/schemas/ProblemError"}}}}}}}