This section as Markdown: View Download

Authentication

Secure your API requests with signature-based or simple key authentication.

Overview

Wiro supports two authentication methods. You choose the method when creating a project and can switch it later in the project's settings on the Projects page. Your API key and secret stay the same, and the change applies right away, so your requests must then use the new method.

Signature-Based Authentication

Uses HMAC-SHA256 to sign every request. The API secret never leaves your environment, making this method ideal for client-side applications where the key might be exposed.

How it works

  1. Generate a nonce Use a unix timestamp or random integer
  2. Concatenate Combine: API_SECRET + NONCE
  3. Create HMAC-SHA256 hash Use your API_KEY as the secret key
  4. Send as headers Include the signature, nonce, and API key in request headers
SIGNATURE = HMAC-SHA256(key=API_KEY, message=API_SECRET + NONCE)

Required Headers

Parameter Type Required Description
x-api-key string Yes Your project API key
x-signature string Yes HMAC-SHA256(API_SECRET + NONCE, API_KEY)
x-nonce string Yes Unix timestamp or random integer

Comparison

Feature Signature-Based API Key Only
Security High — secret never sent over the wire Moderate — key sent in every request
Complexity Requires HMAC computation Single header
Best for Client-side apps, mobile, public repos Server-side, internal tools
Replay protection Yes (via nonce) No

How to Choose

  • Building a client-side or mobile app? Use Signature-Based.
  • Running a server-side backend with controlled access? API Key Only is simpler.
  • Unsure? Default to Signature-Based — it's always the safer option.