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