A pinning service is a service that accepts CIDs from a user in order to host the data associated with them. The rationale behind defining a generic pinning service API is to have a baseline functionality and interface that can be provided by pinning services, so that tools can be built on top of a common base of functionality.