Dokumentace externího API
Propojte své systémy s API EasySolar
Integrace založená na API klíči Vám poskytuje přístup ke Kalendáři, projektům, klientům a komponentám.
To Vám dává flexibilitu propojit své systémy a automatizovat procesy.
Externí dokumentace API
Integrace na základě API klíče Vám poskytuje přístup ke Kalendáři, projektům, klientům a komponentám. To Vám dává flexibilitu propojit své systémy a automatizovat procesy.
Obsah
- Autentizace
- Stránkování
- API kalendáře
- API projektů
- API klientů
- API komponent
- Datové konvence
- Chování filtrů
- Model oprávnění
- Práce s chybami
- Integrační vzory
- Stabilita & verzování
1. Autentizace
Všechny požadavky musí v hlavičce obsahovat API klíč.
Authorization: Api-Key <raw_api_key>
Poznámky: - API klíče vytvářejí a spravují vlastníci společnosti a administrátoři. - Každý klíč je omezen na konkrétní oprávnění k prostředkům. - Všechny požadavky jsou automaticky omezeny na společnost přiřazenou k API klíči.
Chyby autentizace
| Stav | Důvod |
|---|---|
401 | Chybějící nebo neplatný API klíč |
401 | Nesprávně formátovaná hlavička autorizace |
401 | Neaktivní API klíč |
403 | Chybějící oprávnění k prostředku |
402 | Společnost je neaktivní |
2. Stránkování
Výpisové endpointy (Kalendář, Projekty, Klienti) používají stránkování limit/offset.
Parametry
| Parametr | Popis | Výchozí | Max |
|---|---|---|---|
limit | Počet výsledků k vrácení | 100 | 500 |
offset | Offset stránkování | 0 | — |
Obálka odpovědi
{
"count": 123,
"next": null,
"previous": null,
"results": []
}
Když je next null, dosáhli jste poslední stránky.
3. API kalendáře
Představuje naplánované události, jako jsou schůzky, hovory a instalace. Pouze pro čtení.
Koncové body
GET https://api-production.easysolar-app.com/integrations/calendar/
GET https://api-production.easysolar-app.com/integrations/calendar/{id}/
Požadované oprávnění: calendar_read
Ukázka odpovědi
{
"id": "7d0f4d55-3b66-4c71-a86d-2b0ef2fca6d5",
"category": "meeting",
"subject": "Úvodní návštěva na místě",
"description": "Projednání požadavků na instalaci a kontrola střechy.",
"client": {
"id": "4ab8e7cb-0a27-48f1-a0f6-6d6ecf5d8c6a",
"name": "Solar Corp",
"address": "Hlavní 10, Varšava",
"phone": "+48123456789",
"is_open": true
},
"participants": [
{
"first_name": "John",
"last_name": "Smith",
"email": "john.smith@example.com"
}
],
"start_at": "2026-06-15T09:00:00Z",
"end_at": "2026-06-15T10:00:00Z",
"full_day": false,
"created_at": "2026-06-01T12:30:45Z"
}
Přehled polí
| Pole | Typ | Popis |
|---|---|---|
id | UUID | Identifikátor události |
category | string | Kategorie události (viz hodnoty níže) |
subject | string | Název události |
description | string | Další poznámky k události |
client | object | null | Propojený klient |
participants | array | Zaměstnanci přiřazení k události |
start_at | datetime | Čas začátku události (UTC) |
end_at | datetime | Čas ukončení události (UTC) |
full_day | boolean | Zda událost trvá celý den |
created_at | datetime | Čas vytvoření události |
Hodnoty kategorií
| Hodnota | Popis |
|---|---|
meeting | Schůzka |
call | Telefonát |
installation | Termín instalace |
contract | Podpis smlouvy |
quotation | Prezentace cenové nabídky |
Vnořené objekty
Objekt klienta:
| Pole | Typ | Popis |
|---|---|---|
id | UUID | Identifikátor klienta |
name | string | Název klienta |
address | string | Adresa klienta |
phone | string | Telefonní číslo klienta |
is_open | boolean | Aktivní stav klienta |
Objekt účastníka:
| Pole | Typ | Popis |
|---|---|---|
first_name | string | Křestní jméno zaměstnance |
last_name | string | Příjmení zaměstnance |
email | string | E-mailová adresa zaměstnance |
Filtry
| Parametr | Typ | Popis |
|---|---|---|
start_at_after | datetime | Filtrovat události začínající po tomto čase |
start_at_before | datetime | Filtrovat události začínající před tímto časem |
end_at_after | datetime | Filtrovat události končící po tomto čase |
end_at_before | datetime | Filtrovat události končící před tímto časem |
category | string (multi) | Filtrovat podle kategorie; pro více hodnot parametr opakujte |
client | UUID | Filtrovat podle ID klienta |
Příklad:
GET https://api-production.easysolar-app.com/integrations/calendar/?start_at_after=2026-01-01T00:00:00Z&category=meeting&category=call
Authorization: Api-Key <key>
4. API projektů
Představuje záznamy projektů souvisejících s klientem (např. fotovoltaické instalace). Pouze pro čtení.
Koncové body
GET https://api-production.easysolar-app.com/integrations/projects/
GET https://api-production.easysolar-app.com/integrations/projects/{id}/
Požadované oprávnění: projects_read
Ukázka odpovědi
{
"id": "d8e22cb9-1d88-4a3d-a3fd-f954d1f23d59",
"name": "Fotovoltaická instalace - kancelář ve Varšavě",
"address": "Aleje Jerozolimskie 120, Varšava",
"latitude": 52.2297,
"longitude": 21.0122,
"client": {
"id": "4ab8e7cb-0a27-48f1-a0f6-6d6ecf5d8c6a",
"name": "Solar Corp",
"address": "Hlavní 10, Varšava",
"phone": "+48123456789",
"is_open": true
},
"status": {
"name": "Probíhá",
"order": 2
},
"currency": {
"code": "PLN",
"name": "Polský zlotý"
},
"total_price": "42500.00",
"payback_period": 8,
"created": "2026-05-01T09:00:00Z",
"updated": "2026-06-01T15:30:00Z"
}
Přehled polí
| Pole | Typ | Popis |
|---|---|---|
id | UUID | Identifikátor projektu |
name | string | Název projektu |
address | string | Adresa projektu |
latitude | decimal | null | Zeměpisná šířka projektu |
longitude | decimal | null | Zeměpisná délka projektu |
client | object | Propojený klient (viz objekt klienta) |
status | object | Stav projektu |
currency | object | Měna používaná pro finanční hodnoty |
total_price | decimal string | Aktuální celková cena projektu |
payback_period | integer | null | Odhadovaná doba návratnosti v letech |
created | datetime | Čas vytvoření |
updated | datetime | Čas poslední aktualizace |
total_pricese vrací jako desetinný řetězec, aby byla zachována přesnost.payback_periodjenull, pokud ještě nebyla vypočítána.latitude/longitudejsounull, pokud není nastavena poloha.
Vnořené objekty
Objekt stavu:
| Pole | Typ | Popis |
|---|---|---|
name | string | Zobrazovaný název stavu |
order | integer | Hodnota pořadí stavu |
Objekt měny:
| Pole | Typ | Popis |
|---|---|---|
code | string | Měnový kód ISO |
name | string | Název měny |
Filtry
| Parametr | Typ | Popis |
|---|---|---|
created_after | datetime | Filtrovat podle data vytvoření (dolní mez) |
created_before | datetime | Filtrovat podle data vytvoření (horní mez) |
updated_after | datetime | Filtrovat podle data aktualizace (dolní mez) |
updated_before | datetime | Filtrovat podle data aktualizace (horní mez) |
client | UUID | Filtrovat podle ID klienta |
status | UUID | Filtrovat podle ID stavu |
name | string | Částečná shoda názvu bez ohledu na velikost písmen |
Příklad:
GET https://api-production.easysolar-app.com/integrations/projects/?client=<id>&name=solar
Authorization: Api-Key <key>
5. API klientů
Představuje zákaznické entity. Podporuje operace čtení a zápisu.
Koncové body
GET https://api-production.easysolar-app.com/integrations/clients/
POST https://api-production.easysolar-app.com/integrations/clients/
GET https://api-production.easysolar-app.com/integrations/clients/{id}/
PATCH https://api-production.easysolar-app.com/integrations/clients/{id}/
Požadovaná oprávnění: clients_read (čtení), clients_write (zápis)
Ukázka odpovědi
{
"id": "4ab8e7cb-0a27-48f1-a0f6-6d6ecf5d8c6a",
"name": "Solar Corp",
"description": "Komerční zákazník se zájmem o střešní fotovoltaickou instalaci.",
"address": "Hlavní 10, Varšava",
"latitude": 52.2297,
"longitude": 21.0122,
"phone": "+48123456789",
"is_open": true,
"created": "2026-05-01T10:15:00Z",
"updated": "2026-06-01T08:45:30Z"
}
Přehled polí
| Pole | Typ | Popis |
|---|---|---|
id | UUID | Identifikátor klienta |
name | string | Název klienta |
description | string | Další poznámky |
address | string | Adresa klienta |
latitude | decimal | null | Zeměpisná šířka klienta |
longitude | decimal | null | Zeměpisná délka klienta |
phone | string | null | Telefonní číslo klienta |
is_open | boolean | Zda je klient aktuálně aktivní |
created | datetime | Čas vytvoření |
updated | datetime | Čas poslední aktualizace |
Vytvořit klienta
POST https://api-production.easysolar-app.com/integrations/clients/
{
"name": "Název klienta",
"description": "Komerční zákazník",
"address": "Adresa",
"phone": "+48123456789",
"latitude": 52.2297,
"longitude": 21.0122
}
Aktualizovat klienta
PATCH https://api-production.easysolar-app.com/integrations/clients/{id}/
Zahrňte pouze pole, která chcete aktualizovat:
{
"address": "Nová adresa 15, Varšava",
"phone": "+48987654321"
}
Pravidla souřadnic
latitudealongitudemusí být vždy uvedeny společně.- Zadání pouze jedné souřadnice způsobí validační chybu.
- Pokud není nastavena poloha, obě pole se vracejí jako
null.
Filtry
| Parametr | Typ | Popis |
|---|---|---|
created_after | datetime | Filtrovat podle data vytvoření (dolní mez) |
created_before | datetime | Filtrovat podle data vytvoření (horní mez) |
updated_after | datetime | Filtrovat podle data aktualizace (dolní mez) |
updated_before | datetime | Filtrovat podle data aktualizace (horní mez) |
is_open | boolean | Filtrovat podle aktivního stavu (true nebo false) |
name | string | Částečná shoda názvu bez ohledu na velikost písmen |
phone | string | Částečná shoda telefonního čísla |
6. API komponent
Vytváří komponenty pro použití v projektech. Pouze pro zápis.
Koncový bod
POST https://api-production.easysolar-app.com/integrations/components/
Požadované oprávnění: components_write
Typy komponent
Jsou podporovány tři typy komponent: panel, inverter a other.
Fotovoltaický panel
{
"type": "panel",
"manufacturer_name": "Longi",
"name": "LR5-54HPH",
"net_unit_price": "120.00",
"nominal_power": "430.000",
"length": "1.7220",
"width": "1.1340",
"weight": "21.500",
"efficiency": "0.2100000",
"short_circuit_current": "13.52000",
"open_circuit_voltage": "37.85000",
"current_temperature_coefficient": "0.045000",
"voltage_temperature_coefficient": "-0.280000",
"power_temperature_coefficient": "-0.350000"
}
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
type | string | Ano | Musí být "panel" |
manufacturer_name | string | Ano | Název výrobce |
name | string | Ano | Název modelu panelu |
net_unit_price | decimal | Ne | Čistá jednotková cena |
nominal_power | decimal | Ano | Jmenovitý výkon (W) |
length | decimal | Ano | Délka panelu (m) |
width | decimal | Ano | Šířka panelu (m) |
weight | decimal | null | Ne | Hmotnost (kg) |
efficiency | decimal | Ano | Účinnost přeměny |
short_circuit_current | decimal | Ano | Zkratový proud (A) |
open_circuit_voltage | decimal | Ano | Napětí naprázdno (V) |
current_temperature_coefficient | decimal | null | Ne | Teplotní koeficient proudu |
voltage_temperature_coefficient | decimal | null | Ne | Teplotní koeficient napětí |
power_temperature_coefficient | decimal | null | Ne | Teplotní koeficient výkonu |
Střídač
{
"type": "inverter",
"manufacturer_name": "SMA",
"name": "Sunny Tripower 5.0",
"net_unit_price": "900.00",
"nominal_power": "5000.000",
"number_of_dc_inputs": 2
}
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
type | string | Ano | Musí být "inverter" |
manufacturer_name | string | Ano | Název výrobce |
name | string | Ano | Název modelu střídače |
net_unit_price | decimal | Ne | Čistá jednotková cena |
nominal_power | decimal | Ano | Jmenovitý výkon (W) |
number_of_dc_inputs | integer | Ano | Počet DC vstupů |
Ostatní
{
"type": "other",
"name": "Montážní systém",
"unit": "ks",
"net_unit_price": "50.00"
}
| Pole | Typ | Povinné | Popis |
|---|---|---|---|
type | string | Ano | Musí být "other" |
name | string | Ano | Název komponenty |
unit | string | Ne | Měrná jednotka |
net_unit_price | decimal | Ne | Čistá jednotková cena |
Odpověď
{
"id": "uuid",
"type": "panel | inverter | other",
"name": "string"
}
Poznámky
- Výrobci se automaticky vytvářejí, pokud neexistují.
- Jedinečnost výrobce je omezena na společnost.
- Před vytvořením se ověří všechna pole specifická pro panel.
7. Datové konvence
ID
Všechny identifikátory prostředků jsou řetězce UUID, stabilní a globálně jedinečné v rámci společnosti:
"id": "550e8400-e29b-41d4-a716-446655440000"
Časové značky
Všechna pole typu datetime se vracejí ve formátu ISO 8601, vždy v UTC:
"created": "2026-06-09T12:34:56Z"
Geolokace
Souřadnice se používají u klientů a projektů. Ukládají se jako geografický bod a vracejí se jako samostatná pole:
"latitude": 52.2297,
"longitude": 21.0122
Práce s hodnotou null
Pole, která nejsou vyplněna, se vracejí jako null — nikdy nejsou z odpovědi vynechána.
8. Chování filtrů
Obecná pravidla
- Všechny filtry jsou volitelné, pokud není uvedeno jinak.
- Více filtrů se kombinuje logikou AND.
- Hodnoty vícevýběrových filtrů (např.
category) interně používají logiku OR. - Neplatné hodnoty filtrů vrací prázdné výsledky nebo validační chybu v závislosti na typu pole.
Filtry časového rozsahu
Dostupné napříč endpointy:
| Filtrovací pole | Chování |
|---|---|
created_after / created_before | Rozsahový filtr nad časovým razítkem vytvoření |
updated_after / updated_before | Rozsahový filtr nad časovým razítkem poslední aktualizace |
start_at_after / start_at_before | Rozsahový filtr nad časem začátku události |
end_at_after / end_at_before | Rozsahový filtr nad časem ukončení události |
Textové vyhledávací filtry
Částečná shoda názvu a telefonního čísla bez ohledu na velikost písmen u name a phone:
?name=solar
Odpovídá: "Solar Corp", "Můj solární projekt" atd.
9. Model oprávnění
Oprávnění API klíče se konfigurují samostatně pro každý prostředek:
| Prostředek | Oprávnění ke čtení | Oprávnění k zápisu |
|---|---|---|
| Kalendář | calendar_read | (není podporováno) |
| Projekty | projects_read | (není podporováno) |
| Klienti | clients_read | clients_write |
| Komponenty | (není podporováno) | components_write |
10. Práce s chybami
Formát chyb
Obecná chyba:
{
"detail": "Chybová zpráva"
}
Validační chyba na úrovni pole:
{
"field_name": ["Chybová zpráva"]
}
Přehled chyb
| Stav | Kategorie | Význam |
|---|---|---|
401 | Autentizace | Neplatný, chybějící nebo neaktivní API klíč; nesprávně formátovaná hlavička |
402 | Obchodní | Společnost je neaktivní |
403 | Autorizace | API klíči chybí požadované oprávnění k prostředku |
4xx | Validace | Chyby na úrovni pole se vracejí jako objekt |
Kontrolní seznam integrace
Pokud narazíte na chyby, ověřte:
- API klíč má správná oprávnění k prostředkům.
- Účet společnosti je aktivní.
- Všechny hodnoty filtrů (ID apod.) patří do stejného rozsahu společnosti.
11. Integrační vzory
Strategie synchronizace
Doporučený postup pro synchronizaci dat:
- Načtěte výpisový endpoint (stránkovaně).
- Uložte
idjako externí referenci. - Pro přírůstkové synchronizace používejte pole
updated.
Práce se stránkováním
Procházejte stránky zvyšováním offsetu, dokud nebude next null:
GET https://api-production.easysolar-app.com/integrations/clients/?limit=100&offset=0
GET https://api-production.easysolar-app.com/integrations/clients/?limit=100&offset=100
Přírůstková synchronizace
Pro načtení pouze záznamů změněných od poslední synchronizace použijte datumové filtry:
GET https://api-production.easysolar-app.com/integrations/projects/?updated_after=2026-01-01T00:00:00Z
Doporučené postupy filtrování
- Pro synchronizace s vysokým objemem upřednostňujte filtry založené na ID (
client,status) před textovým vyhledáváním. - Kombinací více filtrů zmenšíte velikost výsledné množiny.
- Vyhněte se širokým textovým vyhledáváním na velkých datových sadách.
12. Stabilita & verzování
Stabilní záruky
Následující se nezmění bez verzované migrace:
- URL endpointů
- Názvy polí
- Formát UUID
- Struktura stránkování
- Schéma autentizace
Může se měnit (bez narušení kompatibility)
- Volitelné filtry (mohou být přidány nové filtry)
- Obohacení odpovědi (mohou být přidána nová pole)
Politika verzování
V URL není aktuálně zveřejněna žádná explicitní verze. Zlomové změny zavedou nový jmenný prostor endpointů:
https://api-production.easysolar-app.com/integrations/v2/...
Doplňující změny se považují za zpětně kompatibilní a mohou být nasazeny bez navýšení verze.
Konec dokumentace
Kontaktujte nás
Potřebujete pomoc?
Neváhejte se na nás obrátit a náš specializovaný tým na vaše dotazy rychle odpoví.
Prodávejte automaticky s AI
Vytvořte automatizovaného AI obchodního zástupce za 2 minuty
Přidejte generátor fotovoltaických nabídek s AI na svůj stávající web. Nastavte své ceny, vyberte své produkty a přizpůsobte branding své společnosti. Vaši zákazníci obdrží okamžitou nabídku a Vy získáte okamžité e-mailové upozornění na každou nabídku a každého zájemce.



