API pro vývojáře

Skyware API

Napojte na Skyware svůj web nebo vlastní aplikaci. Poptávky z formuláře založí lead rovnou v pipeline, leady, firmy, projekty a faktury si přečtete do svých nástrojů.

K čemu API je

Skyware API je pro případy, kdy data nemají zůstat jen ve Skyware – nebo do něj mají přicházet samy:

  • Poptávkový formulář na webu založí lead v pipeline a obchodníci dostanou upozornění. Nikdo nic nepřepisuje z e-mailu.
  • Vlastní přehledy a nástroje – leady, firmy, projekty a vydané faktury si přečtete do tabulek, reportů nebo interních aplikací.
  • Typy zakázek a fáze načtete třeba pro výběr v poptávkovém formuláři.

Každý zákazník má svůj Skyware na vlastní adrese, a tedy i vlastní API. V příkladech ji píšeme jako https://vase-firma.skyware.cz/api/v1 – místo vase-firma.skyware.cz použijte adresu svého Skyware.

Rychlý start

  1. Ve Skyware otevřete Nastavení › API a vytvořte nový klíč. Dejte mu jen oprávnění, která aplikace potřebuje.
  2. Klíč (začíná sw_) si uložte na bezpečné místo a posílejte ho v hlavičce Authorization.
  3. Spojení otestujte voláním GET /ping. Vrátí název klíče a jeho oprávnění.
curl https://vase-firma.skyware.cz/api/v1/ping \
  -H 'Authorization: Bearer sw_…'

Odpověď:

{
    "data": {
        "key": "Web skyware.cz",
        "scopes": [
            "leads:write"
        ],
        "version": "v1"
    }
}

Ověření a oprávnění

Každé volání musí mít v hlavičce API klíč:

Authorization: Bearer sw_…
  • Klíče vytváříte ve Skyware v Nastavení › API. Pro každou aplikaci zvlášť, každý jen s oprávněními, která potřebuje.
  • Klíči můžete nastavit platnost do určitého data a kdykoli ho zrušit.
  • Každé volání se zaznamená a záznam se uchovává 90 dní. Najdete ho v Nastavení › API.

Oprávnění

OprávněníNázevCo umožňuje
leads:writeZakládat leadyPoptávky z webu a formulářů – založí lead v pipeline a upozorní obchodníky.
leads:readČíst leadySeznam a detail leadů včetně fáze, hodnoty a obchodníka.
pipelines:readČíst typy zakázekTypy zakázek (pipeline) a jejich fáze – např. pro výběr v poptávkovém formuláři.
companies:readČíst firmyKlienti: název, IČO, DIČ, adresa, e-mail pro faktury.
projects:readČíst projektyProjekty: název, klient, stav, termín.
invoices:readČíst fakturyVydané faktury: číslo, klient, částka, splatnost, úhrada.

Formát a pravidla

JSON tam i zpět

Data posíláte jako JSON s hlavičkou Content-Type: application/json a odpovědi jsou také v JSON. Výsledek je vždy v poli data.

Seznamy a stránkování

Seznamy berou parametry ?limit= (max. 100, výchozí 50) a ?offset=. Kromě záznamů vrátí i celkový počet, abyste věděli, kolik stránek zbývá:

{
    "data": [
        "…"
    ],
    "meta": {
        "total": 0,
        "limit": 50,
        "offset": 0
    }
}

Data a časy

Datum má tvar YYYY-MM-DD (např. 2026-10-31), datum a čas YYYY-MM-DD HH:MM:SS. Ve stejném tvaru zadáváte i filtry jako updated_since.

Limit volání

Jeden klíč může zavolat API nejvýš 120× za minutu. Další volání v téže minutě skončí chybou HTTP 429 (rate_limited).

Endpointy

Všechny adresy jsou na doméně vašeho Skyware, např. https://vase-firma.skyware.cz/api/v1/leads.

GET /api/v1/ping

Ověření klíče · stačí platný klíč, bez zvláštního oprávnění

Vrátí název klíče a jeho oprávnění. Hodí se k otestování spojení.

Odpověď

{
    "data": {
        "key": "Web skyware.cz",
        "scopes": [
            "leads:write"
        ],
        "version": "v1"
    }
}

POST /api/v1/leads

Založit lead (poptávku) · oprávnění leads:write

Založí lead v pipeline (zdroj „web“, bez obchodníka), zapíše zprávu do historie leadu a upozorní obchodníky. Stejná poptávka (e-mail + text) odeslaná znovu do 10 minut se nezaloží podruhé – vrátí se původní lead s "duplicate": true. Když e-mail patří kontaktu klienta, lead se k jeho firmě propojí sám. Založení spustí sekvence „Nový lead“.

PolePopis
namejméno a příjmení (povinné, pokud chybí company)
emaile-mail (povinný e-mail nebo telefon)
phonetelefon
companynázev firmy
messagetext poptávky (max. 5 000 znaků)
titlenázev leadu (výchozí „Poptávka z webu – firma/jméno“)
pipelineID typu zakázky (výchozí první; viz GET /pipelines)
valueodhad hodnoty bez DPH
currencyISO kód měny, např. CZK (výchozí základní měna)
sourcezdroj: web, doporučení, telefon, e-mail, akce, jiné… (výchozí web)
pageURL stránky, ze které poptávka přišla
utmobjekt {source, medium, campaign, term, content}

Příklad volání

curl -X POST https://vase-firma.skyware.cz/api/v1/leads \
  -H 'Authorization: Bearer sw_…' \
  -H 'Content-Type: application/json' \
  -d '{
    "name": "Jana Nováková",
    "email": "jana@firma.cz",
    "phone": "+420 777 123 456",
    "company": "Firma s.r.o.",
    "message": "Chtěli bychom ukázku Skyware pro 8 lidí.",
    "page": "https://skyware.cz/poptavka",
    "utm": {
        "source": "google",
        "medium": "cpc"
    }
}'

Odpověď

{
    "data": {
        "id": 42,
        "title": "Poptávka z webu – Firma s.r.o.",
        "status": "open",
        "pipeline": {
            "id": 1,
            "name": "Weby"
        },
        "stage": {
            "id": 1,
            "name": "Nový lead",
            "role": ""
        },
        "duplicate": false
    }
}

GET /api/v1/leads

Seznam leadů · oprávnění leads:read

Od nejnověji změněných.

ParametrPopis
statusopen / won / lost
pipelineID typu zakázky
updated_sincejen změněné od (YYYY-MM-DD nebo datum a čas)
limitmax. 100 (výchozí 50)
offsetposun

Příklad volání

curl 'https://vase-firma.skyware.cz/api/v1/leads?limit=20&offset=0' \
  -H 'Authorization: Bearer sw_…'

Odpověď

{
    "data": [
        {
            "id": 42,
            "title": "Poptávka z webu – Firma s.r.o.",
            "status": "open",
            "value": 120000,
            "currency": "CZK",
            "…": "…"
        }
    ],
    "meta": {
        "total": 1,
        "limit": 50,
        "offset": 0
    }
}

GET /api/v1/leads/{id}

Detail leadu · oprávnění leads:read

Lead včetně kontaktu, dalšího kroku a posledních 20 záznamů historie.

Odpověď

{
    "data": {
        "id": 42,
        "title": "…",
        "contact": {
            "name": "Jana Nováková",
            "email": "jana@firma.cz",
            "phone": ""
        },
        "activity": [
            {
                "type": "note",
                "text": "…",
                "date": "2026-09-28 10:15:00"
            }
        ]
    }
}

GET /api/v1/pipelines

Typy zakázek a fáze · oprávnění pipelines:read

Typy zakázek (pipeline) s fázemi v pořadí. role: "" běžná, quote_sent, won, lost.

Odpověď

{
    "data": [
        {
            "id": 1,
            "name": "Weby",
            "stages": [
                {
                    "id": 1,
                    "name": "Nový lead",
                    "position": 1,
                    "probability": 10,
                    "role": ""
                }
            ]
        }
    ]
}

GET /api/v1/companies

Seznam firem (klientů) · oprávnění companies:read

Podle názvu.

ParametrPopis
qhledat v názvu
reg_nopřesné IČO
limitmax. 100
offsetposun

Odpověď

{
    "data": [
        {
            "id": 5,
            "name": "Firma s.r.o.",
            "reg_no": "12345678",
            "vat_no": "CZ12345678",
            "city": "Praha",
            "…": "…"
        }
    ],
    "meta": {
        "total": 1,
        "limit": 50,
        "offset": 0
    }
}

GET /api/v1/companies/{id}

Detail firmy · oprávnění companies:read

Odpověď

{
    "data": {
        "id": 5,
        "name": "Firma s.r.o.",
        "…": "…"
    }
}

GET /api/v1/projects

Seznam projektů · oprávnění projects:read

Od nejnověji změněných, bez smazaných.

ParametrPopis
companyID firmy
done0 = rozpracované, 1 = hotové
updated_sincejen změněné od
limitmax. 100
offsetposun

Odpověď

{
    "data": [
        {
            "id": 37,
            "title": "Nový web",
            "company": {
                "id": 5,
                "name": "Firma s.r.o."
            },
            "status": "Rozpracováno",
            "done": false,
            "deadline": "2026-10-31"
        }
    ],
    "meta": {
        "total": 1,
        "limit": 50,
        "offset": 0
    }
}

GET /api/v1/projects/{id}

Detail projektu · oprávnění projects:read

Odpověď

{
    "data": {
        "id": 37,
        "title": "Nový web",
        "…": "…"
    }
}

GET /api/v1/invoices

Seznam vydaných faktur · oprávnění invoices:read

Od nejnovějších.

ParametrPopis
paid0 / 1
overdue1 = jen po splatnosti
companyID firmy
sincevystavené od (YYYY-MM-DD)
limitmax. 100
offsetposun

Odpověď

{
    "data": [
        {
            "id": 120,
            "number": "FV2026100042",
            "type": "faktura",
            "company": {
                "id": 5,
                "name": "Firma s.r.o."
            },
            "total": 36300,
            "total_without_vat": 30000,
            "currency": "CZK",
            "due_date": "2026-10-12",
            "paid": false
        }
    ],
    "meta": {
        "total": 1,
        "limit": 50,
        "offset": 0
    }
}

GET /api/v1/invoices/{id}

Detail faktury · oprávnění invoices:read

Odpověď

{
    "data": {
        "id": 120,
        "number": "FV2026100042",
        "…": "…"
    }
}

Chyby

Při chybě API vrátí odpovídající HTTP status a v těle kód a popis chyby. Chyba validace (422) navíc obsahuje pole fields s podrobnostmi k jednotlivým polím.

{
    "error": {
        "code": "unauthorized",
        "message": "…"
    }
}
HTTPKódKdy nastane
400invalid_jsonTělo požadavku není platný JSON objekt.
401unauthorizedChybí API klíč, nebo je neplatný, zrušený či prošlý.
403forbiddenKlíč nemá oprávnění, které endpoint vyžaduje.
404not_foundNeznámá adresa nebo záznam neexistuje.
405method_not_allowedMetoda není u této adresy povolená.
422validation_failedData nejsou kompletní – podrobnosti po polích ve "fields".
429rate_limitedPříliš mnoho volání – max. 120 za minutu na klíč.
500server_errorChyba na straně Skyware – zkuste to znovu.

Pomoc a ukázka

Chystáte napojení a nevíte si rady, nebo vám v API něco chybí? Napište nám – poradíme s napojením a rádi vám Skyware ukážeme na vaší práci.

Ukážeme vám Skyware na vaší práci

Napište, jak dnes pracujete s projekty, klienty a fakturací. Projdeme to spolu a navrhneme, jak by to vypadalo ve Skyware.

Chci nezávaznou ukázku