6 $ref: definitions/account_line.yaml
8 $ref: definitions/advancededitormacro.yaml
10 $ref: definitions/allows_renewal.yaml
12 $ref: definitions/basket.yaml
14 $ref: definitions/cashup.yaml
16 $ref: definitions/checkout.yaml
18 $ref: definitions/checkouts.yaml
20 $ref: definitions/circ-rule-kind.yaml
22 $ref: definitions/city.yaml
24 $ref: definitions/error.yaml
26 $ref: definitions/fund.yaml
28 $ref: definitions/hold.yaml
30 $ref: definitions/holds.yaml
32 $ref: definitions/ill_backend.yaml
34 $ref: definitions/ill_backends.yaml
36 $ref: definitions/import_batch_profile.yaml
37 import_batch_profiles:
38 $ref: definitions/import_batch_profiles.yaml
40 $ref: definitions/invoice.yaml
42 $ref: definitions/item.yaml
44 $ref: definitions/library.yaml
46 $ref: definitions/order.yaml
48 $ref: definitions/patron.yaml
49 patron_account_credit:
50 $ref: definitions/patron_account_credit.yaml
52 $ref: definitions/patron_balance.yaml
53 patron_extended_attribute:
54 $ref: definitions/patron_extended_attribute.yaml
56 $ref: definitions/quote.yaml
58 $ref: definitions/return_claim.yaml
60 $ref: definitions/smtp_server.yaml
62 $ref: definitions/suggestion.yaml
64 $ref: definitions/transfer_limit.yaml
66 $ref: definitions/vendor.yaml
69 $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds
71 $ref: paths/acquisitions_orders.yaml#/~1acquisitions~1orders
72 "/acquisitions/orders/{order_id}":
73 $ref: "paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
74 /acquisitions/vendors:
75 $ref: paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
76 "/acquisitions/vendors/{vendor_id}":
77 $ref: "paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
78 /advanced_editor/macros:
79 $ref: paths/advancededitormacros.yaml#/~1advanced_editor~1macros
80 /advanced_editor/macros/shared:
81 $ref: paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
82 "/advanced_editor/macros/shared/{advancededitormacro_id}":
83 $ref: "paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
84 "/advanced_editor/macros/{advancededitormacro_id}":
85 $ref: "paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
86 "/article_requests/{article_request_id}":
87 $ref: "paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
88 "/biblios/{biblio_id}":
89 $ref: "paths/biblios.yaml#/~1biblios~1{biblio_id}"
90 "/biblios/{biblio_id}/checkouts":
91 $ref: "paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
92 "/biblios/{biblio_id}/items":
93 $ref: "paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
94 "/biblios/{biblio_id}/pickup_locations":
95 $ref: "paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
96 "/cash_registers/{cash_register_id}/cashups":
97 $ref: "paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
98 "/cashups/{cashup_id}":
99 $ref: "paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
101 $ref: paths/checkouts.yaml#/~1checkouts
102 "/checkouts/{checkout_id}":
103 $ref: "paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
104 "/checkouts/{checkout_id}/allows_renewal":
105 $ref: "paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
106 "/checkouts/{checkout_id}/renewal":
107 $ref: "paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
108 /circulation-rules/kinds:
109 $ref: paths/circulation-rules.yaml#/~1circulation-rules~1kinds
111 $ref: paths/cities.yaml#/~1cities
113 $ref: "paths/cities.yaml#/~1cities~1{city_id}"
114 "/clubs/{club_id}/holds":
115 $ref: "paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
116 /config/smtp_servers:
117 $ref: paths/config_smtp_servers.yaml#/~1config~1smtp_servers
118 "/config/smtp_servers/{smtp_server_id}":
119 $ref: "paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
121 $ref: paths/holds.yaml#/~1holds
123 $ref: "paths/holds.yaml#/~1holds~1{hold_id}"
124 "/holds/{hold_id}/pickup_location":
125 $ref: "paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
126 "/holds/{hold_id}/pickup_locations":
127 $ref: "paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
128 "/holds/{hold_id}/priority":
129 $ref: "paths/holds.yaml#/~1holds~1{hold_id}~1priority"
130 "/holds/{hold_id}/suspension":
131 $ref: "paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
133 $ref: paths/ill_backends.yaml#/~1ill_backends
134 "/ill_backends/{ill_backend_id}":
135 $ref: "paths/ill_backends.yaml#/~1ill_backends~1{ill_backend_id}"
137 $ref: paths/illrequests.yaml#/~1illrequests
138 /import_batch_profiles:
139 $ref: paths/import_batch_profiles.yaml#/~1import_batch_profiles
140 "/import_batch_profiles/{import_batch_profile_id}":
141 $ref: "paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
143 $ref: paths/items.yaml#/~1items
145 $ref: "paths/items.yaml#/~1items~1{item_id}"
146 "/items/{item_id}/pickup_locations":
147 $ref: "paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
149 $ref: paths/libraries.yaml#/~1libraries
150 "/libraries/{library_id}":
151 $ref: "paths/libraries.yaml#/~1libraries~1{library_id}"
153 $ref: paths/oauth.yaml#/~1oauth~1token
155 $ref: paths/patrons.yaml#/~1patrons
156 "/patrons/{patron_id}":
157 $ref: "paths/patrons.yaml#/~1patrons~1{patron_id}"
158 "/patrons/{patron_id}/account":
159 $ref: "paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
160 "/patrons/{patron_id}/account/credits":
161 $ref: "paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
162 "/patrons/{patron_id}/extended_attributes":
163 $ref: "paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
164 "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
165 $ref: "paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
166 "/patrons/{patron_id}/holds":
167 $ref: "paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
168 "/patrons/{patron_id}/password":
169 $ref: "paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
170 "/public/biblios/{biblio_id}":
171 $ref: "paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
172 "/public/biblios/{biblio_id}/items":
173 $ref: "paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
175 $ref: paths/libraries.yaml#/~1public~1libraries
176 "/public/libraries/{library_id}":
177 $ref: "paths/libraries.yaml#/~1public~1libraries~1{library_id}"
178 "/public/patrons/{patron_id}/article_requests/{article_request_id}":
179 $ref: "paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
180 "/public/patrons/{patron_id}/guarantors/can_see_charges":
181 $ref: "paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
182 "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
183 $ref: "paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
184 "/public/patrons/{patron_id}/password":
185 $ref: "paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
187 $ref: paths/quotes.yaml#/~1quotes
188 "/quotes/{quote_id}":
189 $ref: "paths/quotes.yaml#/~1quotes~1{quote_id}"
191 $ref: paths/return_claims.yaml#/~1return_claims
192 "/return_claims/{claim_id}":
193 $ref: "paths/return_claims.yaml#/~1return_claims~1{claim_id}"
194 "/return_claims/{claim_id}/notes":
195 $ref: "paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
196 "/return_claims/{claim_id}/resolve":
197 $ref: "paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
198 "/rotas/{rota_id}/stages/{stage_id}/position":
199 $ref: "paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
201 $ref: paths/suggestions.yaml#/~1suggestions
202 "/suggestions/{suggestion_id}":
203 $ref: "paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
205 $ref: paths/transfer_limits.yaml#/~1transfer_limits
206 /transfer_limits/batch:
207 $ref: paths/transfer_limits.yaml#/~1transfer_limits~1batch
208 "/transfer_limits/{limit_id}":
209 $ref: "paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
215 url: http://www.gnu.org/licenses/gpl.txt
217 name: Koha Development Team
218 url: https://koha-community.org/
222 This API is documented in **OpenAPI format**.
226 The API supports the following authentication mechanisms
228 * HTTP Basic authentication
229 * OAuth2 (client credentials grant)
232 Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
233 by system preferences.
237 The API uses standard HTTP status codes to indicate the success or failure
238 of the API call. The body of the response will be JSON in the following format:
242 "error": "Current settings prevent the passed due date to be applied",
243 "error_code": "invalid_due_date"
247 Note: Some routes might offer additional attributes in their error responses but that"s
248 subject to change and thus not documented.
250 ## Filtering responses
252 The API allows for some advanced response filtering using a JSON based query syntax. The
253 query can be added to the requests:
255 * as a query parameter `q=`
256 * in the request body
257 * in a special header `x-koha-query`
259 For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
260 matches one of the fields as described in the particular endpoints response object.
262 We can refine that with more complex matching clauses by nesting a the clause into the
263 object; `{ "fieldname": { "clause": "value" } }`.
265 Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
267 We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
268 level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
269 "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
270 results with both field1 containing value2 AND field2 containing value2 for example.
274 The following request would return any patron with firstname "Henry" and lastname "Acevedo";
276 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
278 The following request would return any patron whose lastname begins with "Ace";
280 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
282 The following request would return any patron whilse lastname is "Acevedo" OR "Bernardo"
284 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
290 This optional header should be passed to give your api request a library
291 context; If it is not included in the request, then the request context
292 will default to using your api comsumer"s assigned home library.
294 - description: "Manage article requests\n"
295 name: article_requests
296 x-displayName: Article requests
297 - description: "Manage bibliographic records\n"
299 x-displayName: Biblios
300 - description: "Manage cash register cashups\n"
302 x-displayName: Cashups
303 - description: "Manage checkouts\n"
305 x-displayName: Checkouts
306 - description: "Manage circulation rules\n"
307 name: circulation_rules
308 x-displayName: Circulation rules
309 - description: "Manage cities\n"
311 x-displayName: Cities
312 - description: "Manage patron clubs\n"
315 - description: "Manage funds for the acquisitions module\n"
318 - description: "Manage holds\n"
321 - description: "Manage ILL module backends\n"
323 x-displayName: ILL backends
324 - description: "Manage ILL requests\n"
326 x-displayName: ILL requests
327 - description: "Manage items\n"
330 - description: "Manage libraries\n"
332 x-displayName: Libraries
333 - description: "Manage macros\n"
335 x-displayName: Macros
336 - description: "Manage acquisition orders\n"
338 x-displayName: Orders
339 - description: "Handle OAuth flows\n"
342 - description: "Manage patrons\n"
344 x-displayName: Patrons
345 - description: "Manage quotes\n"
347 x-displayName: Quotes
348 - description: "Manage return claims\n"
350 x-displayName: Return claims
351 - description: "Manage rotas\n"
354 - description: "Manage SMTP servers configurations\n"
356 x-displayName: SMTP servers
357 - description: "Manage transfer limits\n"
359 x-displayName: Transfer limits
360 - description: "Manage purchase suggestions\n"
362 x-displayName: Purchase suggestions
363 - description: "Manage vendors for the acquisitions module\n"
365 x-displayName: Vendors
366 - description: "Manage batch import profiles\n"
367 name: batch_import_profiles
368 x-displayName: Batch import profiles