Bug 34587: Add default report capability to reports viewer
[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   checkout_availability:
30     $ref: ./definitions/checkout_availability.yaml
31   circ-rule-kind:
32     $ref: ./definitions/circ-rule-kind.yaml
33   city:
34     $ref: ./definitions/city.yaml
35   credit:
36     $ref: ./definitions/credit.yaml
37   debit:
38     $ref: ./definitions/debit.yaml
39   erm_config:
40     $ref: ./definitions/erm_config.yaml
41   erm_agreement:
42     $ref: ./definitions/erm_agreement.yaml
43   erm_counter_file:
44     $ref: ./definitions/erm_counter_file.yaml
45   erm_counter_log:
46     $ref: ./definitions/erm_counter_log.yaml
47   erm_default_usage_report:
48     $ref: ./definitions/erm_default_usage_report.yaml
49   erm_eholdings_title:
50     $ref: ./definitions/erm_eholdings_title.yaml
51   erm_eholdings_package:
52     $ref: ./definitions/erm_eholdings_package.yaml
53   erm_eholdings_resource:
54     $ref: ./definitions/erm_eholdings_resource.yaml
55   erm_license:
56     $ref: ./definitions/erm_license.yaml
57   erm_usage_data_provider:
58     $ref: ./definitions/erm_usage_data_provider.yaml
59   erm_usage_mus:
60     $ref: ./definitions/erm_usage_mus.yaml
61   erm_usage_title:
62     $ref: ./definitions/erm_usage_title.yaml
63   erm_usage_yus:
64     $ref: ./definitions/erm_usage_yus.yaml
65   error:
66     $ref: ./definitions/error.yaml
67   fund:
68     $ref: ./definitions/fund.yaml
69   hold:
70     $ref: ./definitions/hold.yaml
71   holds:
72     $ref: ./definitions/holds.yaml
73   ill_backend:
74     $ref: ./definitions/ill_backend.yaml
75   ill_backends:
76     $ref: ./definitions/ill_backends.yaml
77   ill_status:
78     $ref: ./definitions/ill_status.yaml
79   ill_request:
80     $ref: ./definitions/ill_request.yaml
81   ill_batch:
82     $ref: ./definitions/ill_batch.yaml
83   ill_batches:
84     $ref: ./definitions/ill_batches.yaml
85   ill_batchstatus:
86     $ref: ./definitions/ill_batchstatus.yaml
87   ill_batchstatuses:
88     $ref: ./definitions/ill_batchstatuses.yaml
89   import_batch_profile:
90     $ref: ./definitions/import_batch_profile.yaml
91   import_batch_profiles:
92     $ref: ./definitions/import_batch_profiles.yaml
93   import_record_match:
94     $ref: ./definitions/import_record_match.yaml
95   invoice:
96     $ref: ./definitions/invoice.yaml
97   item:
98     $ref: ./definitions/item.yaml
99   item_group:
100     $ref: ./definitions/item_group.yaml
101   job:
102     $ref: ./definitions/job.yaml
103   library:
104     $ref: ./definitions/library.yaml
105   order:
106     $ref: ./definitions/order.yaml
107   patron:
108     $ref: ./definitions/patron.yaml
109   patron_account_credit:
110     $ref: ./definitions/patron_account_credit.yaml
111   patron_balance:
112     $ref: ./definitions/patron_balance.yaml
113   patron_extended_attribute:
114     $ref: ./definitions/patron_extended_attribute.yaml
115   preservation_config:
116     $ref: ./definitions/preservation_config.yaml
117   preservation_train:
118     $ref: ./definitions/preservation_train.yaml
119   preservation_train_item:
120     $ref: ./definitions/preservation_train_item.yaml
121   preservation_processing:
122     $ref: ./definitions/preservation_processing.yaml
123   quote:
124     $ref: ./definitions/quote.yaml
125   renewal:
126     $ref: ./definitions/renewal.yaml
127   renewals:
128     $ref: ./definitions/renewals.yaml
129   return_claim:
130     $ref: ./definitions/return_claim.yaml
131   search_filter:
132     $ref: ./definitions/search_filter.yaml
133   smtp_server:
134     $ref: ./definitions/smtp_server.yaml
135   suggestion:
136     $ref: ./definitions/suggestion.yaml
137   ticket:
138     $ref: ./definitions/ticket.yaml
139   ticket_update:
140     $ref: ./definitions/ticket_update.yaml
141   transfer_limit:
142     $ref: ./definitions/transfer_limit.yaml
143   vendor:
144     $ref: ./definitions/vendor.yaml
145   vendor_issue:
146     $ref: ./definitions/vendor_issue.yaml
147 paths:
148   /acquisitions/baskets/managers:
149     $ref: paths/acquisitions_baskets.yaml#/~1acquisitions~1baskets~1managers
150   /acquisitions/funds:
151     $ref: ./paths/acquisitions_funds.yaml#/~1acquisitions~1funds
152   /acquisitions/funds/owners:
153     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1owners
154   /acquisitions/funds/users:
155     $ref: paths/acquisitions_funds.yaml#/~1acquisitions~1funds~1users
156   /acquisitions/orders:
157     $ref: ./paths/acquisitions_orders.yaml#/~1acquisitions~1orders
158   "/acquisitions/orders/{order_id}":
159     $ref: "./paths/acquisitions_orders.yaml#/~1acquisitions~1orders~1{order_id}"
160   /acquisitions/vendors:
161     $ref: ./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors
162   "/acquisitions/vendors/{vendor_id}":
163     $ref: "./paths/acquisitions_vendors.yaml#/~1acquisitions~1vendors~1{vendor_id}"
164   "/acquisitions/vendors/{vendor_id}/issues":
165     $ref: "./paths/acquisitions_vendor_issues.yaml#/~1acquisitions~1vendors~1{vendor_id}~1issues"
166   /advanced_editor/macros:
167     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros
168   /advanced_editor/macros/shared:
169     $ref: ./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared
170   /search_filters:
171     $ref: ./paths/search_filters.yaml#/~1search_filters
172   "/search_filters/{search_filter_id}":
173     $ref: "./paths/search_filters.yaml#/~1search_filters~1{search_filter_id}"
174   "/advanced_editor/macros/shared/{advancededitormacro_id}":
175     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1shared~1{advancededitormacro_id}"
176   "/advanced_editor/macros/{advancededitormacro_id}":
177     $ref: "./paths/advancededitormacros.yaml#/~1advanced_editor~1macros~1{advancededitormacro_id}"
178   "/article_requests/{article_request_id}":
179     $ref: "./paths/article_requests.yaml#/~1article_requests~1{article_request_id}"
180   /auth/otp/token_delivery:
181     $ref: paths/auth.yaml#/~1auth~1otp~1token_delivery
182   "/auth/password/validation":
183     $ref: "./paths/auth.yaml#/~1auth~1password~1validation"
184   /auth/two-factor/registration:
185     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration
186   /auth/two-factor/registration/verification:
187     $ref: paths/auth.yaml#/~1auth~1two-factor~1registration~1verification
188   /auth/identity_providers:
189     $ref: paths/auth.yaml#/~1auth~1identity_providers
190   "/auth/identity_providers/{identity_provider_id}":
191     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}
192   "/auth/identity_providers/{identity_provider_id}/domains":
193     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains
194   "/auth/identity_providers/{identity_provider_id}/domains/{identity_provider_domain_id}":
195     $ref: paths/auth.yaml#/~1auth~1identity_providers~1{identity_provider_id}~1domains~1{identity_provider_domain_id}
196   /authorised_value_categories:
197     $ref: paths/authorised_value_categories.yaml#/~1authorised_value_categories
198   "/authorised_value_categories/{authorised_value_category_name}/authorised_values":
199     $ref: "./paths/authorised_values.yaml#/~1authorised_value_categories~1{authorised_value_category_name}~1authorised_values"
200   "/authorities":
201     $ref: paths/authorities.yaml#/~1authorities
202   "/authorities/{authority_id}":
203     $ref: paths/authorities.yaml#/~1authorities~1{authority_id}
204   "/biblios":
205     $ref: "./paths/biblios.yaml#/~1biblios"
206   "/biblios/{biblio_id}":
207     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}"
208   "/biblios/{biblio_id}/checkouts":
209     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1checkouts"
210   "/biblios/{biblio_id}/items":
211     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items"
212   "/biblios/{biblio_id}/items/{item_id}":
213     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1items~1{item_id}"
214   "/biblios/{biblio_id}/pickup_locations":
215     $ref: "./paths/biblios.yaml#/~1biblios~1{biblio_id}~1pickup_locations"
216   "/biblios/{biblio_id}/item_groups":
217     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups"
218   "/biblios/{biblio_id}/item_groups/{item_group_id}":
219     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}"
220   "/biblios/{biblio_id}/item_groups/{item_group_id}/items":
221     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items"
222   "/biblios/{biblio_id}/item_groups/{item_group_id}/items/{item_id}":
223     $ref: "./paths/biblios_item_groups.yaml#/~1biblios~1{biblio_id}~1item_groups~1{item_group_id}~1items~1{item_id}"
224   "/cash_registers/{cash_register_id}/cashups":
225     $ref: "./paths/cash_registers.yaml#/~1cash_registers~1{cash_register_id}~1cashups"
226   "/cashups/{cashup_id}":
227     $ref: "./paths/cash_registers.yaml#/~1cashups~1{cashup_id}"
228   /checkouts:
229     $ref: ./paths/checkouts.yaml#/~1checkouts
230   "/checkouts/{checkout_id}":
231     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}"
232   "/checkouts/{checkout_id}/allows_renewal":
233     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1allows_renewal"
234   "/checkouts/{checkout_id}/renewals":
235     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewals"
236   "/checkouts/{checkout_id}/renewal":
237     $ref: "./paths/checkouts.yaml#/~1checkouts~1{checkout_id}~1renewal"
238   "/checkouts/availability":
239     $ref: "./paths/checkouts.yaml#/~1checkouts~1availability"
240   /circulation-rules/kinds:
241     $ref: ./paths/circulation-rules.yaml#/~1circulation-rules~1kinds
242   /cities:
243     $ref: ./paths/cities.yaml#/~1cities
244   "/cities/{city_id}":
245     $ref: "./paths/cities.yaml#/~1cities~1{city_id}"
246   "/clubs/{club_id}/holds":
247     $ref: "./paths/clubs.yaml#/~1clubs~1{club_id}~1holds"
248   /config/smtp_servers:
249     $ref: ./paths/config_smtp_servers.yaml#/~1config~1smtp_servers
250   "/config/smtp_servers/{smtp_server_id}":
251     $ref: "./paths/config_smtp_servers.yaml#/~1config~1smtp_servers~1{smtp_server_id}"
252   /erm/config:
253     $ref: ./paths/erm_config.yaml#/~1erm~1config
254   /erm/agreements:
255     $ref: ./paths/erm_agreements.yaml#/~1erm~1agreements
256   "/erm/agreements/{agreement_id}":
257     $ref: "./paths/erm_agreements.yaml#/~1erm~1agreements~1{agreement_id}"
258   "/erm/documents/{document_id}/file/content":
259     $ref: "./paths/erm_documents.yaml#/~1erm~1documents~1{document_id}~1file~1content"
260   /erm/counter_files:
261     $ref: ./paths/erm_counter_files.yaml#/~1erm~1counter_files
262   "/erm/counter_files/{erm_counter_files_id}":
263     $ref: "./paths/erm_counter_files.yaml#/~1erm~1counter_files~1{erm_counter_files_id}"
264   "/erm/counter_files/{erm_counter_files_id}/file/content":
265     $ref: "./paths/erm_counter_files.yaml#/~1erm~1counter_files~1{erm_counter_files_id}~1file~1content"
266   /erm/default_usage_reports:
267     $ref: ./paths/erm_default_usage_reports.yaml#/~1erm~1default_usage_reports
268   "/erm/default_usage_reports/{erm_default_usage_report_id}":
269     $ref: "./paths/erm_default_usage_reports.yaml#/~1erm~1default_usage_reports~1{erm_default_usage_report_id}"
270   "/erm/eholdings/{provider}/titles":
271     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles"
272   /erm/eholdings/local/titles/import:
273     $ref: ./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1local~1titles~1import
274   "/erm/eholdings/{provider}/titles/{title_id}":
275     $ref: "./paths/erm_eholdings_titles.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}"
276   "/erm/eholdings/{provider}/titles/{title_id}/resources":
277     $ref: "./paths/erm_eholdings_titles_resources.yaml#/~1erm~1eholdings~1{provider}~1titles~1{title_id}~1resources"
278   "/erm/eholdings/{provider}/packages":
279     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages"
280   "/erm/eholdings/{provider}/resources":
281     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources"
282   "/erm/eholdings/{provider}/resources/{resource_id}":
283     $ref: "./paths/erm_eholdings_resources.yaml#/~1erm~1eholdings~1{provider}~1resources~1{resource_id}"
284   "/erm/eholdings/{provider}/packages/{package_id}":
285     $ref: "./paths/erm_eholdings_packages.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}"
286   "/erm/eholdings/{provider}/packages/{package_id}/resources":
287     $ref: "./paths/erm_eholdings_packages_resources.yaml#/~1erm~1eholdings~1{provider}~1packages~1{package_id}~1resources"
288   /erm/licenses:
289     $ref: ./paths/erm_licenses.yaml#/~1erm~1licenses
290   "/erm/licenses/{license_id}":
291     $ref: "./paths/erm_licenses.yaml#/~1erm~1licenses~1{license_id}"
292   /erm/usage_data_providers:
293     $ref: ./paths/erm_usage_data_providers.yaml#/~1erm~1usage_data_providers
294   "/erm/usage_data_providers/{erm_usage_data_provider_id}":
295     $ref: "./paths/erm_usage_data_providers.yaml#/~1erm~1usage_data_providers~1{erm_usage_data_provider_id}"
296   "/erm/usage_data_providers/{erm_usage_data_provider_id}/run":
297     $ref: "./paths/erm_usage_data_providers.yaml#/~1erm~1usage_data_providers~1{erm_usage_data_provider_id}~1run"
298   "/erm/usage_data_providers/{erm_usage_data_provider_id}/test_connection":
299     $ref: "./paths/erm_usage_data_providers.yaml#/~1erm~1usage_data_providers~1{erm_usage_data_provider_id}~1test_connection"
300   /erm/usage_titles:
301     $ref: ./paths/erm_usage_titles.yaml#/~1erm~1usage_titles
302   /erm/users:
303     $ref: ./paths/erm_users.yaml#/~1erm~1users
304   /holds:
305     $ref: ./paths/holds.yaml#/~1holds
306   "/holds/{hold_id}":
307     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}"
308   "/holds/{hold_id}/pickup_location":
309     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_location"
310   "/holds/{hold_id}/pickup_locations":
311     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1pickup_locations"
312   "/holds/{hold_id}/priority":
313     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1priority"
314   "/holds/{hold_id}/suspension":
315     $ref: "./paths/holds.yaml#/~1holds~1{hold_id}~1suspension"
316   /ill/backends:
317     $ref: ./paths/ill_backends.yaml#/~1ill~1backends
318   "/ill/backends/{ill_backend_id}":
319     $ref: "./paths/ill_backends.yaml#/~1ill~1backends~1{ill_backend_id}"
320   /ill/requests:
321     $ref: ./paths/ill_requests.yaml#/~1ill~1requests
322   /ill/batches:
323     $ref: ./paths/ill_batches.yaml#/~1ill~1batches
324   "/ill/batches/{ill_batch_id}":
325     $ref: "./paths/ill_batches.yaml#/~1ill~1batches~1{ill_batch_id}"
326   /ill/batchstatuses:
327     $ref: ./paths/ill_batchstatuses.yaml#/~1ill~1batchstatuses
328   "/ill/batchstatuses/{ill_batchstatus_code}":
329     $ref: "./paths/ill_batchstatuses.yaml#/~1ill~1batchstatuses~1{ill_batchstatus_code}"
330   "/import_batches/{import_batch_id}/records/{import_record_id}/matches/chosen":
331     $ref: "./paths/import_batches.yaml#/~1import_batches~1{import_batch_id}~1records~1{import_record_id}~1matches~1chosen"
332   /import_batch_profiles:
333     $ref: ./paths/import_batch_profiles.yaml#/~1import_batch_profiles
334   "/import_batch_profiles/{import_batch_profile_id}":
335     $ref: "./paths/import_batch_profiles.yaml#/~1import_batch_profiles~1{import_batch_profile_id}"
336   /items:
337     $ref: ./paths/items.yaml#/~1items
338   "/items/{item_id}":
339     $ref: "./paths/items.yaml#/~1items~1{item_id}"
340   "/items/{item_id}/bundled_items":
341     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items
342   "/items/{item_id}/bundled_items/{bundled_item_id}":
343     $ref: ./paths/items.yaml#/~1items~1{item_id}~1bundled_items~1{bundled_item_id}
344   "/items/{item_id}/pickup_locations":
345     $ref: "./paths/items.yaml#/~1items~1{item_id}~1pickup_locations"
346   /jobs:
347     $ref: ./paths/jobs.yaml#/~1jobs
348   "/jobs/{job_id}":
349     $ref: "./paths/jobs.yaml#/~1jobs~1{job_id}"
350   /libraries:
351     $ref: ./paths/libraries.yaml#/~1libraries
352   "/libraries/{library_id}":
353     $ref: "./paths/libraries.yaml#/~1libraries~1{library_id}"
354   "/oauth/login/{provider_code}/{interface}":
355     $ref: ./paths/oauth.yaml#/~1oauth~1login~1{provider_code}~1{interface}
356   /oauth/token:
357     $ref: ./paths/oauth.yaml#/~1oauth~1token
358   /patrons:
359     $ref: ./paths/patrons.yaml#/~1patrons
360   "/patrons/{patron_id}":
361     $ref: "./paths/patrons.yaml#/~1patrons~1{patron_id}"
362   "/patrons/{patron_id}/account":
363     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account"
364   "/patrons/{patron_id}/account/credits":
365     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1credits"
366   "/patrons/{patron_id}/account/debits":
367     $ref: "./paths/patrons_account.yaml#/~1patrons~1{patron_id}~1account~1debits"
368   "/patrons/{patron_id}/extended_attributes":
369     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes"
370   "/patrons/{patron_id}/extended_attributes/{extended_attribute_id}":
371     $ref: "./paths/patrons_extended_attributes.yaml#/~1patrons~1{patron_id}~1extended_attributes~1{extended_attribute_id}"
372   "/patrons/{patron_id}/holds":
373     $ref: "./paths/patrons_holds.yaml#/~1patrons~1{patron_id}~1holds"
374   "/patrons/{patron_id}/password":
375     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password"
376   "/patrons/{patron_id}/password/expiration_date":
377     $ref: "./paths/patrons_password.yaml#/~1patrons~1{patron_id}~1password~1expiration_date"
378   /preservation/config:
379     $ref: ./paths/preservation_config.yaml#/~1preservation~1config
380   /preservation/trains:
381     $ref: ./paths/preservation_trains.yaml#/~1preservation~1trains
382   "/preservation/trains/{train_id}":
383     $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}"
384   "/preservation/trains/{train_id}/items":
385     $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}~1items"
386   "/preservation/trains/{train_id}/items/batch":
387     $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}~1items~1batch"
388   "/preservation/trains/{train_id}/items/{train_item_id}":
389     $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}~1items~1{train_item_id}"
390   "/preservation/trains/{train_id}/items/{train_item_id}/copy":
391     $ref: "./paths/preservation_trains.yaml#/~1preservation~1trains~1{train_id}~1items~1{train_item_id}~1copy"
392   /preservation/processings:
393     $ref: ./paths/preservation_processings.yaml#/~1preservation~1processings
394   "/preservation/processings/{processing_id}":
395     $ref: "./paths/preservation_processings.yaml#/~1preservation~1processings~1{processing_id}"
396   /preservation/waiting-list/items:
397     $ref: ./paths/preservation_waiting_list.yaml#/~1preservation~1waiting-list~1items
398   "/preservation/waiting-list/items/{item_id}":
399     $ref: "./paths/preservation_waiting_list.yaml#/~1preservation~1waiting-list~1items~1{item_id}"
400   "/public/biblios/{biblio_id}":
401     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}"
402   "/public/checkouts/availability":
403     $ref: ./paths/checkouts.yaml#/~1public~1checkouts~1availability
404   "/public/items":
405     $ref: "./paths/items.yaml#/~1public~1items"
406   "/public/biblios/{biblio_id}/items":
407     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1items"
408   "/public/biblios/{biblio_id}/ratings":
409     $ref: "./paths/biblios.yaml#/~1public~1biblios~1{biblio_id}~1ratings"
410   /public/libraries:
411     $ref: ./paths/libraries.yaml#/~1public~1libraries
412   "/public/libraries/{library_id}":
413     $ref: "./paths/libraries.yaml#/~1public~1libraries~1{library_id}"
414   "/public/oauth/login/{provider_code}/{interface}":
415     $ref: ./paths/public_oauth.yaml#/~1public~1oauth~1login~1{provider_code}~1{interface}
416   "/public/patrons/{patron_id}/article_requests/{article_request_id}":
417     $ref: "./paths/article_requests.yaml#/~1public~1patrons~1{patron_id}~1article_requests~1{article_request_id}"
418   "/public/patrons/{patron_id}/checkouts":
419     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1checkouts"
420   "/public/patrons/{patron_id}/guarantors/can_see_charges":
421     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_charges"
422   "/public/patrons/{patron_id}/guarantors/can_see_checkouts":
423     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1guarantors~1can_see_checkouts"
424   "/public/patrons/{patron_id}/holds/{hold_id}":
425     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1holds~1{hold_id}"
426   "/public/patrons/{patron_id}/password":
427     $ref: "./paths/public_patrons.yaml#/~1public~1patrons~1{patron_id}~1password"
428   "/public/tickets":
429     $ref: "./paths/tickets.yaml#/~1public~1tickets"
430   /quotes:
431     $ref: ./paths/quotes.yaml#/~1quotes
432   "/quotes/{quote_id}":
433     $ref: "./paths/quotes.yaml#/~1quotes~1{quote_id}"
434   /return_claims:
435     $ref: ./paths/return_claims.yaml#/~1return_claims
436   "/return_claims/{claim_id}":
437     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}"
438   "/return_claims/{claim_id}/notes":
439     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1notes"
440   "/return_claims/{claim_id}/resolve":
441     $ref: "./paths/return_claims.yaml#/~1return_claims~1{claim_id}~1resolve"
442   "/rotas/{rota_id}/stages/{stage_id}/position":
443     $ref: "./paths/rotas.yaml#/~1rotas~1{rota_id}~1stages~1{stage_id}~1position"
444   /suggestions:
445     $ref: ./paths/suggestions.yaml#/~1suggestions
446   "/suggestions/{suggestion_id}":
447     $ref: "./paths/suggestions.yaml#/~1suggestions~1{suggestion_id}"
448   /suggestions/managers:
449     $ref: paths/suggestions.yaml#/~1suggestions~1managers
450   "/tickets":
451     $ref: "./paths/tickets.yaml#/~1tickets"
452   "/tickets/{ticket_id}":
453     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}"
454   "/tickets/{ticket_id}/updates":
455     $ref: "./paths/tickets.yaml#/~1tickets~1{ticket_id}~1updates"
456   /transfer_limits:
457     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits
458   /transfer_limits/batch:
459     $ref: ./paths/transfer_limits.yaml#/~1transfer_limits~1batch
460   "/transfer_limits/{limit_id}":
461     $ref: "./paths/transfer_limits.yaml#/~1transfer_limits~1{limit_id}"
462 parameters:
463   advancededitormacro_id_pp:
464     description: Advanced editor macro internal identifier
465     in: path
466     name: advancededitormacro_id
467     required: true
468     type: integer
469   agreement_id_pp:
470     description: Agreement internal identifier
471     in: path
472     name: agreement_id
473     required: true
474     type: integer
475   agreement_period_id_pp:
476     description: Agreement period internal identifier
477     in: path
478     name: agreement_period_id
479     required: true
480     type: integer
481   authorised_value_id_pp:
482     description: Authorised value internal identifier
483     in: path
484     name: authorised_value_id
485     required: true
486     type: integer
487   authority_id_pp:
488     description: Authority identifier
489     in: path
490     name: authority_id
491     required: true
492     type: integer
493   authority_type_header:
494     description: Authority type code. Use when content type is not application/json
495     name: x-authority-type
496     in: header
497     required: false
498     type: string
499   framework_id_header:
500     description: Framework id. Use when content type is not application/json
501     name: x-framework-id
502     in: header
503     required: false
504     type: string
505   marc_schema_header:
506     description: March schema. One of MARC21 or UNIMARC
507     name: x-record-schema
508     in: header
509     required: false
510     type: string
511     enum:
512       - MARC21
513       - UNIMARC
514   confirm_not_duplicate_header:
515     description: Confirm the posted element is not a duplicate
516     name: x-confirm-not-duplicate
517     in: header
518     required: false
519     type: integer
520   identity_provider_id_pp:
521     description: Identity provider internal identifier
522     in: path
523     name: identity_provider_id
524     required: true
525     type: integer
526   identity_provider_domain_id_pp:
527     description: Identity provider domain internal identifier
528     in: path
529     name: identity_provider_domain_id
530     required: true
531     type: integer
532   biblio_id_pp:
533     description: Record internal identifier
534     in: path
535     name: biblio_id
536     required: true
537     type: integer
538   candidate_match_id_pp:
539     description: Internal import record match identifier
540     in: path
541     name: candidate_match_id
542     required: true
543     type: integer
544   cash_register_id_pp:
545     description: Cash register internal identifier
546     in: path
547     name: cash_register_id
548     required: true
549     type: integer
550   cashup_id_pp:
551     description: Cashup internal identifier
552     in: path
553     name: cashup_id
554     required: true
555     type: integer
556   checkout_id_pp:
557     description: Internal checkout identifier
558     in: path
559     name: checkout_id
560     required: true
561     type: integer
562   city_id_pp:
563     description: City internal identifier
564     in: path
565     name: city_id
566     required: true
567     type: integer
568   club_id_pp:
569     description: Internal club identifier
570     in: path
571     name: club_id
572     required: true
573     type: integer
574   eholdings_title_id_pp:
575     description: Title internal identifier
576     in: path
577     name: title_id
578     required: true
579     type: integer
580   eholdings_package_id_pp:
581     description: Package internal identifier
582     in: path
583     name: package_id
584     required: true
585     type: string
586   eholdings_resource_id_pp:
587     description: Resource internal identifier
588     in: path
589     name: resource_id
590     required: true
591     type: string
592   erm_counter_files_id_pp:
593     description: ERM counter_files internal identifier
594     in: path
595     name: erm_counter_files_id
596     required: true
597     type: integer
598   erm_counter_log_id_pp:
599     description: ERM counter_log internal identifier
600     in: path
601     name: erm_counter_log_id
602     required: true
603     type: integer
604   erm_default_usage_report_id_pp:
605     description: ERM default_usage_report internal identifier
606     in: path
607     name: erm_default_usage_report_id
608     required: true
609     type: integer
610   erm_usage_data_provider_id_pp:
611     description: ERM usage_data_provider internal identifier
612     in: path
613     name: erm_usage_data_provider_id
614     required: true
615     type: integer
616   data_type_pp:
617     description: ERM custom report data type
618     in: path
619     name: data_type
620     required: true
621     type: string
622   fund_id_pp:
623     description: Fund id
624     in: path
625     name: fund_id
626     required: true
627     type: integer
628   hold_id_pp:
629     description: Internal hold identifier
630     in: path
631     name: hold_id
632     required: true
633     type: integer
634   ill_batch_id_pp:
635     description: Internal ILL batch identifier
636     in: path
637     name: ill_batch_id
638     required: true
639     type: integer
640   ill_batchstatus_code_pp:
641     description: Internal ILL batch status identifier
642     in: path
643     name: ill_batchstatus_code
644     required: true
645     type: string
646   import_batch_profile_id_pp:
647     description: Internal profile identifier
648     in: path
649     name: import_batch_profile_id
650     required: true
651     type: integer
652   import_record_id_pp:
653     description: Internal import record identifier
654     in: path
655     name: import_record_id
656     required: true
657     type: integer
658   item_id_pp:
659     description: Internal item identifier
660     in: path
661     name: item_id
662     required: true
663     type: integer
664   item_id_qp:
665     description: Internal item identifier
666     in: query
667     name: item_id
668     type: integer
669   job_id_pp:
670     description: Job internal identifier
671     in: path
672     name: job_id
673     required: true
674     type: integer
675   library_id_pp:
676     description: Internal library identifier
677     in: path
678     name: library_id
679     required: true
680     type: string
681   license_id_pp:
682     description: License internal identifier
683     in: path
684     name: license_id
685     required: true
686     type: integer
687   match:
688     description: Matching criteria
689     enum:
690       - contains
691       - exact
692       - starts_with
693       - ends_with
694     in: query
695     name: _match
696     required: false
697     type: string
698   order_by:
699     collectionFormat: csv
700     description: Sorting criteria
701     in: query
702     items:
703       type: string
704     name: _order_by
705     required: false
706     type: array
707   order_id_pp:
708     description: Internal order identifier
709     in: path
710     name: order_id
711     required: true
712     type: integer
713   page:
714     description: "Page number, for paginated object listing"
715     in: query
716     name: _page
717     required: false
718     type: integer
719   patron_id_pp:
720     description: Internal patron identifier
721     in: path
722     name: patron_id
723     required: true
724     type: integer
725   patron_id_qp:
726     description: Internal patron identifier
727     in: query
728     name: patron_id
729     type: integer
730   per_page:
731     description: "Page size, for paginated object listing"
732     in: query
733     name: _per_page
734     required: false
735     type: integer
736   preservation_processing_id_pp:
737     description: processing internal identifier
738     in: path
739     name: processing_id
740     required: true
741     type: integer
742   preservation_train_id_pp:
743     description: train internal identifier
744     in: path
745     name: train_id
746     required: true
747     type: integer
748   preservation_train_item_id_pp:
749     description: train item internal identifier
750     in: path
751     name: train_item_id
752     required: true
753     type: integer
754   q_body:
755     description: Query filter sent through request"s body
756     in: body
757     name: query
758     required: false
759     schema:
760       type: object
761   q_param:
762     description: Query filter sent as a request parameter
763     in: query
764     name: q
765     required: false
766     type: array
767     items:
768       type: string
769     collectionFormat: multi
770   quote_id_pp:
771     description: Quote internal identifier
772     in: path
773     name: quote_id
774     required: true
775     type: integer
776   request_id_header:
777     description: Request id header
778     in: header
779     name: x-koha-request-id
780     required: false
781     type: integer
782   search_filter_id_pp:
783     name: search_filter_id
784     in: path
785     description: Search filter internal identifier
786     required: true
787     type: integer
788   seen_pp:
789     description: Item was seen flag
790     in: query
791     name: seen
792     required: false
793     type: integer
794   smtp_server_id_pp:
795     description: SMTP server internal identifier
796     in: path
797     name: smtp_server_id
798     required: true
799     type: integer
800   suggestion_id_pp:
801     description: Internal suggestion identifier
802     in: path
803     name: suggestion_id
804     required: true
805     type: integer
806   ticket_id_pp:
807     description: Internal ticket identifier
808     in: path
809     name: ticket_id
810     required: true
811     type: integer
812   transfer_limit_id_pp:
813     description: Internal transfer limit identifier
814     in: path
815     name: limit_id
816     required: true
817     type: string
818   vendor_id_pp:
819     description: Vendor id
820     in: path
821     name: vendor_id
822     required: true
823     type: integer
824 info:
825   title: Koha REST API
826   version: "1"
827   license:
828     name: "GPL v3,"
829     url: http://www.gnu.org/licenses/gpl.txt
830   contact:
831     name: Koha Development Team
832     url: https://koha-community.org/
833   description: |
834     ## Background
835
836     The API supports two sets of endpoints, one targetted at library staff and the other at at library users.
837
838     Those endpoints under the `/public` path are aimed at delivering functionality tailored to library users and offer
839     a more restricted set of functions, overrides and data in thier responses for data privacy and library policy
840     reasons. Many of these endpoints do not require authentication for fetching public data, though an authenticated
841     session will expose additional options and allow users to see more data where it is part of their own record.
842
843     All other endpoints are targetted at the staff interface level and allow for additional functionality and a more
844     unrestricted view of data.  These endpoints, however, have a level of redaction built in for resources that the
845     api consumer should not have access to.  For example, user data for users who do not belong to the same library
846     or library group of your api user will be reduced to just minimum neccesary for a valid response. Object keys will
847     be consistent for all responses, but their values may be removed depending on access.
848
849     ## Authentication
850
851     The API supports the following authentication mechanisms
852
853     * HTTP Basic authentication
854     * OAuth2 (client credentials grant)
855     * Cookie-based
856
857     Both _Basic authentication_ and the _OAuth2_ flow, need to be enabled
858     by system preferences.
859
860     ## Authorization
861
862     The API uses existing user profiles to restrict access to resources based on user permissions and the library the
863     API user is assigned to.  This may result, at times, in resources being returned in a redacted form with all keys
864     present but sensative values nulled.
865
866     We do not yet support OAuth Scopes or the Authorization Code grant flow.
867
868     ## Errors
869
870     The API uses standard HTTP status codes to indicate the success or failure
871     of the API call. The body of the response will be JSON in the following format:
872
873     ```
874     {
875       "error": "Current settings prevent the passed due date to be applied",
876       "error_code": "invalid_due_date"
877     }
878     ```
879
880     Note: Some routes might offer additional attributes in their error responses but that"s
881     subject to change and thus not documented.
882
883     ## Filtering responses
884
885     The API allows for some advanced response filtering using a JSON based query syntax. The
886     query can be added to the requests:
887
888     * as a query parameter `q=`
889     * in the request body
890
891     For simple field equality matches we can use `{ "fieldname": "value" }` where the fieldname
892     matches one of the fields as described in the particular endpoints response object.
893
894     We can refine that with more complex matching clauses by nesting a the clause into the
895     object; `{ "fieldname": { "clause": "value" } }`.
896
897     Available matching clauses include `>`, `<`, `>=`, `<=`, `-like`, and `-not_like`.
898
899     We can filter on multiple fields by adding them to the JSON respresentation. Adding at `HASH`
900     level will result in an "AND" query, whilst combinding them in an `ARRAY` will result in an
901     "OR" query: `{ "field1": "value2", "field2": "value2" }` will filter the response to only those
902     results with both field1 containing value2 AND field2 containing value2 for example.
903
904     Additionally, if you are requesting related data be embedded into the response one can query
905     on the related data using dot notation in the field names.
906
907     ### Examples
908
909     The following request would return any patron with firstname "Henry" and lastname "Acevedo";
910
911     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw '{ "surname": "Acevedo", "firstname": "Henry" }'`
912
913     The following request would return any patron whose lastname begins with "Ace";
914
915     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw '{ "surname": { "-like": "Ace%" }'`
916
917     The following request would return any patron whose lastname is "Acevedo" OR "Bernardo"
918
919     `curl -u koha:koha --request GET "http://127.0.0.1:8081/api/v1/patrons/" --data-raw '{ "surname": [ "Acevedo", "Bernardo" ] }'`
920
921     The following request embeds the related patron extended attributes data and filters on it.
922
923     `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" }'`
924
925     ## Special headers
926
927     ### x-koha-embed
928
929     This optional header allows the api consumer to request additional related data
930     to be returned in the api response.  It also allows for cross referencing in the
931     queries as described above. It accepts a comma delimited list of relation names.
932
933     Relations may on occasion also support dot delimited nesting to allow traversal.
934
935     ### x-koha-library
936
937     This optional header should be passed to give your api request a library
938     context; If it is not included in the request, then the request context
939     will default to using your api comsumer"s assigned home library.
940 tags:
941   - description: "Manage article requests\n"
942     name: article_requests
943     x-displayName: Article requests
944   - description: "Manage authorised value categories\n"
945     name: authorised_value_categories
946     x-displayName: Authorised value categories
947   - description: "Manage authorised values\n"
948     name: authorised_values
949     x-displayName: Authorised values
950   - description: "Manage batch import profiles\n"
951     name: batch_import_profiles
952     x-displayName: Batch import profiles
953   - description: "Manage baskets for the acquisitions module\n"
954     name: baskets
955     x-displayName: Baskets
956   - description: "Manage Authority records\n"
957     name: authorities
958     x-displayName: Authorities
959   - description: "Manage bibliographic records\n"
960     name: biblios
961     x-displayName: Biblios
962   - description: "Manage cash register cashups\n"
963     name: cashups
964     x-displayName: Cashups
965   - description: "Manage checkouts\n"
966     name: checkouts
967     x-displayName: Checkouts
968   - description: "Manage circulation rules\n"
969     name: circulation_rules
970     x-displayName: Circulation rules
971   - description: "Manage cities\n"
972     name: cities
973     x-displayName: Cities
974   - description: "Manage patron clubs\n"
975     name: clubs
976     x-displayName: Clubs
977   - description: "Manage ERM agreements\n"
978     name: erm_agreements
979     x-displayName: ERM agreements
980   - description: "Manage ERM configuration\n"
981     name: erm_config
982     x-displayName: ERM configuration
983   - description: "Manage ERM docuemnts\n"
984     name: erm_documents
985     x-displayName: ERM documents
986   - description: "Manage ERM eHoldings packages\n"
987     name: erm_eholdings_packages
988     x-displayName: ERM eHoldings packages
989   - description: "Manage ERM eHoldings resources\n"
990     name: erm_eholdings_resources
991     x-displayName: ERM eHoldings resources
992   - description: "Manage ERM eHoldings titles\n"
993     name: erm_eholdings_titles
994     x-displayName: ERM eHoldings titles
995   - description: "Manage ERM licences\n"
996     name: erm_licences
997     x-displayName: ERM licences
998   - description: "Manage ERM users\n"
999     name: erm_users
1000     x-displayName: ERM users
1001   - description: "Manage funds for the acquisitions module\n"
1002     name: funds
1003     x-displayName: Funds
1004   - description: "Manage holds\n"
1005     name: holds
1006     x-displayName: Holds
1007   - description: "Manage identity providers\n"
1008     name: identity_providers
1009     x-displayName: Identity providers
1010   - description: "Manage ILL module backends\n"
1011     name: ill_backends
1012     x-displayName: ILL backends
1013   - description: "Manage ILL module batches\n"
1014     name: ill_batches
1015     x-displayName: ILL batches
1016   - description: "Manage ILL module batch statuses\n"
1017     name: ill_batchstatuses
1018     x-displayName: ILL batch statuses
1019   - description: "Manage ILL requests\n"
1020     name: ill_requests
1021     x-displayName: ILL requests
1022   - description: "Manage import batches\n"
1023     name: import_batches
1024     x-displayName: Import batches
1025   - description: "Manage item groups\n"
1026     name: item_groups
1027     x-displayName: Item groups
1028   - description: "Manage items\n"
1029     name: items
1030     x-displayName: Items
1031   - description: "Manage jobs\n"
1032     name: jobs
1033     x-displayName: Jobs
1034   - description: "Manage libraries\n"
1035     name: libraries
1036     x-displayName: Libraries
1037   - description: "Manage macros\n"
1038     name: macros
1039     x-displayName: Macros
1040   - description: "Manage acquisition orders\n"
1041     name: orders
1042     x-displayName: Orders
1043   - description: "Handle OAuth flows\n"
1044     name: oauth
1045     x-displayName: OAuth
1046   - description: "Manage patrons\n"
1047     name: patrons
1048     x-displayName: Patrons
1049   - description: "Manage purchase suggestions\n"
1050     name: suggestions
1051     x-displayName: Purchase suggestions
1052   - description: "Manage quotes\n"
1053     name: quotes
1054     x-displayName: Quotes
1055   - description: "Manage return claims\n"
1056     name: return_claims
1057     x-displayName: Return claims
1058   - description: "Manage rotas\n"
1059     name: rotas
1060     x-displayName: Rotas
1061   - description: "Manage search filters"
1062     name: search_filters
1063     x-displayName: Search filters
1064   - description: "Manage SMTP servers configurations\n"
1065     name: smtp_servers
1066     x-displayName: SMTP servers
1067   - description: "Manage tickets\n"
1068     name: tickets
1069     x-displayName: Tickets
1070   - description: "Manage transfer limits\n"
1071     name: transfer
1072     x-displayName: Transfer limits
1073   - description: "Handle two factor authentication flows\n"
1074     name: 2fa
1075     x-displayName: Two factor authentication
1076   - description: "Manage vendors for the acquisitions module\n"
1077     name: vendors
1078     x-displayName: Vendors