Polycode · Authentication Profile
Polycode Co Uk Authentication
Authentication
Polycode secures its APIs with none, apiKey, openIdConnect, and hmac across 4 declared security schemes, as derived from its OpenAPI definitions.
ChatMemoryAgentsA2AKnowledge GraphResearchArtificial IntelligenceOpen SourceConsultingUnited Kingdom
Methods: none, apiKey, openIdConnect, hmac
Schemes: 4
OAuth flows:
API key in: header
Security Schemes
public none
apiKey apiKey
· in: header (X-API-Key)
cognitoLogin openIdConnect
webhookSecrets hmac
Source
Authentication Profile
generated: '2026-09-19'
method: searched
source: https://marginalia.polycode.co.uk/.well-known/agent-card.json
docs: https://gitlab.com/polycode-projects/marginalia/-/blob/main/README.md
note: >-
The OpenAPI declares no securitySchemes (derive-authentication.py found none), so this profile is assembled
from the agent card's securitySchemes block, the operation summaries in the spec, the README ("Talk to it —
the A2A API", "Repository supervision"), the account page code, and live anonymous responses on 2026-09-19.
summary:
types: [none, apiKey, openIdConnect, hmac]
api_key_in: [header]
oauth2_flows: []
default: public — no credential for reads, chat, the A2A endpoint or the mechanical completions shim
schemes:
- name: public
type: none
applies_to: 26 GET operations, postChat, postMechanicalCompletion, postFlag, postVisitorLabel, postSessionIntroduction, the A2A JSON-RPC endpoint
evidence: 'info.description: "No auth today; the API is public."; agent card security: []; live GET /api/status, /api/graphs, /api/budget, /api/projects -> 200 anonymously.'
- name: apiKey
type: apiKey
in: header
parameter: X-API-Key
key_prefix: mga_
applies_to: [whoamiKey, postHooksPush, getRepoSummary, postMechanicalCompletion (graph selection), postChat / A2A (routes to the key's private graph)]
evidence: >-
Agent card securitySchemes.apiKey (X-API-Key, "Optional today. Will gate a free monthly token allowance per key,
with pay-as-you-go beyond it."); live GET /api/keys/whoami -> 401 {"error":"send the key as X-API-Key"}; account.mjs
masks keys as "mga_…<suffix>"; README: "A private graph ... is reached by adding an x-api-key: header".
issuance: Minted on the logged-in Account page ("generate a key" creates a private graph + key, shown once) or by the operator CLI (issue-key). Keys are 1:1 with a private graph; getKeys lists hash, issued_at and last-4 suffix, never plaintext.
- name: cognitoLogin
type: openIdConnect
provider: Amazon Cognito (identity_provider=Google)
authorization_endpoint: https://eu-west-24yw02qhzm.auth.eu-west-2.amazoncognito.com/oauth2/authorize
scopes_requested: [openid, email, profile]
entry: https://marginalia.polycode.co.uk/auth/login
applies_to: 'Tier-1 operations: getKeys, postKeys, createPrivateGraph, setMyDefaultGraph, clearUserDefault, setUserDefault, deletePrivateGraph, renamePrivateGraph, setRepo, getPromptNote, setPromptNote, postProjectOp (admin/owner), plus web search, projects and the fuller model in the chat UI'
evidence: 'GET /auth/login -> 302 to the Cognito authorize URL (response_type=code, redirect_uri /auth/callback); live GET /api/keys -> 401 {"error":"login required"}; app.mjs: "Log in with Google for web search, projects, and the fuller model".'
note: A browser session, not an API authorization flow — no bearer tokens are documented for API callers. The Cognito discovery URL was not probed.
- name: webhookSecrets
type: hmac
applies_to: [postGithubHook, postGitlabHook]
evidence: 'Spec summaries: X-Hub-Signature-256 "constant-time-verified against the org webhook secret"; X-Gitlab-Token "constant-time-validated against the binding"; 401 on bad signature or an unbound graph.'
note: Inbound connector authentication for bound repositories, issued by the operator CLI (bind-connector); not a caller credential.
tiers:
- {tier: 0, name: visitor / anonymous, access: public reads, chat on the shared graph, A2A}
- {tier: 1, name: logged in (Google via Cognito), access: private graphs, API keys, per-user default graph, web search and the fuller model in chat}
- {tier: admin, name: operator, access: admin operations (postWorkItem, postAdminTurn, postDelivery, refreshInsights on the shared graph)}
Work with this as data
Every security artifact here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for security posture
4 MCP tools reach this
find_securityBrowse and filter every security artifact in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This security artifact
curl "https://apis.io/api/v1/security/polycode-co-uk-authentication"
All security posture
curl "https://apis.io/api/v1/security?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.