HydraCore
API by router

Pin confirmation internal

Set Identity Pin

Set a PIN for an end-customer identity.

Called via the agent when an end-customer types /setpin XXXX. Auth: proxy key (the agent's own key for this instance).

"My PIN? It's the same as my birthday — but backwards and in Roman numerals." — Nobody, because that's terrible security advice

POST
/internal/v1/instances/{instance_id}/identities/{identity_id}/pin

Path Parameters

instance_idInstance Id
Formatuuid
identity_idIdentity Id
Formatuuid
pinPin

Response Body

curl -X POST "https://loading/internal/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/identities/497f6eca-6276-4993-bfeb-53cbbbba6f08/pin" \  -H "Content-Type: application/json" \  -d '{    "pin": "string"  }'
{
  "created_at": "2019-08-24T14:15:22Z",
  "has_pin": true,
  "is_active": false,
  "is_locked": false,
  "locked_until": "2019-08-24T14:15:22Z"
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Remove Identity Pin

Remove an end-customer's self-set PIN.

"It's been revoked." — M, James Bond (about PIN removal)

DELETE
/internal/v1/instances/{instance_id}/identities/{identity_id}/pin

Path Parameters

instance_idInstance Id
Formatuuid
identity_idIdentity Id
Formatuuid

Response Body

curl -X DELETE "https://loading/internal/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/identities/497f6eca-6276-4993-bfeb-53cbbbba6f08/pin"
Empty
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Internal Lookup Identity

Reverse lookup: find which customer owns a given channel identity.

Internal version of /v1/customers/lookup/identity — uses proxy key auth instead of JWT so the agent runtime can call it directly.

"Say my name." — Walter White, Breaking Bad (about identity resolution, not methamphetamine)

GET
/internal/v1/instances/{instance_id}/lookup/identity

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

channelChannel

Channel type

external_idExternal Id

External ID to look up

Response Body

curl -X GET "https://loading/internal/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/lookup/identity?channel=string&external_id=string"
{
  "channel": "string",
  "customer_email": "string",
  "customer_id": "160c0c4b-9966-4dc1-a916-8407eb10d74e",
  "display_name": "string",
  "external_id": "string",
  "identity_id": "011a42b9-62d7-49eb-8328-c2e454af88a1",
  "role_override": "string",
  "verified": true
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Check Pin Required

Check if a customer/identity has any active PINs that need verification.

Called by the agent runtime before prompting — no point asking for a PIN if nobody has set one.

"Are you not entertained?" — Maximus, Gladiator (about checking PIN requirements)

POST
/internal/v1/instances/{instance_id}/pin/check-required

Path Parameters

instance_idInstance Id
Formatuuid

Query Parameters

customer_idCustomer Id
Formatuuid
identity_id?Identity Id

Response Body

curl -X POST "https://loading/internal/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/pin/check-required?customer_id=497f6eca-6276-4993-bfeb-53cbbbba6f08&identity_id=497f6eca-6276-4993-bfeb-53cbbbba6f08"
{}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}

Verify Pin

Verify a PIN for tool execution gating.

Called by the agent runtime when a PIN-protected skill is invoked. Auth: proxy key (the agent's own key for this instance).

Returns a session token on success so the agent can cache it and skip re-prompting within the TTL.

"Open the pod bay doors, HAL." "I'm sorry Dave, I need your PIN first." — 2001: A Space Odyssey (if HAL had PIN confirmation)

POST
/internal/v1/instances/{instance_id}/pin/verify

Path Parameters

instance_idInstance Id
Formatuuid
customer_id?Customer Id
identity_id?Identity Id
pinPin

Response Body

curl -X POST "https://loading/internal/v1/instances/497f6eca-6276-4993-bfeb-53cbbbba6f08/pin/verify" \  -H "Content-Type: application/json" \  -d '{    "pin": "string"  }'
{
  "error": "string",
  "remaining_attempts": 0,
  "session_token": "string",
  "session_ttl_minutes": 30,
  "verified": true
}
{
  "detail": [
    {
      "loc": [
        "string"
      ],
      "msg": "string",
      "type": "string"
    }
  ]
}