REST api RFCs

== Introduction ==
The purpose of this page, is to collect references to all RFCs related to the REST api. It is organized by API version.
V1 is proposed to be kept until the API covers a reasonable amount of endpoints.
All endpoints and attribute names should respect the terminology guidelines. Terminology changes are discussed as needed on developer meetings.
Controller's code needs to respect the project's Coding guidelines and the supplemental API coding guidelines.
Note: for readability purposes, endpoint routes are shortened on this pages, the /api/<version> prefix is omitted. As an example, /patrons stands for /api/v1/patrons in version 1.
=== Privileged routes ===
Endpoint 	Decision status 	Implementation status 	Koha version
/account/lines 	Voted 	 	
/acquisitions/basket_groups 	 	 	
/acquisitions/baskets 	 	 	
/acquisitions/budgets 	 	 	
/acquisitions/budgets/{budget_id}/funds 	 	 	
/acquisitions/funds 	Voted 	Done (matts) 	19.05, 18.11.05
/acquisitions/invoices 	Voted 	 	
/acquisitions/orders 	Voted 	Done (tcohen) 	20.05
/acquisitions/vendors 	Voted 	Done 	17.11
/acquisitions/vendors/{vendor_id}/contacts	 	 	
/article_requests/{ar_id} 	 	 	
/authorities 	 	Done 	23.05
/authorised_values 	 	WIP 	
/authorised_values_categories 	 	WIP 	
/biblios 	Voted 	Umbrella 	
/biblios 	Voted 	GET Done (tcohen) 	19.11
/biblios/ids 	 	 	
/biblios/{biblio_id}/holds 	 	 	
/biblios/{biblio_id}/items 	No vote required	Done 	21.05
/biblios/{biblio_id}/pickup_locations 	 	NSO 	
/checkouts 	Voted 	Done 	19.05
/checkouts/{checkout_id}/allows_renewal 	Voted 	Done 	19.11 19.05.03
/cities 	Voted 	Done 	18.05
/config/smtp_servers 	 	Done 	20.11
/holds 	Voted 	Done (tcohen) 	19.05
/holds/{hold_id}/pickup_locations 	 	Done (kidclamp) 	20.05
/holds/{hold_id}/priority 	 	Done (tcohen) 	19.11
/holds/{hold_id}/suspension 	Voted 	Done (tcohen) 	19.05
/ill_backends 	Voted 	Assigned (josef.moravec)	
/ill_requests 	 	 	
/import/oaipmh/biblios 	 	WIP (dcook) 	
/import_batch_profiles 	 	WIP (amoyano) 	
/items 	 	Done Done Done 	19.11
/items/{item_id}/pickup_locations 	 	NSO 	
/item_types 	 	Done 	
/libraries 	Voted 	Done (tcohen) 	19.05, 18.11.04
/patrons 	Voted 	Done 	18.05
/patrons/{patron_id}/account 	Voted 	Done 	18.11, 18.05.03
/patrons/{patron_id}/account/credits 	Voted 	Done 	18.11
/patrons/{patron_id}/account/debits 	Voted 	Assigned (tcohen) 	
/patrons/{patron_id}/extended_attributes 	 	NSO 	
/patrons/{patron_id}/checkouts 	Voted 	SO (josef.moravec) 	
/patrons/{patron_id}/restrictions 	 	 	
/patrons/{patron_id}/ill_requests 	 	 	
/patrons/{patron_id}/holds 	No vote required	PQA 	
/patrons/{patron_id}/fines 	 	 	
/patrons/{patron_id}/password 	Voted 	Done 	19.05, 18.11.03
/patrons/{patron_id}/statistics 	 	 	
/patrons/{patron_id}/messaging_preferences	 	 	
/<object>/{object_id}/availability 	 	 	
/subscriptions 	 	 	
/suggestions 	 	WIP 	
/return_claims 	 	Done 	
/version 	 	 	
=== Unprivileged (public) routes ===
Endpoint 	Decision status	Implementation status	Koha version
/public/biblios 	 	 	
/public/biblios/{biblio_id}/items 	 	Done 	21.11
/public/biblios/{biblio_id}/pickup_locations 	 	 	
/public/items/{item_id}/pickup_locations 	 	 	
/public/patrons/{patron_id}/export 	 	WIP (Lari Taskula) 	
/public/patrons/{patron_id}/password 	 	Done 	19.05
/public/patrons/{patron_id}/privacy/* 	 	Done (tcohen) 	19.11
/public/patrons/{patron_id}/article_requests/{ar_id}	 	 	
/public/patrons/{patron_id}/purchase_suggestions 	 	 	
/public/version 	 	 	
=== Special use cases handling ===
Use case 	Decision status	Implementation status	Koha version
Partial resources	 	 	
=== Authentication ===
The API supports several authentication mechanisms:
Protocol 	Implementation status	Koha version
Basic Auth 	Implemented 	19.05
Cookie 	Implemented 	3.22
OAuth2 - Client credentials	Implemented 	18.05
=== See also ===
* Koha REST API Users Guide (includes more information on authentication)
* Rest Api HowTo
* Coding Guidelines - API
Category:RFCs