CodeVASPCodeVASP
Uppsala ScreeningAPI Reference

04-Uppsala-KYT-Search

By providing a blockchain transaction hash, this API submits a KYT (Know Your Transaction) analysis request to Uppsala Sentinel Protocol. If a cached result exists, it returns immediately; otherwise, the analysis runs asynchronously.

Use the KYT Report API ([05-Uppsala-KYT-Report.md]) to retrieve the analysis result, or provide a callbackUrl to receive the result via webhook when the analysis completes.

Note: This API is jointly operated by CodeVASP and Uppsala Security. For inquiries or access requests, please contact partnership@codevasp.com.

Endpoint

POST /v1/code/uppsala/kytsearch

Request Parameters

Body Parameters

NameTypeRequiredDescription
txHashstringRequiredBlockchain transaction hash to analyze.
blockchainstringRequiredNetwork code (e.g., "ETH", "BTC"). See supported networks below.
forcebooleanOptionalWhen true, ignores cached results and forces re-analysis. Default: false.
callbackUrlstringOptionalHTTPS URL to receive the analysis result via POST callback when completed.

Supported Networks

ETHBTCTRXSOL
MATICBSCBNBBASE
ARBITRUMOPTIMISMSCROLLLINEA
AVAXCAVAXOPBNBBCH
SEISEIEVMSONICADA
XRPXLMLTCEOS
KAIAKLAYCELOGLMR
MOVRWLDBERAFTM
ORDIBTCSEGWITBTCPLASMASTABLE
FRAXTALKATANA

Validation Rules

  • txHash: Must not be empty or null.
  • blockchain: Must not be empty or null. Must be one of the supported network codes.
  • callbackUrl: Must be a valid HTTPS URL if provided.

Important: The txHash must be a confirmed transaction that has been included in a block. Unconfirmed (mempool-only) transactions are not supported. The blockchain must match the chain the transaction actually belongs to — for example, an ETH transaction must be submitted with blockchain: "ETH", not "TRX".

Response

Fields

NameTypeDescription
requestIdintegerGenerated request ID. Used to retrieve the report via KYT Report API.
statusstringPENDING or RELEASED.
messagestringDescriptive message for the status.

Status Values

StatusMeaningMessage
PENDINGNew analysis started. Retrieve the result via KYT Report API or wait for callback."Transaction analysis started."
RELEASEDCache hit. An existing analysis result was found and linked immediately."Linked to existing report for this transaction."

Callback

If callbackUrl is provided, the analysis result is delivered via POST to that URL when the analysis completes (status becomes RELEASED or FAILED). The callback body has the same structure as the KYT Report API response. See [06-Uppsala-KYT-Callback.md] for details.

Errors

Error Response Format

{
  "errorType": "type",
  "errorMsg": "message"
}

Error Codes

HTTPerrorTypeCondition
400BAD_REQUESTRequest body JSON format error or validation failure.
400UNSUPPORTED_BLOCKCHAINUnsupported blockchain value.
422INVALID_ORIGINVASP KYT feature not registered, request limit exceeded, or feature disabled.
503SERVICE_UNAVAILABLETemporary service disruption.
500INTERNAL_SERVER_ERRORInternal server error.

Examples

Request

curl --request POST \
     --url https://trapi.codevasp.com/v1/code/uppsala/kytsearch \
     --header 'X-Code-Req-Datetime: datetime' \
     --header 'X-Code-Req-Nonce: nonce' \
     --header 'X-Code-Req-PubKey: Your key' \
     --header 'X-Code-Req-Signature: Sig' \
     --header 'X-Request-Origin: code:yourVaspEntityId' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "txHash": "0x5028a06f62bd79cd44d96779c5d1db68882ede90c3cbf62b6cc11a6218984063",
  "blockchain": "ETH",
  "force": false,
  "callbackUrl": "https://example.com/callback/kyt/uppsala"
}
'

Response (PENDING)

{
  "requestId": 5714,
  "status": "PENDING",
  "message": "Transaction analysis started."
}

Response (RELEASED — cache hit)

{
  "requestId": 5714,
  "status": "RELEASED",
  "message": "Linked to existing report for this transaction."
}

On this page