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
73 $ref: ./paths/acquisitions_orders.yaml#/~1acquisitions~1orders
74 "/acquisitions/orders/{order_id}":
75 $ref: "./paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
76 /acquisitions/vendors:
77 $ref: ./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
78 "/acquisitions/vendors/{vendor_id}":
79 $ref: "./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
80 /advanced_editor/macros:
81 $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros
82 /advanced_editor/macros/shared:
83 $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
84 "/advanced_editor/macros/shared/{advancededitormacro_id}":
85 $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
86 "/advanced_editor/macros/{advancededitormacro_id}":
87 $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
88 "/article_requests/{article_request_id}":
89 $ref: "./paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
90 "/biblios/{biblio_id}":
91 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}"
92 "/biblios/{biblio_id}/checkouts":
93 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
94 "/biblios/{biblio_id}/items":
95 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
96 "/biblios/{biblio_id}/pickup_locations":
97 $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
98 "/cash_registers/{cash_register_id}/cashups":
99 $ref: "./paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
100 "/cashups/{cashup_id}":
101 $ref: "./paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
103 $ref: ./paths/checkouts.yaml#/~1checkouts
104 "/checkouts/{checkout_id}":
105 $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
106 "/checkouts/{checkout_id}/allows_renewal":
107 $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
108 "/checkouts/{checkout_id}/renewal":
109 $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
110 /circulation-rules/kinds:
111 $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds
113 $ref: ./paths/cities.yaml#/~1cities
115 $ref: "./paths/cities.yaml#/~1cities~1{city_id}"
116 "/clubs/{club_id}/holds":
117 $ref: "./paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
118 /config/smtp_servers:
119 $ref: ./paths/config_smtp_servers.yaml#/~1config~1smtp_servers
120 "/config/smtp_servers/{smtp_server_id}":
121 $ref: "./paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
123 $ref: ./paths/holds.yaml#/~1holds
125 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}"
126 "/holds/{hold_id}/pickup_location":
127 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
128 "/holds/{hold_id}/pickup_locations":
129 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
130 "/holds/{hold_id}/priority":
131 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1priority"
132 "/holds/{hold_id}/suspension":
133 $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
135 $ref: ./paths/ill_backends.yaml#/~1ill_backends
136 "/ill_backends/{ill_backend_id}":
137 $ref: "./paths/ill_backends.yaml#/~1ill_backends~1{ill_backend_id}"
139 $ref: ./paths/illrequests.yaml#/~1illrequests
140 /import_batch_profiles:
141 $ref: ./paths/import_batch_profiles.yaml#/~1import_batch_profiles
142 "/import_batch_profiles/{import_batch_profile_id}":
143 $ref: "./paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
145 $ref: ./paths/items.yaml#/~1items
147 $ref: "./paths/items.yaml#/~1items~1{item_id}"
148 "/items/{item_id}/pickup_locations":
149 $ref: "./paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
151 $ref: ./paths/libraries.yaml#/~1libraries
152 "/libraries/{library_id}":
153 $ref: "./paths/libraries.yaml#/~1libraries~1{library_id}"
155 $ref: ./paths/oauth.yaml#/~1oauth~1token
157 $ref: ./paths/patrons.yaml#/~1patrons
158 "/patrons/{patron_id}":
159 $ref: "./paths/patrons.yaml#/~1patrons~1{patron_id}"
160 "/patrons/{patron_id}/account":
161 $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
162 "/patrons/{patron_id}/account/credits":
163 $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
164 "/patrons/{patron_id}/extended_attributes":
165 $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
166 "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
167 $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
168 "/patrons/{patron_id}/holds":
169 $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
170 "/patrons/{patron_id}/password":
171 $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
172 "/public/biblios/{biblio_id}":
173 $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
174 "/public/biblios/{biblio_id}/items":
175 $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
177 $ref: ./paths/libraries.yaml#/~1public~1libraries
178 "/public/libraries/{library_id}":
179 $ref: "./paths/libraries.yaml#/~1public~1libraries~1{library_id}"
180 "/public/patrons/{patron_id}/article_requests/{article_request_id}":
181 $ref: "./paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
182 "/public/patrons/{patron_id}/guarantors/can_see_charges":
183 $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
184 "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
185 $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
186 "/public/patrons/{patron_id}/password":
187 $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
189 $ref: ./paths/quotes.yaml#/~1quotes
190 "/quotes/{quote_id}":
191 $ref: "./paths/quotes.yaml#/~1quotes~1{quote_id}"
193 $ref: ./paths/return_claims.yaml#/~1return_claims
194 "/return_claims/{claim_id}":
195 $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}"
196 "/return_claims/{claim_id}/notes":
197 $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
198 "/return_claims/{claim_id}/resolve":
199 $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
200 "/rotas/{rota_id}/stages/{stage_id}/position":
201 $ref: "./paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
203 $ref: ./paths/suggestions.yaml#/~1suggestions
204 "/suggestions/{suggestion_id}":
205 $ref: "./paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
206 /suggestions/managers:
207 $ref: paths/suggestions.yaml#/~1suggestions~1managers
209 $ref: ./paths/transfer_limits.yaml#/~1transfer_limits
210 /transfer_limits/batch:
211 $ref: ./paths/transfer_limits.yaml#/~1transfer_limits~1batch
212 "/transfer_limits/{limit_id}":
213 $ref: "./paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
215 advancededitormacro_id_pp:
216 description: Advanced editor macro internal identifier
218 name: advancededitormacro_id
222 description: Record internal identifier
228 description: Cash register internal identifier
230 name: cash_register_id
234 description: Cashup internal identifier
240 description: Internal checkout identifier
246 description: City internal identifier
252 description: Internal club identifier
264 description: Internal hold identifier
269 import_batch_profile_id_pp:
270 description: Internal profile identifier
272 name: import_batch_profile_id
276 description: Internal item identifier
282 description: Internal library identifier
288 description: Matching criteria
299 collectionFormat: csv
300 description: Sorting criteria
308 description: Internal order identifier
314 description: "Page number, for paginated object listing"
320 description: Internal patron identifier
326 description: Internal patron identifier
331 description: "Page size, for paginated object listing"
337 description: Query filter sent through request"s body
344 description: Query filter sent as a request header
350 description: Query filter sent as a request parameter
357 collectionFormat: multi
359 description: Quote internal identifier
365 description: Item was seen flag
371 description: SMTP server internal identifier
377 description: Internal suggestion identifier
382 transfer_limit_id_pp:
383 description: Internal transfer limit identifier
389 description: Vendor id
399 url: http://www.gnu.org/licenses/gpl.txt
401 name: Koha Development Team
402 url: https://koha-community.org/
406 This API is documented in **OpenAPI format**.
410 The API supports the following authentication mechanisms
412 * HTTP Basic authentication
413 * OAuth2 (client credentials grant)
416 Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
417 by system preferences.
421 The API uses standard HTTP status codes to indicate the success or failure
422 of the API call. The body of the response will be JSON in the following format:
426 "error": "Current settings prevent the passed due date to be applied",
427 "error_code": "invalid_due_date"
431 Note: Some routes might offer additional attributes in their error responses but that"s
432 subject to change and thus not documented.
434 ## Filtering responses
436 The API allows for some advanced response filtering using a JSON based query syntax. The
437 query can be added to the requests:
439 * as a query parameter `q=`
440 * in the request body
441 * in a special header `x-koha-query`
443 For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
444 matches one of the fields as described in the particular endpoints response object.
446 We can refine that with more complex matching clauses by nesting a the clause into the
447 object; `{ "fieldname": { "clause": "value" } }`.
449 Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
451 We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
452 level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
453 "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
454 results with both field1 containing value2 AND field2 containing value2 for example.
458 The following request would return any patron with firstname "Henry" and lastname "Acevedo";
460 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
462 The following request would return any patron whose lastname begins with "Ace";
464 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
466 The following request would return any patron whilse lastname is "Acevedo" OR "Bernardo"
468 `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
474 This optional header should be passed to give your api request a library
475 context; If it is not included in the request, then the request context
476 will default to using your api comsumer"s assigned home library.
478 - description: "Manage article requests\n"
479 name: article_requests
480 x-displayName: Article requests
481 - description: "Manage bibliographic records\n"
483 x-displayName: Biblios
484 - description: "Manage cash register cashups\n"
486 x-displayName: Cashups
487 - description: "Manage checkouts\n"
489 x-displayName: Checkouts
490 - description: "Manage circulation rules\n"
491 name: circulation_rules
492 x-displayName: Circulation rules
493 - description: "Manage cities\n"
495 x-displayName: Cities
496 - description: "Manage patron clubs\n"
499 - description: "Manage funds for the acquisitions module\n"
502 - description: "Manage holds\n"
505 - description: "Manage ILL module backends\n"
507 x-displayName: ILL backends
508 - description: "Manage ILL requests\n"
510 x-displayName: ILL requests
511 - description: "Manage items\n"
514 - description: "Manage libraries\n"
516 x-displayName: Libraries
517 - description: "Manage macros\n"
519 x-displayName: Macros
520 - description: "Manage acquisition orders\n"
522 x-displayName: Orders
523 - description: "Handle OAuth flows\n"
526 - description: "Manage patrons\n"
528 x-displayName: Patrons
529 - description: "Manage quotes\n"
531 x-displayName: Quotes
532 - description: "Manage return claims\n"
534 x-displayName: Return claims
535 - description: "Manage rotas\n"
538 - description: "Manage SMTP servers configurations\n"
540 x-displayName: SMTP servers
541 - description: "Manage transfer limits\n"
543 x-displayName: Transfer limits
544 - description: "Manage purchase suggestions\n"
546 x-displayName: Purchase suggestions
547 - description: "Manage vendors for the acquisitions module\n"
549 x-displayName: Vendors
550 - description: "Manage batch import profiles\n"
551 name: batch_import_profiles
552 x-displayName: Batch import profiles