DailyAPI Documentationv1

Getting started

Create a least-privilege key and make your first Daily API request.

View OpenAPI

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.

  1. Select יצירת מפתח חדש.
  2. Give the key a name that identifies one integration.
  3. Select the פרטי העסק permission.
  4. Choose an expiration period.
  5. Optionally restrict the key to trusted IPv4, IPv6, or CIDR ranges.
  6. 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_KEY

In 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.

On this page