Constrained Application Protocol (CoAP) è un protocollo che specifica in che modo i dispositivi con vincoli di calcolo a basso consumo possono funzionare nell'Internet delle cose (IoT). Progettato dalla Internet Engineering Task Force (ITEF), CoAP è specificato in IETF RFC 7252.
CoAP è progettato per consentire a dispositivi semplici e vincolati di unirsi all'IoT anche attraverso reti vincolate con larghezza di banda ridotta e disponibilità ridotta. Il protocollo viene generalmente utilizzato per la comunicazione machine-to-machine (M2M).
CoAP funziona come una sorta di HTTP per dispositivi vincolati, consentendo a tali apparecchiature a livello di componente come sensori o attuatori di comunicare sull'IoT, essere controllati e trasmettere i propri dati come parte di un sistema. Il protocollo è progettato per garantire l'affidabilità in condizioni di larghezza di banda ridotta e congestione elevata grazie al basso assorbimento di potenza e al basso overhead di rete. Secondo Jullian Vermillard, il principale ingegnere del software Sierra Wireless, in una rete con connettività limitata o molta congestione CoAP può continuare a funzionare dove i protocolli basati su TCP come MQTT non riescono a completare una stretta di mano.
I tratti efficienti e conservativi del CoAP possono consentire ai dispositivi che operano con una qualità del segnale scadente di inviare i propri dati in modo affidabile o consentire a un satellite in orbita di mantenere con successo la sua comunicazione a distanza. Nonostante la capacità di CoAp di funzionare su piccoli dispositivi, supporta reti con miliardi di nodi. Per sicurezza, i parametri DTLS scelti per impostazione predefinita sono equivalenti a chiavi RSA a 3072 bit.