Chyby a limity
Jak vypadají chyby, co znamenají jednotlivé kódy a jaké má API limity.
Tvar chyby
Všechny chyby vypadají stejně:
{
"error": {
"code": "INVALID_INPUT",
"message": "Invalid input for this action.",
"issues": ["name: Required"]
}
}
Hodnota code se nemění, takže se podle ní můžete v kódu rozhodovat. message je text pro lidi a může se změnit. Pole issues přijde jen u chybného vstupu.
Kódy odpovědí
| HTTP | code | Co se stalo |
|---|---|---|
| 400 | INVALID_INPUT | Vstup neodpovídá schématu akce, podrobnosti jsou v issues |
| 400 | INVALID_JSON | Tělo požadavku není JSON objekt |
| 400 | kód z aplikace | Akci nešlo provést, například API_KEY_LIMIT_REACHED |
| 401 | UNAUTHORIZED | API klíč chybí, je neplatný, zneplatněný nebo mu vypršela platnost |
| 403 | INSUFFICIENT_SCOPE | API klíč pro čtení se pokusil něco změnit |
| 403 | FORBIDDEN nebo kód z aplikace | Vaše role v aplikaci tuto akci nedovoluje |
| 404 | UNKNOWN_ACTION | Akce neexistuje nebo není přes API dostupná |
| 404 | například INVOICE_NOT_FOUND | Záznam neexistuje nebo k němu nemáte přístup |
| 409 | například TAG_NAME_EXISTS | Záznam už existuje nebo se mezitím změnil |
| 429 | RATE_LIMITED | Příliš mnoho požadavků, kdy to zkusit znovu, říká hlavička Retry-After |
| 500 | INTERNAL_SERVER_ERROR | Chyba na straně Moniary |
Limity
- 300 požadavků za minutu na jeden API klíč. Nad tento limit dostanete
429s hlavičkouRetry-After, která udává počet sekund. - Jedna akce může běžet nejvýš 60 sekund.
- Nahrávání: až 20 souborů najednou, každý do 20 MB.
Opakování požadavků
Opakujte jen požadavky, které skončily kódem 429 nebo 5xx, a s každým dalším pokusem čekejte déle. U chyb 4xx opakování nepomůže. Akce, které něco vytvářejí nebo odesílají, nejsou idempotentní. Když si nejste jistí, jestli akce proběhla, ověřte to nejdřív čtením.