Getting started
Create a least-privilege key and make your first Daily API request.
This guide uses GET /business, a low-risk endpoint that returns identity and contact data for the business already bound to the API key.
1. Create an API key
Open Daily → API keys. Only the primary business owner can manage keys.
- Select יצירת מפתח חדש.
- Give the key a name that identifies one integration.
- Select the פרטי העסק permission.
- Choose an expiration period.
- Optionally restrict the key to trusted IPv4, IPv6, or CIDR ranges.
- Create the key and copy it immediately.
The complete secret is displayed once. Daily stores a one-way hash for later authentication, not a retrievable copy of the secret.
2. Store the key
For local development, export the key in the active shell without committing it to a file:
read -rsp "Daily API key: " DAILY_API_KEY && echo
export DAILY_API_KEYIn production, inject DAILY_API_KEY from an encrypted secret manager. Grant access only to the workload that calls Daily.
3. Make the first request
cURL
set -euo pipefail
: "${DAILY_API_KEY:?DAILY_API_KEY is required}"
response_file="$(mktemp)"
trap 'rm -f "$response_file"' EXIT
status="$(curl --silent --show-error \
--output "$response_file" \
--write-out '%{http_code}' \
--header "Authorization: Bearer ${DAILY_API_KEY}" \
--header 'Accept: application/json' \
'https://api.godaily.co.il/v1/business')"
if [ "$status" -lt 200 ] || [ "$status" -ge 300 ]; then
printf 'Daily API request failed with HTTP %s\n' "$status" >&2
sed 's/daily_\(live\|test\)_[A-Za-z0-9_-]*/[redacted-api-key]/g' "$response_file" >&2
exit 1
fi
cat "$response_file"TypeScript with native fetch
const apiKey = process.env.DAILY_API_KEY;
if (!apiKey) throw new Error('DAILY_API_KEY is required');
const response = await fetch('https://api.godaily.co.il/v1/business', {
method: 'GET',
headers: {
Accept: 'application/json',
Authorization: `Bearer ${apiKey}`,
},
});
const body = await response.json() as {
data?: { id: string; name: string };
error?: { code: string; message: string };
request_id: string;
};
if (!response.ok || !body.data) {
throw new Error(`Daily API ${response.status} (${body.request_id}): ${body.error?.code ?? 'unknown_error'}`);
}
console.log(body.data.name, body.request_id);Python with requests
import os
import requests
api_key = os.environ.get("DAILY_API_KEY")
if not api_key:
raise RuntimeError("DAILY_API_KEY is required")
response = requests.get(
"https://api.godaily.co.il/v1/business",
headers={"Accept": "application/json", "Authorization": f"Bearer {api_key}"},
timeout=30,
)
body = response.json()
if not response.ok:
request_id = body.get("request_id", "not-returned")
code = body.get("error", {}).get("code", "unknown_error")
raise RuntimeError(f"Daily API {response.status_code} ({request_id}): {code}")
print(body["data"]["name"], body["request_id"])4. Understand the response
{
"data": {
"id": "0b703598-20d1-4eeb-9012-12db41ac8018",
"object": "business",
"name": "סטודיו נורת׳סטאר בע״מ",
"english_name": "Northstar Studio Ltd.",
"business_number": "515990281",
"business_type": "company",
"email": "finance@northstar.test",
"phone": "+972-3-555-0142",
"address": {
"street": "HaArba’a 28",
"city": "Tel Aviv-Yafo",
"postal_code": "6473925",
"country": "IL"
},
"created_at": "2025-02-03T08:30:00.000Z",
"updated_at": "2026-07-21T11:45:00.000Z"
},
"request_id": "req_docsquickstart01"
}Single-resource responses use data; list responses use data plus page. Every JSON response includes request_id, and the same identifier is returned in the X-Request-ID header when Nginx or the application creates it.
5. Rotate or revoke
Rotate a key from the same API-key screen. The previous secret remains valid for 24 hours so you can deploy the replacement safely. Revoke a compromised or retired key immediately; revocation has no grace period.

