diff --git a/README.md b/README.md
index 575089e5f4..bd5dcbc655 100644
--- a/README.md
+++ b/README.md
@@ -139,7 +139,7 @@
| [QuickBooks](quickbooks/quickbooks-quiz.md) | ❗needs updating | | 67 | 40 | |
| [R](r/r-quiz.md) | | | 65 | 65 | [@gregglind](https://github.com/gregglind) |
| [React.js](reactjs/reactjs-quiz.md) | | [](reactjs/reactjs-quiz-es.md) [](reactjs/reactjs-quiz-ua.md) | 140 | 140 | [@RobTables](https://github.com/RobTables) [@bandinopla](https://github.com/bandinopla) |
-| [REST API](rest-api/rest-api-quiz.md) | | | 72 | 72 | |
+| [REST API](rest-api/rest-api-quiz.md) | |[](rest-api/rest-api-quiz-ua.md) | 72 | 72 | |
| [Revit](revit/revit-quiz.md) | ❗needs updating | | 29 | 29 | |
| [Ruby on Rails](ruby-on-rails/ruby-on-rails-quiz.md) | | | 77 | 77 | [@gudata](https://github.com/gudata) |
| [Rust](rust/rust-quiz.md) | | | 65 | 65 | [@BobbyByrne](https://github.com/BobbyByrne) [@Emanuele-em](https://github.com/emanuele-em) |
diff --git a/rest-api/rest-api-quiz-ua.md b/rest-api/rest-api-quiz-ua.md
new file mode 100644
index 0000000000..49078fe7ce
--- /dev/null
+++ b/rest-api/rest-api-quiz-ua.md
@@ -0,0 +1,565 @@
+## REST API
+
+#### Q1. Який тип відносин визначається як такий, що один ресурс існує лише за умови існування іншого батьківського ресурсу — наприклад, сторінки в книзі?
+
+- [ ] `Частковий` (Partial)
+- [x] `залежний` (dependent)
+- [ ] `асоціативний` (associative)
+- [ ] `пов'язаний` (linked)
+
+#### Q2. Який шаблон URL рекомендується використовувати при роботі з одним ресурсом і колекцією ресурсів?
+
+- [ ] `/companies/{id} і /company`
+- [ ] `/company/{id} і /companies`
+- [x] `/companies/{id} і /companies`
+- [ ] `/company/{id} і /company`
+
+#### Q3. Що таке claim у JSON web Tokens (JWT)?
+
+- [x] `дані в токені`
+- [ ] `Власність`
+- [ ] `дозвіл`
+- [ ] `ціле число`
+
+#### Q4. Яке обмеження REST вказує, що знання та розуміння, отримані від одного компонента API, повинні бути загалом застосовні в інших частинах API?
+
+- [x] `Єдиний інтерфейс`
+- [ ] `Клієнт-Сервер`
+- [ ] `Безстанова`
+- [ ] `Кешована`
+
+#### Q5. Що потрібно ввімкнути, щоб дозволити браузеру на іншому сайті зробити AJAX-запит до вашого API?
+
+- [ ] `HTTP`
+- [ ] `REST`
+- [ ] `OPTIONS`
+- [x] `CORS`
+
+#### Q6. API зазвичай використовують вебхуки для **\_**.
+
+- [x] `сповіщення інших систем про подію`
+- [ ] `швидшого виявлення помилок`
+- [ ] `покращення журналювання помилок`
+- [ ] `журналювання додаткових даних`
+
+#### Q7. Яка основна мета всіх API?
+
+- [ ] `додавати нові технології до інфраструктури організації.`
+- [x] `ділитися функціями та можливостями з іншими системами.`
+- [ ] `переносити інфраструктуру в хмару.`
+- [ ] `задовольняти останні вимоги цифрової трансформації.`
+
+#### Q8. Яка консольна утиліта є поширеним інструментом для використання або дослідження API?
+
+- [ ] `bash`
+- [x] `curl`
+- [ ] `ssh`
+- [ ] `powerShell`
+
+#### Q9. Яка сучасна специфікація використовується для опису API?
+
+- [x] `OpenAPI (Swagger)`
+- [ ] `WADL`
+- [ ] `WSDL`
+- [ ] `OAuth`
+
+[OpenAPI Specification](https://swagger.io/specification/)
+
+#### Q10. Яке HTTP дієслово зазвичай використовується для оновлення або створення ресурсу в API?
+
+- [ ] `SUBMIT`
+- [ ] `WRITE`
+- [x] `POST`
+- [ ] `CREATE`
+
+[HTTP request methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)
+
+#### Q11. Яка одна з переваг кешування на стороні сервера в API?
+
+- [ ] `Мобільні додатки працюють краще.`
+- [ ] `Це покращує доступність.`
+- [ ] `Це забезпечує кращу безпеку.`
+- [x] `Це зменшує навантаження на сервери.`
+
+#### Q12. API ресурсу не дозволяє видалення, але клієнтська програма спробувала видалити ресурс. Який код відповіді HTTP слід повернути?
+
+- [ ] `409 Conflict`
+- [ ] `400 Bad Request`
+- [ ] `406 Not Acceptable`
+- [x] `405 Method Not Allowed`
+
+[Response Codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#successful_responses)
+
+#### Q13. Що таке OpenID Connect?
+
+- [x] `шар ідентифікації поверх OAuth 2.0`
+- [ ] `нова назва для SAML 3.0`
+- [ ] `сучасна заміна API-ключів`
+- [ ] `конкурент SSO для OAuth 2.0`
+
+[What is OpenID Connect?](https://openid.net/connect/)
+
+#### Q14. Яка одна з переваг GraphQL над підходами REST?
+
+- [x] `гнучкі запити/відповіді`
+- [ ] `стабільніші API`
+- [ ] `сумісність з більшою кількістю шлюзів`
+- [ ] `безпечніший за замовчуванням`
+
+[GraphQL vs. REST](https://www.apollographql.com/blog/graphql/basics/graphql-vs-rest/)
+
+#### Q15. Яке обмеження REST вказує, що не повинно бути спільного контексту?
+
+- [x] `Безстанова`
+- [ ] `Клієнт-Сервер`
+- [ ] `Єдиний інтерфейс`
+- [ ] `Кешована`
+
+#### Q16. Яку роль виконує User-Agent?
+
+- [ ] `Ідентифікує ID користувача.`
+- [x] `Ідентифікує клієнтський застосунок або SDK.`
+- [ ] `Вказує, чи API має очікувати автентифікацію користувача.`
+- [ ] `Вказує, чи API має приймати трафік мікросервісів.`
+
+#### Q17. Якщо додати версіонування за допомогою заголовків Accept і Content-Type, який правильний формат значення заголовка?
+
+- [ ] `application/json`
+- [ ] `application/json_version2`
+- [ ] `text/html`
+- [x] `application/vnd.myapp.v2+json`
+
+[Довідка](https://blog.allegro.tech/2015/01/Content-headers-or-how-to-version-api.html)
+
+#### Q18. Яка одна з переваг OAuth порівняно з підходом API-ключів?
+
+- [ ] `Токен зашифрований.`
+- [ ] `Токен закодований.`
+- [x] `Токен обмежений для конкретного випадку використання.`
+- [ ] `Токен можна передавати між системами.`
+
+[How to easily secure your APIs with API keys and OAuth](https://apifriends.com/api-security/api-keys-oauth/)
+
+#### Q19. Можливість виконувати один і той самий запит API знову і знову без зміни стану ресурсу є прикладом \_.
+
+- [ ] `безстанової архітектури`
+- [x] `ідемпотентності`
+- [ ] `єдиного інтерфейсу`
+- [ ] `кешованості`
+
+#### Q20. Який компонент можна використовувати для обгортання застарілих архітектур або протоколів у REST-інтерфейс для полегшення споживання та інтеграції?
+
+- [x] `API-проксі`
+- [ ] `API-шлюз`
+- [ ] `OpenAPI`
+- [ ] `OAuth-сервер авторизації`
+
+#### Q21. Який захист пропонує JSON Web Token (JWT) для запобігання підробці його вмісту?
+
+- [ ] `транспортування через SSL`
+- [ ] `зашифрований вміст`
+- [x] `підпис`
+- [ ] `закодований вміст`
+
+#### Q22. Який термін OAuth використовується для позначення дозволів?
+
+- [ ] `token`
+- [x] `scope`
+- [ ] `claim`
+- [ ] `back channel`
+
+[OAuth Scopes](https://oauth.net/2/scope/)
+
+#### Q23. Який додатковий тип токену можна побачити при використанні OpenID Connect?
+
+- [x] `ID token`
+- [ ] `refresh token`
+- [ ] `access token`
+- [ ] `auth code token`
+
+#### Q24. Що слід додати до заголовка відповіді Cache-Control, щоб вказати, що відповідь не повинна зберігатися в проміжному кеші?
+
+- [ ] `no-proxy`
+- [ ] `client-only`
+- [ ] `restricted`
+- [x] `private`
+
+[довідка](https://www.digitalocean.com/community/tutorials/web-caching-basics-terminology-http-headers-and-caching-strategies)
+
+#### Q25. Який тип OAuth-гранту може підтримувати refresh-токен?
+
+- [x] `Authorization Code Grant`
+- [ ] `Client Credentials Grant`
+- [ ] `Implicit Grant`
+- [ ] `Authentication Grant`
+
+[Довідка](https://datatracker.ietf.org/doc/html/rfc6749#section-4.4.3)
+
+#### Q26. Яку область слід запитати в OAuth для доступу на запис до API?
+
+- [ ] `Це залежить від API.`
+- [x] `admin`
+- [ ] `write`
+- [ ] `read-write`
+
+#### Q27. Яку властивість слід використовувати для включення підресурсів безпосередньо в JSON-документ?
+
+- [ ] `_embedded`
+- [ ] `resources`
+- [x] `subresources`
+- [ ] `_links`
+
+#### Q28. Який найкращий спосіб відстежувати використання SDK і версій?
+
+- [x] `відстеження завантажень`
+- [ ] `заголовки Accept`
+- [ ] `user agents`
+- [ ] `опитування користувачів`
+
+#### Q29. Яке обмеження REST дозволяє наявність кешування, маршрутизації та інших систем між клієнтом і сервером?
+
+- [x] `Шарова система`
+- [ ] `Безстанова`
+- [ ] `Клієнт-Сервер`
+- [ ] `Кешована`
+
+#### Q30. Який вміст найкраще включити у документацію?
+
+- [ ] `стек технологій`
+- [ ] `обґрунтування схеми іменування`
+- [ ] `місія`
+- [x] `приклад коду`
+
+#### Q31. Яка метрика відстежує загальну доступність API?
+
+- [ ] `Час відповіді`
+- [ ] `Час до першого Hello World`
+- [ ] `TTL`
+- [x] `Час безвідмовної роботи`
+
+#### Q32. Який рекомендований метод і шаблон URL для отримання конкретного користувача?
+
+- [ ] `GET /user/{id}`
+- [x] `GET /users/{id}`
+- [ ] `GET /user?id={id}`
+- [ ] `GET /users?id={id}`
+
+#### Q33. Яка мета відношення посилання?
+
+- [ ] `описувати відносини між ресурсами або діями`
+- [ ] `описувати підресурси, пов'язані з поточним`
+- [x] `зв'язувати два ресурси`
+- [ ] `описувати ресурс і його призначення`
+
+#### Q34. Які мови слід підтримувати при створенні SDK?
+
+- [ ] Java, Javascript і .NET
+- [ ] які ви можете підтримувати
+- [ ] PHP, Python і Go
+- [x] мови, які використовують цільові користувачі
+
+#### Q35. Яку властивість слід використовувати для включення посилань на інші ресурси в JSON-документ?
+
+- [x] `resources`
+- [ ] `_embedded`
+- [ ] `subresources`
+- [ ] `_links`
+
+#### Q36. Що таке OAuth?
+
+- [x] фреймворк авторизації для надання делегованого доступу
+- [ ] підхід до єдиного входу для API
+- [ ] метод автентифікації API
+- [ ] HTTP Basic Authentication 2.0
+
+#### Q37. Що має описувати документація API?
+
+- [ ] JSON
+- [ ] HTTP
+- [x] поширені випадки використання
+- [ ] стек технологій
+
+#### Q38. Яка мета refresh-токену в OAuth?
+
+- [ ] ділитися інформацією профілю користувача
+- [ ] оновлювати конфігурацію API
+- [ ] підтримувати активність веб-сесії
+- [x] отримувати access-токен
+
+[Understanding Refresh Tokens](https://auth0.com/learn/refresh-tokens/)
+
+#### Q39. Що таке Time to First Hello World?
+
+- [x] скільки часу потрібно розробнику, щоб зробити щось з вашим API
+- [ ] скільки часу потрібно, щоб почати нову мову програмування
+- [ ] скільки часу потрібно для встановлення вашого SDK
+- [ ] скільки часу потрібно для прочитання вашої документації
+
+#### Q40. Який заголовок відповіді повідомляє клієнту та проміжним системам, що відповідь не слід кешувати ніде?
+
+- [ ] Cache-State: none
+- [ ] Expires:-1
+- [ ] Cache-Control: no-cache
+- [x] Cache-Control: no-store
+
+#### Q41. Який компонент приховує відмінності або межі між різними мікросервісами від кінцевих клієнтських застосунків?
+
+- [x] `API-шлюз`
+- [ ] `API-журналювання`
+- [ ] `шарова система`
+- [ ] `API-проксі`
+
+#### Q42. Класичний підхід до версіонування API полягає у використанні **\_**.
+
+- [ ] `загальновідомих знань`
+- [ ] `URL`
+- [ ] `відсутності версіонування`
+- [x] `заголовка Accept`
+
+#### Q43. Який найбезпечніший спосіб передати API-ключ?
+
+- [ ] `параметр URL`
+- [x] `заголовок Authorization`
+- [ ] `Base64-кодування`
+- [ ] `Basic Auth`
+
+#### Q44. Який компонент в OAuth перевіряє особу користувача?
+
+- [ ] `клієнт`
+- [ ] `не вказано`
+- [x] `сервер авторизації`
+- [ ] `сервер ресурсів`
+
+#### Q45. Трафік API, який повністю внутрішній для вашої організації, зазвичай називається \_?
+
+- [ ] `вхідний трафік`
+- [ ] `північ-південь трафік`
+- [x] `внутрішній трафік`
+- [ ] `схід-захід трафік`
+
+#### Q46. Який найкращий підхід для запиту JSON замість XML з API?
+
+- [ ] `Додати .json до URL.`
+- [ ] `API не використовують XML.`
+- [ ] `Використовувати заголовок Content-Type.`
+- [x] `Використовувати заголовок Accept.`
+
+#### Q47. Коли користувач намагається отримати доступ до запису, який йому не належить, який код відповіді HTTP є найбільш відповідним?
+
+- [x] `403`
+- [ ] `404`
+- [ ] `401`
+- [ ] `405`
+
+[Response Codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#successful_responses)
+
+#### Q48. Яка перевага використання API-шлюзу?
+
+- [ ] `HTTP-дієслова`
+- [ ] `JSON-навантаження`
+- [ ] `HTTP-коди відповіді`
+- [x] `обмеження швидкості/дроселювання`
+
+#### Q49. Тестування API має розглядатися як **\_**?
+
+- [ ] `red team тестування`
+- [ ] `white box тестування`
+- [ ] `blue box тестування`
+- [x] `black box тестування`
+
+#### Q50. Яке HTTP-дієслово використовується в попередньому запиті CORS?
+
+- [ ] `PUT`
+- [ ] `POST`
+- [ ] `GET`
+- [x] `OPTIONS`
+
+#### Q51. Який заголовок відповіді повідомляє клієнту, що відповідь кешується протягом 1 хвилини?
+
+- [ ] `Expires: 1 minute`
+- [x] `Cache-Control: max-age=60`
+- [ ] `Expires: 1 January 2020`
+- [ ] `Cache-Expires: max-age=60`
+
+[Cache Control Header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control)
+
+#### Q52. Яка концепція дозволяє клієнту API досліджувати API через посилання, вбудовані в навантаження?
+
+- [ ] `гіпермедіа` (hypermedia)
+- [x] `відношення посилань` (link relations)
+- [ ] `парсинг` (parsing)
+- [ ] `перегляд` (browsing)
+
+#### Q53. Який код відповіді HTTP слід отримати при створенні нового ресурсу?
+
+- [ ] `405`
+- [x] `201`
+- [ ] `204`
+- [ ] `202`
+
+[Response Codes](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status#successful_responses)
+
+#### Q54. Який приклад Code on Demand?
+
+- [ ] AWS Lambda
+- [ ] завантаження програмного забезпечення з відкритим кодом
+- [ ] Serverless
+- [x] JavaScript на вебсторінці
+
+[Code on Demand](https://en.wikipedia.org/wiki/Code_on_demand)
+
+#### Q55. Який шаблон URL слід використовувати для доступу до підресурсу, прикріпленого до конкретного ресурсу?
+
+- [ ] /companies/employees/{companyId}/{employeeId}
+- [ ] /company/{companyId}/employees/{employeeId}
+- [x] /companies/{companyId}/employees/{employeeId}
+- [ ] /companies/{companyId}/employee/{employeeId}
+
+[Resource Naming](https://restfulapi.net/resource-naming/)
+
+#### Q56. Яке обмеження REST фактично забороняє використання файлів cookie?
+
+- [x] Безстанова (Stateless)
+- [ ] Кешована (Cacheable)
+- [ ] Шарова система (Layered System)
+- [ ] Єдиний інтерфейс (Uniform Interface)
+
+#### Q57. Яке HTTP-дієслово використовується для видалення ресурсу?
+
+- [ ] FLUSH
+- [x] DELETE
+- [ ] CLEAR
+- [ ] DESTROY
+
+#### Q58. Яке дієслово _не_ вважається ідемпотентним?
+
+- [ ] DELETE
+- [ ] GET
+- [ ] PUT
+- [x] POST
+
+[Idempotency](https://restfulapi.net/idempotent-rest-apis/)
+
+#### Q59. Яке обмеження REST вказує, що кожен запит має бути самодостатнім і не мати певного обов'язкового порядку?
+
+- [ ] Єдиний інтерфейс ( Uniform Interface)
+- [ ] Кешована (Cacheable)
+- [x] Безстанова (Stateless)
+- [ ] Клієнт-Сервер (Client-Server)
+
+[REST Architectural Constraints](https://restfulapi.net/rest-architectural-constraints/)
+
+#### Q60. Що слід зробити після отримання коду відповіді 429?
+
+- [ ] Перевірити структуру JSON.
+- [x] Сповільнити запити.
+- [ ] Перевірити статус доступності API.
+- [ ] Перевірити API-ключ.
+
+#### Q61. Який найкращий підхід для пагінації при дослідженні наборів записів?
+
+- [ ] фільтрація за датою
+- [x] курсори наступний/попередній
+- [ ] розмір сторінки та фільтри
+- [ ] ID бази даних
+
+#### Q62. Що _не_ є методом автентифікації або авторизації API?
+
+- [ ] OAuth
+- [x] біометрія
+- [ ] API-ключі
+- [ ] ім'я користувача та пароль
+
+#### Q63. Який код відповіді HTTP зазвичай означає, що запитана робота все ще обробляється і може завершитися помилкою пізніше?
+
+- [ ] 200 OK
+- [ ] 204 No Content
+- [ ] 201 Created
+- [x] 202 Accepted
+
+#### Q64. Які з claim необхідно підтвердити під час валідації JWT? (Виберіть усі, що підходять.)
+
+ A. Термін дії (exp) не минув.
+ B. Алгоритм є достатнім.
+ C. Підпис відповідає навантаженню.
+ D. Токен був закодований у Base64.
+ E. Видавець (iss) є очікуваним сервером авторизації.
+ F. Є refresh-токен.
+ G. Ідентифікатор клієнта (cid) є очікуваним клієнтом.
+ H. Токен був зашифрований.
+
+- [x] A,B,E,H
+- [ ] B,C,F,G
+- [ ] A,D,G,H
+- [ ] A,C,E,G
+
+#### Q65. Трафік API, який входить і виходить з вашої організації, зазвичай називається **\_**?
+
+- [ ] `схід-захід трафік` (east-west traffic)
+- [ ] `вхідний трафік` (inbound traffic)
+- [x] `північ-південь трафік` (north-south traffic)
+- [ ] `зовнішній трафік` (external traffic)
+
+[North-South vs East-West Traffic](https://www.snapt.net/glossary/north-south-vs-east-west-traffic)
+
+#### Q66. Який тип OAuth-гранту підходить для мобільних застосунків?
+
+- [x] Authorization Code з PKCE
+- [ ] Client Credentials
+- [ ] Device
+- [ ] Resource Owner Password
+
+[OAuth 2.0 for Native and Mobile Apps](https://developer.okta.com/blog/2018/12/13/oauth-2-for-native-and-mobile-apps)
+
+#### Q67. Який формат дати й часу є найпростішим або найбільш передбачуваним для парсингу та обробки?
+
+- [ ] `YY-M-D hh:mm:ss+TZ`
+- [ ] `YY-M-D h:mm:ss`
+- [x] `YYYY-MM-DDThh:mm:ssZ`
+- [ ] `YYYY-M-D hh:mm:ss`
+
+[The 5 laws of API dates and times](https://apiux.com/2013/03/20/5-laws-api-dates-and-times/)
+
+#### Q68. Який заголовок _не_ використовується в керуванні кешем?
+
+- [x] Rate-Limit
+- [ ] Expires
+- [ ] Etag
+- [ ] Cache-Control
+
+[Cache-Control](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Cache-Control)
+[Expires](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Expires)
+[Etag](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag)
+[Rate limiting your RESTful API](https://medium.com/@guillaume.viguierjust/rate-limiting-your-restful-api-3148f8e77248)
+
+#### Q69. Клієнтська програма використовує фільтр або пошук у API правильно, але результатів немає. Який найкращий код відповіді?
+
+- [ ] 204 No Content
+- [ ] 400 Bad Request
+- [x] 200 OK
+- [ ] 404 Not Found
+
+[Response Status Codes](https://www.rfc-editor.org/rfc/rfc7231#section-6)
+
+#### Q70. Яке HTTP-дієслово зазвичай використовується для отримання або створення ресурсу в API?
+
+- [ ] `RETRIEVE`
+- [ ] `FORM`
+- [x] `GET`
+- [ ] `READ`
+
+#### Q71. Який код відповіді HTTP слід отримати при створенні нового ресурсу?
+
+- [ ] `200`
+- [ ] `405`
+- [x] `201`
+- [ ] `204`
+
+[HTTP request methods](https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods)
+
+#### Q72. Ви розробляєте RESTful API для нового проекту на GitHub. Безпека є головним пріоритетом, і ви хочете переконатися, що лише авторизовані користувачі можуть отримати доступ до певних кінцевих точок. Який з наступних механізмів слід використовувати для досягнення цієї мети?
+
+- [ ] Обмеження швидкості API
+- [x] OAuth 2.0
+- [ ] Basic Authentication
+- [ ] HTTP Basic Auth