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
68 /acquisitions/baskets/managers:
69 $ref: paths/acquisitions_baskets.yaml#/~1acquisitions~1baskets~1managers
71 $ref: ./paths/acquisitions_funds.yaml#/~1acquisitions~1funds
72 /acquisitions/funds/owners:
73 $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1owners
74 /acquisitions/funds/users:
75 $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1users
77 $ref: ./paths/acquisitions_orders.yaml#/~1acquisitions~1orders
78 "/acquisitions/orders/{order_id}":
79 $ref: "./paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
80 /acquisitions/vendors:
81 $ref: ./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
82 "/acquisitions/vendors/{vendor_id}":
83 $ref: "./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
84 /advanced_editor/macros:
85 $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros
86 /advanced_editor/macros/shared:
87 $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
88 "/advanced_editor/macros/shared/{advancededitormacro_id}":
89 $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
90 "/advanced_editor/macros/{advancededitormacro_id}":
91 $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
92 "/article_requests/{article_request_id}":
93 $ref: "./paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
94 "/biblios/{biblio_id}":
95 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}"
96 "/biblios/{biblio_id}/checkouts":
97 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
98 "/biblios/{biblio_id}/items":
99 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
100 "/biblios/{biblio_id}/pickup_locations":
101 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
102 "/cash_registers/{cash_register_id}/cashups":
103 $ref: "./paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
104 "/cashups/{cashup_id}":
105 $ref: "./paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
107 $ref: ./paths/checkouts.yaml#/~1checkouts
108 "/checkouts/{checkout_id}":
109 $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
110 "/checkouts/{checkout_id}/allows_renewal":
111 $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
112 "/checkouts/{checkout_id}/renewal":
113 $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
114 /circulation-rules/kinds:
115 $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds
117 $ref: ./paths/cities.yaml#/~1cities
119 $ref: "./paths/cities.yaml#/~1cities~1{city_id}"
120 "/clubs/{club_id}/holds":
121 $ref: "./paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
122 /config/smtp_servers:
123 $ref: ./paths/config_smtp_servers.yaml#/~1config~1smtp_servers
124 "/config/smtp_servers/{smtp_server_id}":
125 $ref: "./paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
127 $ref: ./paths/holds.yaml#/~1holds
129 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}"
130 "/holds/{hold_id}/pickup_location":
131 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
132 "/holds/{hold_id}/pickup_locations":
133 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
134 "/holds/{hold_id}/priority":
135 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1priority"
136 "/holds/{hold_id}/suspension":
137 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
139 $ref: ./paths/ill_backends.yaml#/~1ill_backends
140 "/ill_backends/{ill_backend_id}":
141 $ref: "./paths/ill_backends.yaml#/~1ill_backends~1{ill_backend_id}"
143 $ref: ./paths/illrequests.yaml#/~1illrequests
144 /import_batch_profiles:
145 $ref: ./paths/import_batch_profiles.yaml#/~1import_batch_profiles
146 "/import_batch_profiles/{import_batch_profile_id}":
147 $ref: "./paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
149 $ref: ./paths/items.yaml#/~1items
151 $ref: "./paths/items.yaml#/~1items~1{item_id}"
152 "/items/{item_id}/pickup_locations":
153 $ref: "./paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
155 $ref: ./paths/libraries.yaml#/~1libraries
156 "/libraries/{library_id}":
157 $ref: "./paths/libraries.yaml#/~1libraries~1{library_id}"
159 $ref: ./paths/oauth.yaml#/~1oauth~1token
161 $ref: ./paths/patrons.yaml#/~1patrons
162 "/patrons/{patron_id}":
163 $ref: "./paths/patrons.yaml#/~1patrons~1{patron_id}"
164 "/patrons/{patron_id}/account":
165 $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
166 "/patrons/{patron_id}/account/credits":
167 $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
168 "/patrons/{patron_id}/extended_attributes":
169 $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
170 "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
171 $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
172 "/patrons/{patron_id}/holds":
173 $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
174 "/patrons/{patron_id}/password":
175 $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
176 "/public/biblios/{biblio_id}":
177 $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
178 "/public/biblios/{biblio_id}/items":
179 $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
181 $ref: ./paths/libraries.yaml#/~1public~1libraries
182 "/public/libraries/{library_id}":
183 $ref: "./paths/libraries.yaml#/~1public~1libraries~1{library_id}"
184 "/public/patrons/{patron_id}/article_requests/{article_request_id}":
185 $ref: "./paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
186 "/public/patrons/{patron_id}/guarantors/can_see_charges":
187 $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
188 "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
189 $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
190 "/public/patrons/{patron_id}/password":
191 $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
193 $ref: ./paths/quotes.yaml#/~1quotes
194 "/quotes/{quote_id}":
195 $ref: "./paths/quotes.yaml#/~1quotes~1{quote_id}"
197 $ref: ./paths/return_claims.yaml#/~1return_claims
198 "/return_claims/{claim_id}":
199 $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}"
200 "/return_claims/{claim_id}/notes":
201 $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
202 "/return_claims/{claim_id}/resolve":
203 $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
204 "/rotas/{rota_id}/stages/{stage_id}/position":
205 $ref: "./paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
207 $ref: ./paths/suggestions.yaml#/~1suggestions
208 "/suggestions/{suggestion_id}":
209 $ref: "./paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
210 /suggestions/managers:
211 $ref: paths/suggestions.yaml#/~1suggestions~1managers
213 $ref: ./paths/transfer_limits.yaml#/~1transfer_limits
214 /transfer_limits/batch:
215 $ref: ./paths/transfer_limits.yaml#/~1transfer_limits~1batch
216 "/transfer_limits/{limit_id}":
217 $ref: "./paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
219 advancededitormacro_id_pp:
220 description: Advanced editor macro internal identifier
222 name: advancededitormacro_id
226 description: Record internal identifier
232 description: Cash register internal identifier
234 name: cash_register_id
238 description: Cashup internal identifier
244 description: Internal checkout identifier
250 description: City internal identifier
256 description: Internal club identifier
268 description: Internal hold identifier
273 import_batch_profile_id_pp:
274 description: Internal profile identifier
276 name: import_batch_profile_id
280 description: Internal item identifier
286 description: Internal library identifier
292 description: Matching criteria
303 collectionFormat: csv
304 description: Sorting criteria
312 description: Internal order identifier
318 description: "Page number, for paginated object listing"
324 description: Internal patron identifier
330 description: Internal patron identifier
335 description: "Page size, for paginated object listing"
341 description: Query filter sent through request"s body
348 description: Query filter sent as a request header
354 description: Query filter sent as a request parameter
361 collectionFormat: multi
363 description: Quote internal identifier
369 description: Request id header
371 name: x-koha-request-id
375 description: Item was seen flag
381 description: SMTP server internal identifier
387 description: Internal suggestion identifier
392 transfer_limit_id_pp:
393 description: Internal transfer limit identifier
399 description: Vendor id
409 url: http://www.gnu.org/licenses/gpl.txt
411 name: Koha Development Team
412 url: https://koha-community.org/
416 This API is documented in **OpenAPI format**.
420 The API supports the following authentication mechanisms
422 * HTTP Basic authentication
423 * OAuth2 (client credentials grant)
426 Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
427 by system preferences.
431 The API uses standard HTTP status codes to indicate the success or failure
432 of the API call. The body of the response will be JSON in the following format:
436 "error": "Current settings prevent the passed due date to be applied",
437 "error_code": "invalid_due_date"
441 Note: Some routes might offer additional attributes in their error responses but that"s
442 subject to change and thus not documented.
444 ## Filtering responses
446 The API allows for some advanced response filtering using a JSON based query syntax. The
447 query can be added to the requests:
449 * as a query parameter `q=`
450 * in the request body
451 * in a special header `x-koha-query`
453 For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
454 matches one of the fields as described in the particular endpoints response object.
456 We can refine that with more complex matching clauses by nesting a the clause into the
457 object; `{ "fieldname": { "clause": "value" } }`.
459 Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
461 We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
462 level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
463 "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
464 results with both field1 containing value2 AND field2 containing value2 for example.
468 The following request would return any patron with firstname "Henry" and lastname "Acevedo";
470 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
472 The following request would return any patron whose lastname begins with "Ace";
474 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
476 The following request would return any patron whilse lastname is "Acevedo" OR "Bernardo"
478 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
484 This optional header should be passed to give your api request a library
485 context; If it is not included in the request, then the request context
486 will default to using your api comsumer"s assigned home library.
488 - description: "Manage article requests\n"
489 name: article_requests
490 x-displayName: Article requests
491 - description: "Manage bibliographic records\n"
493 x-displayName: Biblios
494 - description: "Manage cash register cashups\n"
496 x-displayName: Cashups
497 - description: "Manage checkouts\n"
499 x-displayName: Checkouts
500 - description: "Manage circulation rules\n"
501 name: circulation_rules
502 x-displayName: Circulation rules
503 - description: "Manage cities\n"
505 x-displayName: Cities
506 - description: "Manage patron clubs\n"
509 - description: "Manage funds for the acquisitions module\n"
512 - description: "Manage holds\n"
515 - description: "Manage ILL module backends\n"
517 x-displayName: ILL backends
518 - description: "Manage ILL requests\n"
520 x-displayName: ILL requests
521 - description: "Manage items\n"
524 - description: "Manage libraries\n"
526 x-displayName: Libraries
527 - description: "Manage macros\n"
529 x-displayName: Macros
530 - description: "Manage acquisition orders\n"
532 x-displayName: Orders
533 - description: "Handle OAuth flows\n"
536 - description: "Manage patrons\n"
538 x-displayName: Patrons
539 - description: "Manage quotes\n"
541 x-displayName: Quotes
542 - description: "Manage return claims\n"
544 x-displayName: Return claims
545 - description: "Manage rotas\n"
548 - description: "Manage SMTP servers configurations\n"
550 x-displayName: SMTP servers
551 - description: "Manage transfer limits\n"
553 x-displayName: Transfer limits
554 - description: "Manage purchase suggestions\n"
556 x-displayName: Purchase suggestions
557 - description: "Manage vendors for the acquisitions module\n"
559 x-displayName: Vendors
560 - description: "Manage batch import profiles\n"
561 name: batch_import_profiles
562 x-displayName: Batch import profiles