Bug 33971: Remove x-koha-query header support
[koha.git] / api / v1 / swagger / swagger.yaml
1 ---
2 swagger: "2.0"
3 basePath: /api/v1
4 definitions:
5   account_line:
6     $ref: ./definitions/account_line.yaml
7   advancededitormacro:
8     $ref: ./definitions/advancededitormacro.yaml
9   allows_renewal:
10     $ref: ./definitions/allows_renewal.yaml
11   authorised_value:
12     $ref: ./definitions/authorised_value.yaml
13   authorised_value_category:
14     $ref: ./definitions/authorised_value_category.yaml
15   identity_provider:
16     "$ref": ./definitions/identity_provider.yaml
17   identity_provider_domain:
18     "$ref": ./definitions/identity_provider_domain.yaml
19   basket:
20     $ref: ./definitions/basket.yaml
21   bundle_link:
22     $ref: ./definitions/bundle_link.yaml
23   cashup:
24     $ref: ./definitions/cashup.yaml
25   checkout:
26     $ref: ./definitions/checkout.yaml
27   checkouts:
28     $ref: ./definitions/checkouts.yaml
29   circ-rule-kind:
30     $ref: ./definitions/circ-rule-kind.yaml
31   city:
32     $ref: ./definitions/city.yaml
33   credit:
34     $ref: ./definitions/credit.yaml
35   debit:
36     $ref: ./definitions/debit.yaml
37   erm_agreement:
38     $ref: ./definitions/erm_agreement.yaml
39   erm_eholdings_title:
40     $ref: ./definitions/erm_eholdings_title.yaml
41   erm_eholdings_package:
42     $ref: ./definitions/erm_eholdings_package.yaml
43   erm_eholdings_resource:
44     $ref: ./definitions/erm_eholdings_resource.yaml
45   erm_license:
46     $ref: ./definitions/erm_license.yaml
47   error:
48     $ref: ./definitions/error.yaml
49   fund:
50     $ref: ./definitions/fund.yaml
51   hold:
52     $ref: ./definitions/hold.yaml
53   holds:
54     $ref: ./definitions/holds.yaml
55   ill_backend:
56     $ref: ./definitions/ill_backend.yaml
57   ill_backends:
58     $ref: ./definitions/ill_backends.yaml
59   ill_status:
60     $ref: ./definitions/ill_status.yaml
61   ill_request:
62     $ref: ./definitions/ill_request.yaml
63   import_batch_profile:
64     $ref: ./definitions/import_batch_profile.yaml
65   import_batch_profiles:
66     $ref: ./definitions/import_batch_profiles.yaml
67   import_record_match:
68     $ref: ./definitions/import_record_match.yaml
69   invoice:
70     $ref: ./definitions/invoice.yaml
71   item:
72     $ref: ./definitions/item.yaml
73   item_group:
74     $ref: ./definitions/item_group.yaml
75   job:
76     $ref: ./definitions/job.yaml
77   library:
78     $ref: ./definitions/library.yaml
79   order:
80     $ref: ./definitions/order.yaml
81   patron:
82     $ref: ./definitions/patron.yaml
83   patron_account_credit:
84     $ref: ./definitions/patron_account_credit.yaml
85   patron_balance:
86     $ref: ./definitions/patron_balance.yaml
87   patron_extended_attribute:
88     $ref: ./definitions/patron_extended_attribute.yaml
89   quote:
90     $ref: ./definitions/quote.yaml
91   renewal:
92     $ref: ./definitions/renewal.yaml
93   renewals:
94     $ref: ./definitions/renewals.yaml
95   return_claim:
96     $ref: ./definitions/return_claim.yaml
97   search_filter:
98     $ref: ./definitions/search_filter.yaml
99   smtp_server:
100     $ref: ./definitions/smtp_server.yaml
101   suggestion:
102     $ref: ./definitions/suggestion.yaml
103   ticket:
104     $ref: ./definitions/ticket.yaml
105   ticket_update:
106     $ref: ./definitions/ticket_update.yaml
107   transfer_limit:
108     $ref: ./definitions/transfer_limit.yaml
109   vendor:
110     $ref: ./definitions/vendor.yaml
111 paths:
112   /acquisitions/baskets/managers:
113     $ref: paths/acquisitions_baskets.yaml#/~1acquisitions~1baskets~1managers
114   /acquisitions/funds:
115     $ref: ./paths/acquisitions_funds.yaml#/~1acquisitions~1funds
116   /acquisitions/funds/owners:
117     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1owners
118   /acquisitions/funds/users:
119     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1users
120   /acquisitions/orders:
121     $ref: ./paths/acquisitions_orders.yaml#/~1acquisitions~1orders
122   "/acquisitions/orders/{order_id}":
123     $ref: "./paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
124   /acquisitions/vendors:
125     $ref: ./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
126   "/acquisitions/vendors/{vendor_id}":
127     $ref: "./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
128   /advanced_editor/macros:
129     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros
130   /advanced_editor/macros/shared:
131     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
132   /search_filters:
133     $ref: ./paths/search_filters.yaml#/~1search_filters
134   "/search_filters/{search_filter_id}":
135     $ref: "./paths/search_filters.yaml#/~1search_filters~1{search_filter_id}"
136   "/advanced_editor/macros/shared/{advancededitormacro_id}":
137     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
138   "/advanced_editor/macros/{advancededitormacro_id}":
139     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
140   "/article_requests/{article_request_id}":
141     $ref: "./paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
142   /auth/otp/token_delivery:
143     $ref: paths/auth.yaml#/~1auth~1otp~1token_delivery
144   "/auth/password/validation":
145     $ref: "./paths/auth.yaml#/~1auth~1password~1validation"
146   /auth/two-factor/registration:
147     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration
148   /auth/two-factor/registration/verification:
149     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration~1verification
150   /auth/identity_providers:
151     $ref: paths/auth.yaml#/~1auth~1identity_providers
152   "/auth/identity_providers/{identity_provider_id}":
153     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}
154   "/auth/identity_providers/{identity_provider_id}/domains":
155     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains
156   "/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}":
157     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains~1{identity_provider_domain_id}
158   /authorised_value_categories:
159     $ref: paths/authorised_value_categories.yaml#/~1authorised_value_categories
160   "/authorised_value_categories/{authorised_value_category_name}/authorised_values":
161     $ref: "./paths/authorised_values.yaml#/~1authorised_value_categories~1{authorised_value_category_name}~1authorised_values"
162   "/authorities":
163     $ref: paths/authorities.yaml#/~1authorities
164   "/authorities/{authority_id}":
165     $ref: paths/authorities.yaml#/~1authorities~1{authority_id}
166   "/biblios":
167     $ref: "./paths/biblios.yaml#/~1biblios"
168   "/biblios/{biblio_id}":
169     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}"
170   "/biblios/{biblio_id}/checkouts":
171     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
172   "/biblios/{biblio_id}/items":
173     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
174   "/biblios/{biblio_id}/items/{item_id}":
175     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items~1{item_id}"
176   "/biblios/{biblio_id}/pickup_locations":
177     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
178   "/biblios/{biblio_id}/item_groups":
179     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups"
180   "/biblios/{biblio_id}/item_groups/{item_group_id}":
181     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}"
182   "/biblios/{biblio_id}/item_groups/{item_group_id}/items":
183     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items"
184   "/biblios/{biblio_id}/item_groups/{item_group_id}/items/{item_id}":
185     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items~1{item_id}"
186   "/cash_registers/{cash_register_id}/cashups":
187     $ref: "./paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
188   "/cashups/{cashup_id}":
189     $ref: "./paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
190   /checkouts:
191     $ref: ./paths/checkouts.yaml#/~1checkouts
192   "/checkouts/{checkout_id}":
193     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
194   "/checkouts/{checkout_id}/allows_renewal":
195     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
196   "/checkouts/{checkout_id}/renewals":
197     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewals"
198   "/checkouts/{checkout_id}/renewal":
199     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
200   "/checkouts/availability":
201     $ref: "./paths/checkouts.yaml#/~1checkouts~1availability"
202   /circulation-rules/kinds:
203     $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds
204   /cities:
205     $ref: ./paths/cities.yaml#/~1cities
206   "/cities/{city_id}":
207     $ref: "./paths/cities.yaml#/~1cities~1{city_id}"
208   "/clubs/{club_id}/holds":
209     $ref: "./paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
210   /config/smtp_servers:
211     $ref: ./paths/config_smtp_servers.yaml#/~1config~1smtp_servers
212   "/config/smtp_servers/{smtp_server_id}":
213     $ref: "./paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
214   /erm/agreements:
215     $ref: ./paths/erm_agreements.yaml#/~1erm~1agreements
216   "/erm/agreements/{agreement_id}":
217     $ref: "./paths/erm_agreements.yaml#/~1erm~1agreements~1{agreement_id}"
218   "/erm/documents/{document_id}/file/content":
219     $ref: "./paths/erm_documents.yaml#/~1erm~1documents~1{document_id}~1file~1content"
220   "/erm/eholdings/{provider}/titles":
221     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles"
222   /erm/eholdings/local/titles/import:
223     $ref: ./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1local~1titles~1import
224   "/erm/eholdings/{provider}/titles/{title_id}":
225     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}"
226   "/erm/eholdings/{provider}/titles/{title_id}/resources":
227     $ref: "./paths/erm_eholdings_titles_resources.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}~1resources"
228   "/erm/eholdings/{provider}/packages":
229     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages"
230   "/erm/eholdings/{provider}/resources":
231     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources"
232   "/erm/eholdings/{provider}/resources/{resource_id}":
233     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources~1{resource_id}"
234   "/erm/eholdings/{provider}/packages/{package_id}":
235     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}"
236   "/erm/eholdings/{provider}/packages/{package_id}/resources":
237     $ref: "./paths/erm_eholdings_packages_resources.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}~1resources"
238   /erm/licenses:
239     $ref: ./paths/erm_licenses.yaml#/~1erm~1licenses
240   "/erm/licenses/{license_id}":
241     $ref: "./paths/erm_licenses.yaml#/~1erm~1licenses~1{license_id}"
242   /erm/users:
243     $ref: ./paths/erm_users.yaml#/~1erm~1users
244   /holds:
245     $ref: ./paths/holds.yaml#/~1holds
246   "/holds/{hold_id}":
247     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}"
248   "/holds/{hold_id}/pickup_location":
249     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
250   "/holds/{hold_id}/pickup_locations":
251     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
252   "/holds/{hold_id}/priority":
253     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1priority"
254   "/holds/{hold_id}/suspension":
255     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
256   /ill/backends:
257     $ref: ./paths/ill_backends.yaml#/~1ill~1backends
258   "/ill/backends/{ill_backend_id}":
259     $ref: "./paths/ill_backends.yaml#/~1ill~1backends~1{ill_backend_id}"
260   /ill/requests:
261     $ref: ./paths/ill_requests.yaml#/~1ill~1requests
262   "/import_batches/{import_batch_id}/records/{import_record_id}/matches/chosen":
263     $ref: "./paths/import_batches.yaml#/~1import_batches~1{import_batch_id}~1records~1{import_record_id}~1matches~1chosen"
264   /import_batch_profiles:
265     $ref: ./paths/import_batch_profiles.yaml#/~1import_batch_profiles
266   "/import_batch_profiles/{import_batch_profile_id}":
267     $ref: "./paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
268   /items:
269     $ref: ./paths/items.yaml#/~1items
270   "/items/{item_id}":
271     $ref: "./paths/items.yaml#/~1items~1{item_id}"
272   "/items/{item_id}/bundled_items":
273     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items
274   "/items/{item_id}/bundled_items/{bundled_item_id}":
275     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items~1{bundled_item_id}
276   "/items/{item_id}/pickup_locations":
277     $ref: "./paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
278   /jobs:
279     $ref: ./paths/jobs.yaml#/~1jobs
280   "/jobs/{job_id}":
281     $ref: "./paths/jobs.yaml#/~1jobs~1{job_id}"
282   /libraries:
283     $ref: ./paths/libraries.yaml#/~1libraries
284   "/libraries/{library_id}":
285     $ref: "./paths/libraries.yaml#/~1libraries~1{library_id}"
286   "/oauth/login/{provider_code}/{interface}":
287     $ref: ./paths/oauth.yaml#/~1oauth~1login~1{provider_code}~1{interface}
288   /oauth/token:
289     $ref: ./paths/oauth.yaml#/~1oauth~1token
290   /patrons:
291     $ref: ./paths/patrons.yaml#/~1patrons
292   "/patrons/{patron_id}":
293     $ref: "./paths/patrons.yaml#/~1patrons~1{patron_id}"
294   "/patrons/{patron_id}/account":
295     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
296   "/patrons/{patron_id}/account/credits":
297     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
298   "/patrons/{patron_id}/account/debits":
299     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1debits"
300   "/patrons/{patron_id}/extended_attributes":
301     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
302   "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
303     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
304   "/patrons/{patron_id}/holds":
305     $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
306   "/patrons/{patron_id}/password":
307     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
308   "/patrons/{patron_id}/password/expiration_date":
309     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date"
310   "/public/biblios/{biblio_id}":
311     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
312   "/public/items":
313     $ref: "./paths/items.yaml#/~1public~1items"
314   "/public/biblios/{biblio_id}/items":
315     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
316   "/public/biblios/{biblio_id}/ratings":
317     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1ratings"
318   /public/libraries:
319     $ref: ./paths/libraries.yaml#/~1public~1libraries
320   "/public/libraries/{library_id}":
321     $ref: "./paths/libraries.yaml#/~1public~1libraries~1{library_id}"
322   "/public/oauth/login/{provider_code}/{interface}":
323     $ref: ./paths/public_oauth.yaml#/~1public~1oauth~1login~1{provider_code}~1{interface}
324   "/public/patrons/{patron_id}/article_requests/{article_request_id}":
325     $ref: "./paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
326   "/public/patrons/{patron_id}/guarantors/can_see_charges":
327     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
328   "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
329     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
330   "/public/patrons/{patron_id}/password":
331     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
332   "/public/tickets":
333     $ref: "./paths/tickets.yaml#/~1public~1tickets"
334   /quotes:
335     $ref: ./paths/quotes.yaml#/~1quotes
336   "/quotes/{quote_id}":
337     $ref: "./paths/quotes.yaml#/~1quotes~1{quote_id}"
338   /return_claims:
339     $ref: ./paths/return_claims.yaml#/~1return_claims
340   "/return_claims/{claim_id}":
341     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}"
342   "/return_claims/{claim_id}/notes":
343     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
344   "/return_claims/{claim_id}/resolve":
345     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
346   "/rotas/{rota_id}/stages/{stage_id}/position":
347     $ref: "./paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
348   /suggestions:
349     $ref: ./paths/suggestions.yaml#/~1suggestions
350   "/suggestions/{suggestion_id}":
351     $ref: "./paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
352   /suggestions/managers:
353     $ref: paths/suggestions.yaml#/~1suggestions~1managers
354   "/tickets":
355     $ref: "./paths/tickets.yaml#/~1tickets"
356   "/tickets/{ticket_id}":
357     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}"
358   "/tickets/{ticket_id}/updates":
359     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}~1updates"
360   /transfer_limits:
361     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits
362   /transfer_limits/batch:
363     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits~1batch
364   "/transfer_limits/{limit_id}":
365     $ref: "./paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
366 parameters:
367   advancededitormacro_id_pp:
368     description: Advanced editor macro internal identifier
369     in: path
370     name: advancededitormacro_id
371     required: true
372     type: integer
373   agreement_id_pp:
374     description: Agreement internal identifier
375     in: path
376     name: agreement_id
377     required: true
378     type: integer
379   agreement_period_id_pp:
380     description: Agreement period internal identifier
381     in: path
382     name: agreement_period_id
383     required: true
384     type: integer
385   authorised_value_id_pp:
386     description: Authorised value internal identifier
387     in: path
388     name: authorised_value_id
389     required: true
390     type: integer
391   authority_id_pp:
392     description: Authority identifier
393     in: path
394     name: authority_id
395     required: true
396     type: integer
397   authority_type_header:
398     description: Authority type code. Use when content type is not application/json
399     name: x-authority-type
400     in: header
401     required: false
402     type: string
403   framework_id_header:
404     description: Framework id. Use when content type is not application/json
405     name: x-framework-id
406     in: header
407     required: false
408     type: string
409   marc_schema_header:
410     description: March schema. One of MARC21 or UNIMARC
411     name: x-record-schema
412     in: header
413     required: false
414     type: string
415     enum:
416       - MARC21
417       - UNIMARC
418   confirm_not_duplicate_header:
419     description: Confirm the posted element is not a duplicate
420     name: x-confirm-not-duplicate
421     in: header
422     required: false
423     type: integer
424   identity_provider_id_pp:
425     description: Identity provider internal identifier
426     in: path
427     name: identity_provider_id
428     required: true
429     type: integer
430   identity_provider_domain_id_pp:
431     description: Identity provider domain internal identifier
432     in: path
433     name: identity_provider_domain_id
434     required: true
435     type: integer
436   biblio_id_pp:
437     description: Record internal identifier
438     in: path
439     name: biblio_id
440     required: true
441     type: integer
442   candidate_match_id_pp:
443     description: Internal import record match identifier
444     in: path
445     name: candidate_match_id
446     required: true
447     type: integer
448   cash_register_id_pp:
449     description: Cash register internal identifier
450     in: path
451     name: cash_register_id
452     required: true
453     type: integer
454   cashup_id_pp:
455     description: Cashup internal identifier
456     in: path
457     name: cashup_id
458     required: true
459     type: integer
460   checkout_id_pp:
461     description: Internal checkout identifier
462     in: path
463     name: checkout_id
464     required: true
465     type: integer
466   city_id_pp:
467     description: City internal identifier
468     in: path
469     name: city_id
470     required: true
471     type: integer
472   club_id_pp:
473     description: Internal club identifier
474     in: path
475     name: club_id
476     required: true
477     type: integer
478   eholdings_title_id_pp:
479     description: Title internal identifier
480     in: path
481     name: title_id
482     required: true
483     type: integer
484   eholdings_package_id_pp:
485     description: Package internal identifier
486     in: path
487     name: package_id
488     required: true
489     type: string
490   eholdings_resource_id_pp:
491     description: Resource internal identifier
492     in: path
493     name: resource_id
494     required: true
495     type: string
496   fund_id_pp:
497     description: Fund id
498     in: path
499     name: fund_id
500     required: true
501     type: integer
502   hold_id_pp:
503     description: Internal hold identifier
504     in: path
505     name: hold_id
506     required: true
507     type: integer
508   import_batch_profile_id_pp:
509     description: Internal profile identifier
510     in: path
511     name: import_batch_profile_id
512     required: true
513     type: integer
514   import_record_id_pp:
515     description: Internal import record identifier
516     in: path
517     name: import_record_id
518     required: true
519     type: integer
520   item_id_pp:
521     description: Internal item identifier
522     in: path
523     name: item_id
524     required: true
525     type: integer
526   item_id_qp:
527     description: Internal item identifier
528     in: query
529     name: item_id
530     type: integer
531   job_id_pp:
532     description: Job internal identifier
533     in: path
534     name: job_id
535     required: true
536     type: integer
537   library_id_pp:
538     description: Internal library identifier
539     in: path
540     name: library_id
541     required: true
542     type: string
543   license_id_pp:
544     description: License internal identifier
545     in: path
546     name: license_id
547     required: true
548     type: integer
549   match:
550     description: Matching criteria
551     enum:
552       - contains
553       - exact
554       - starts_with
555       - ends_with
556     in: query
557     name: _match
558     required: false
559     type: string
560   order_by:
561     collectionFormat: csv
562     description: Sorting criteria
563     in: query
564     items:
565       type: string
566     name: _order_by
567     required: false
568     type: array
569   order_id_pp:
570     description: Internal order identifier
571     in: path
572     name: order_id
573     required: true
574     type: integer
575   page:
576     description: "Page number, for paginated object listing"
577     in: query
578     name: _page
579     required: false
580     type: integer
581   patron_id_pp:
582     description: Internal patron identifier
583     in: path
584     name: patron_id
585     required: true
586     type: integer
587   patron_id_qp:
588     description: Internal patron identifier
589     in: query
590     name: patron_id
591     type: integer
592   per_page:
593     description: "Page size, for paginated object listing"
594     in: query
595     name: _per_page
596     required: false
597     type: integer
598   q_body:
599     description: Query filter sent through request"s body
600     in: body
601     name: query
602     required: false
603     schema:
604       type: object
605   q_param:
606     description: Query filter sent as a request parameter
607     in: query
608     name: q
609     required: false
610     type: array
611     items:
612       type: string
613     collectionFormat: multi
614   quote_id_pp:
615     description: Quote internal identifier
616     in: path
617     name: quote_id
618     required: true
619     type: integer
620   request_id_header:
621     description: Request id header
622     in: header
623     name: x-koha-request-id
624     required: false
625     type: integer
626   search_filter_id_pp:
627     name: search_filter_id
628     in: path
629     description: Search filter internal identifier
630     required: true
631     type: integer
632   seen_pp:
633     description: Item was seen flag
634     in: query
635     name: seen
636     required: false
637     type: integer
638   smtp_server_id_pp:
639     description: SMTP server internal identifier
640     in: path
641     name: smtp_server_id
642     required: true
643     type: integer
644   suggestion_id_pp:
645     description: Internal suggestion identifier
646     in: path
647     name: suggestion_id
648     required: true
649     type: integer
650   ticket_id_pp:
651     description: Internal ticket identifier
652     in: path
653     name: ticket_id
654     required: true
655     type: integer
656   transfer_limit_id_pp:
657     description: Internal transfer limit identifier
658     in: path
659     name: limit_id
660     required: true
661     type: string
662   vendor_id_pp:
663     description: Vendor id
664     in: path
665     name: vendor_id
666     required: true
667     type: integer
668 info:
669   title: Koha REST API
670   version: "1"
671   license:
672     name: "GPL v3,"
673     url: http://www.gnu.org/licenses/gpl.txt
674   contact:
675     name: Koha Development Team
676     url: https://koha-community.org/
677   description: |
678     ## Introduction
679
680     This API is documented in **OpenAPI format**.
681
682     ## Authentication
683
684     The API supports the following authentication mechanisms
685
686     * HTTP Basic authentication
687     * OAuth2 (client credentials grant)
688     * Cookie-based
689
690     Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
691     by system preferences.
692
693     ## Errors
694
695     The API uses standard HTTP status codes to indicate the success or failure
696     of the API call. The body of the response will be JSON in the following format:
697
698     ```
699     {
700       "error": "Current settings prevent the passed due date to be applied",
701       "error_code": "invalid_due_date"
702     }
703     ```
704
705     Note: Some routes might offer additional attributes in their error responses but that"s
706     subject to change and thus not documented.
707
708     ## Filtering responses
709
710     The API allows for some advanced response filtering using a JSON based query syntax. The
711     query can be added to the requests:
712
713     * as a query parameter `q=`
714     * in the request body
715
716     For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
717     matches one of the fields as described in the particular endpoints response object.
718
719     We can refine that with more complex matching clauses by nesting a the clause into the
720     object; `{ "fieldname": { "clause": "value" } }`.
721
722     Available matching clauses include ">", "<", ">=", "<=", "-like", and "-not_like".
723
724     We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
725     level will result in an "AND" query, whilst combinding them in an `ARRAY` wilth result in an
726     "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
727     results with both field1 containing value2 AND field2 containing value2 for example.
728
729     Additionally, if you are requesting related data be embedded into the response one can query
730     on the related data using dot notation in the field names.
731
732     ### Examples
733
734     The following request would return any patron with firstname "Henry" and lastname "Acevedo";
735
736     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": "Acevedo", "firstname": "Henry" }"`
737
738     The following request would return any patron whose lastname begins with "Ace";
739
740     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": { "-like": "Ace%" }"`
741
742     The following request would return any patron whose lastname is "Acevedo" OR "Bernardo"
743
744     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw "{ "surname": [ "Acevedo", "Bernardo" ] }"`
745
746     The following request embeds the related patron extended attributes data and filters on it.
747
748     `curl -u koha:koha =--request GET 'http://127.0.0.1:8081/api/v1/patrons/' --header 'x-koha-embed: extended_attributes' --data-raw '{ "extended_attributes.code": "internet", "extended_attributes.attribute": "1" }'`
749
750     ## Special headers
751
752     ### x-koha-embed
753
754     This optional header allows the api consumer to request additional related data
755     to be returned in the api response.  It also allows for cross referencing in the
756     queries as described above. It accepts a comma delimited list of relation names.
757
758     Relations may on occasion also support dot delimited nesting to allow traversal.
759
760     ### x-koha-library
761
762     This optional header should be passed to give your api request a library
763     context; If it is not included in the request, then the request context
764     will default to using your api comsumer"s assigned home library.
765 tags:
766   - description: "Handle two factor authentication flows\n"
767     name: 2fa
768     x-displayName: Two factor authentication
769   - description: "Manage article requests\n"
770     name: article_requests
771     x-displayName: Article requests
772   - description: "Manage identity providers\n"
773     name: identity_providers
774     x-displayName: Identity providers
775   - description: "Manage baskets for the acquisitions module\n"
776     name: baskets
777     x-displayName: Baskets
778   - description: "Manage Authority records\n"
779     name: authorities
780     x-displayName: Authorities
781   - description: "Manage bibliographic records\n"
782     name: biblios
783     x-displayName: Biblios
784   - description: "Manage cash register cashups\n"
785     name: cashups
786     x-displayName: Cashups
787   - description: "Manage checkouts\n"
788     name: checkouts
789     x-displayName: Checkouts
790   - description: "Manage circulation rules\n"
791     name: circulation_rules
792     x-displayName: Circulation rules
793   - description: "Manage cities\n"
794     name: cities
795     x-displayName: Cities
796   - description: "Manage patron clubs\n"
797     name: clubs
798     x-displayName: Clubs
799   - description: "Manage funds for the acquisitions module\n"
800     name: funds
801     x-displayName: Funds
802   - description: "Manage holds\n"
803     name: holds
804     x-displayName: Holds
805   - description: "Manage ILL module backends\n"
806     name: ill_backends
807     x-displayName: ILL backends
808   - description: "Manage ILL requests\n"
809     name: ill_requests
810     x-displayName: ILL requests
811   - description: "Manage import batches\n"
812     name: import_batches
813     x-display-name: Import batches
814   - description: "Manage item groups\n"
815     name: item_groups
816     x-displayName: Item groups
817   - description: "Manage items\n"
818     name: items
819     x-displayName: Items
820   - description: "Manage jobs\n"
821     name: jobs
822     x-displayName: Jobs
823   - description: "Manage libraries\n"
824     name: libraries
825     x-displayName: Libraries
826   - description: "Manage macros\n"
827     name: macros
828     x-displayName: Macros
829   - description: "Manage acquisition orders\n"
830     name: orders
831     x-displayName: Orders
832   - description: "Handle OAuth flows\n"
833     name: oauth
834     x-displayName: OAuth
835   - description: "Manage patrons\n"
836     name: patrons
837     x-displayName: Patrons
838   - description: "Manage quotes\n"
839     name: quotes
840     x-displayName: Quotes
841   - description: "Manage return claims\n"
842     name: return_claims
843     x-displayName: Return claims
844   - description: "Manage rotas\n"
845     name: rotas
846     x-displayName: Rotas
847   - description: "Manage SMTP servers configurations\n"
848     name: smtp_servers
849     x-displayName: SMTP servers
850   - description: "Manage transfer limits\n"
851     name: transfer
852     x-displayName: Transfer limits
853   - description: "Manage purchase suggestions\n"
854     name: suggestions
855     x-displayName: Purchase suggestions
856   - description: "Manage vendors for the acquisitions module\n"
857     name: vendors
858     x-displayName: Vendors
859   - description: "Manage batch import profiles\n"
860     name: batch_import_profiles
861     x-displayName: Batch import profiles