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}"
211 advancededitormacro_id_pp:
212 description: Advanced editor macro internal identifier
214 name: advancededitormacro_id
218 description: Record internal identifier
224 description: Cash register internal identifier
226 name: cash_register_id
230 description: Cashup internal identifier
236 description: Internal checkout identifier
242 description: City internal identifier
248 description: Internal club identifier
260 description: Internal hold identifier
265 import_batch_profile_id_pp:
266 description: Internal profile identifier
268 name: import_batch_profile_id
272 description: Internal item identifier
278 description: Internal library identifier
284 description: Matching criteria
295 collectionFormat: csv
296 description: Sorting criteria
304 description: Internal order identifier
310 description: "Page number, for paginated object listing"
316 description: Internal patron identifier
322 description: Internal patron identifier
327 description: "Page size, for paginated object listing"
333 description: Query filter sent through request"s body
339 additionalProperties: true
341 description: Query filter sent as a request header
347 description: Query filter sent as a request parameter
354 collectionFormat: multi
356 description: Quote internal identifier
362 description: Item was seen flag
368 description: SMTP server internal identifier
374 description: Internal suggestion identifier
379 transfer_limit_id_pp:
380 description: Internal transfer limit identifier
386 description: Vendor id
396 url: http://www.gnu.org/licenses/gpl.txt
398 name: Koha Development Team
399 url: https://koha-community.org/
403 This API is documented in **OpenAPI format**.
407 The API supports the following authentication mechanisms
409 * HTTP Basic authentication
410 * OAuth2 (client credentials grant)
413 Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
414 by system preferences.
418 The API uses standard HTTP status codes to indicate the success or failure
419 of the API call. The body of the response will be JSON in the following format:
423 "error": "Current settings prevent the passed due date to be applied",
424 "error_code": "invalid_due_date"
428 Note: Some routes might offer additional attributes in their error responses but that"s
429 subject to change and thus not documented.
431 ## Filtering responses
433 The API allows for some advanced response filtering using a JSON based query syntax. The
434 query can be added to the requests:
436 * as a query parameter `q=`
437 * in the request body
438 * in a special header `x-koha-query`
440 For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
441 matches one of the fields as described in the particular endpoints response object.
443 We can refine that with more complex matching clauses by nesting a the clause into the
444 object; `{ "fieldname": { "clause": "value" } }`.
446 Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
448 We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
449 level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
450 "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
451 results with both field1 containing value2 AND field2 containing value2 for example.
455 The following request would return any patron with firstname "Henry" and lastname "Acevedo";
457 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
459 The following request would return any patron whose lastname begins with "Ace";
461 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
463 The following request would return any patron whilse lastname is "Acevedo" OR "Bernardo"
465 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
471 This optional header should be passed to give your api request a library
472 context; If it is not included in the request, then the request context
473 will default to using your api comsumer"s assigned home library.
475 - description: "Manage article requests\n"
476 name: article_requests
477 x-displayName: Article requests
478 - description: "Manage bibliographic records\n"
480 x-displayName: Biblios
481 - description: "Manage cash register cashups\n"
483 x-displayName: Cashups
484 - description: "Manage checkouts\n"
486 x-displayName: Checkouts
487 - description: "Manage circulation rules\n"
488 name: circulation_rules
489 x-displayName: Circulation rules
490 - description: "Manage cities\n"
492 x-displayName: Cities
493 - description: "Manage patron clubs\n"
496 - description: "Manage funds for the acquisitions module\n"
499 - description: "Manage holds\n"
502 - description: "Manage ILL module backends\n"
504 x-displayName: ILL backends
505 - description: "Manage ILL requests\n"
507 x-displayName: ILL requests
508 - description: "Manage items\n"
511 - description: "Manage libraries\n"
513 x-displayName: Libraries
514 - description: "Manage macros\n"
516 x-displayName: Macros
517 - description: "Manage acquisition orders\n"
519 x-displayName: Orders
520 - description: "Handle OAuth flows\n"
523 - description: "Manage patrons\n"
525 x-displayName: Patrons
526 - description: "Manage quotes\n"
528 x-displayName: Quotes
529 - description: "Manage return claims\n"
531 x-displayName: Return claims
532 - description: "Manage rotas\n"
535 - description: "Manage SMTP servers configurations\n"
537 x-displayName: SMTP servers
538 - description: "Manage transfer limits\n"
540 x-displayName: Transfer limits
541 - description: "Manage purchase suggestions\n"
543 x-displayName: Purchase suggestions
544 - description: "Manage vendors for the acquisitions module\n"
546 x-displayName: Vendors
547 - description: "Manage batch import profiles\n"
548 name: batch_import_profiles
549 x-displayName: Batch import profiles