"Fossies" - the Fresh Open Source Software Archive 
Member "AdGuardHome-0.104.3/openapi/openapi.yaml" (19 Nov 2020, 70492 Bytes) of package /linux/misc/dns/AdGuardHome-0.104.3.tar.gz:
As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Ansible YAML source code syntax highlighting (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the latest
Fossies "Diffs" side-by-side code changes report for "openapi.yaml":
0.104.1_vs_0.104.3.
1 openapi: 3.0.3
2 info:
3 title: AdGuard Home
4 description: AdGuard Home REST API. Admin web interface is built on top of this REST API.
5 version: "0.104"
6 contact:
7 name: "AdGuard Home"
8 url: "https://github.com/AdguardTeam/AdGuardHome"
9
10 servers:
11 - url: /control
12
13 tags:
14 - name: clients
15 description: Clients list operations
16 - name: dhcp
17 description: Built-in DHCP server controls
18 - name: filtering
19 description: Rule-based filtering
20 - name: global
21 description: AdGuard Home server general settings and controls
22 - name: i18n
23 description: Application localization
24 - name: install
25 description: First-time install configuration handlers
26 - name: log
27 description: AdGuard Home query log
28 - name: parental
29 description: Blocking adult and explicit materials
30 - name: safebrowsing
31 description: Blocking malware/phishing sites
32 - name: safesearch
33 description: Enforce family-friendly results in search engines
34 - name: stats
35 description: AdGuard Home statistics
36 - name: tls
37 description: AdGuard Home HTTPS/DOH/DOT settings
38 - name: mobileconfig
39 description: Apple .mobileconfig
40
41 paths:
42 /status:
43 get:
44 tags:
45 - global
46 operationId: status
47 summary: Get DNS server current status and general settings
48 responses:
49 "200":
50 description: OK
51 content:
52 application/json:
53 schema:
54 $ref: "#/components/schemas/ServerStatus"
55 /dns_info:
56 get:
57 tags:
58 - global
59 operationId: dnsInfo
60 summary: Get general DNS parameters
61 responses:
62 "200":
63 description: OK
64 content:
65 application/json:
66 schema:
67 $ref: "#/components/schemas/DNSConfig"
68 /dns_config:
69 post:
70 tags:
71 - global
72 operationId: dnsConfig
73 summary: Set general DNS parameters
74 requestBody:
75 content:
76 application/json:
77 schema:
78 $ref: "#/components/schemas/DNSConfig"
79 responses:
80 "200":
81 description: OK
82 /test_upstream_dns:
83 post:
84 tags:
85 - global
86 operationId: testUpstreamDNS
87 summary: Test upstream configuration
88 requestBody:
89 content:
90 application/json:
91 schema:
92 $ref: "#/components/schemas/UpstreamsConfig"
93 description: Upstream configuration to be tested
94 responses:
95 "200":
96 description: Status of testing each requested server, with "OK" meaning that
97 server works, any other text means an error.
98 content:
99 application/json:
100 examples:
101 response:
102 value:
103 1.1.1.1: OK
104 1.0.0.1: OK
105 8.8.8.8: OK
106 8.8.4.4: OK
107 192.168.1.104:53535: Couldn't communicate with DNS server
108 /version.json:
109 post:
110 tags:
111 - global
112 operationId: getVersionJson
113 summary: Gets information about the latest available version of AdGuard
114 requestBody:
115 content:
116 application/json:
117 schema:
118 $ref: "#/components/schemas/GetVersionRequest"
119 required: true
120 responses:
121 "200":
122 description: Version info. If response message is empty, UI does not show a
123 version update message.
124 content:
125 application/json:
126 schema:
127 $ref: "#/components/schemas/VersionInfo"
128 "500":
129 description: Cannot write answer
130 "502":
131 description: Cannot retrieve the version.json file contents
132 /update:
133 post:
134 tags:
135 - global
136 operationId: beginUpdate
137 summary: Begin auto-upgrade procedure
138 responses:
139 "200":
140 description: OK
141 "500":
142 description: Failed
143 /querylog:
144 get:
145 tags:
146 - log
147 operationId: queryLog
148 summary: Get DNS server query log.
149 parameters:
150 - name: older_than
151 in: query
152 description: Filter by older than
153 schema:
154 type: string
155 - name: offset
156 in: query
157 description:
158 Specify the ranking number of the first item on the page.
159 Even though it is possible to use "offset" and "older_than",
160 we recommend choosing one of them and sticking to it.
161 schema:
162 type: integer
163 - name: limit
164 in: query
165 description: Limit the number of records to be returned
166 schema:
167 type: integer
168 - name: search
169 in: query
170 description: Filter by domain name or client IP
171 schema:
172 type: string
173 - name: response_status
174 in: query
175 description: Filter by response status
176 schema:
177 type: string
178 enum:
179 - all
180 - filtered
181 - blocked
182 - blocked_safebrowsing
183 - blocked_parental
184 - whitelisted
185 - rewritten
186 - safe_search
187 - processed
188 responses:
189 "200":
190 description: OK
191 content:
192 application/json:
193 schema:
194 $ref: "#/components/schemas/QueryLog"
195 /querylog_info:
196 get:
197 tags:
198 - log
199 operationId: queryLogInfo
200 summary: Get query log parameters
201 responses:
202 "200":
203 description: OK
204 content:
205 application/json:
206 schema:
207 $ref: "#/components/schemas/QueryLogConfig"
208 /querylog_config:
209 post:
210 tags:
211 - log
212 operationId: queryLogConfig
213 summary: Set query log parameters
214 requestBody:
215 content:
216 application/json:
217 schema:
218 $ref: "#/components/schemas/QueryLogConfig"
219 responses:
220 "200":
221 description: OK
222 /querylog_clear:
223 post:
224 tags:
225 - log
226 operationId: querylogClear
227 summary: Clear query log
228 responses:
229 "200":
230 description: OK
231 /stats:
232 get:
233 tags:
234 - stats
235 operationId: stats
236 summary: Get DNS server statistics
237 responses:
238 "200":
239 description: Returns statistics data
240 content:
241 application/json:
242 schema:
243 $ref: "#/components/schemas/Stats"
244 /stats_reset:
245 post:
246 tags:
247 - stats
248 operationId: statsReset
249 summary: Reset all statistics to zeroes
250 responses:
251 "200":
252 description: OK
253 /stats_info:
254 get:
255 tags:
256 - stats
257 operationId: statsInfo
258 summary: Get statistics parameters
259 responses:
260 "200":
261 description: OK
262 content:
263 application/json:
264 schema:
265 $ref: "#/components/schemas/StatsConfig"
266 /stats_config:
267 post:
268 tags:
269 - stats
270 operationId: statsConfig
271 summary: Set statistics parameters
272 requestBody:
273 content:
274 application/json:
275 schema:
276 $ref: "#/components/schemas/StatsConfig"
277 responses:
278 "200":
279 description: OK
280 /tls/status:
281 get:
282 tags:
283 - tls
284 operationId: tlsStatus
285 summary: Returns TLS configuration and its status
286 responses:
287 "200":
288 description: OK
289 content:
290 application/json:
291 schema:
292 $ref: "#/components/schemas/TlsConfig"
293 /tls/configure:
294 post:
295 tags:
296 - tls
297 operationId: tlsConfigure
298 summary: Updates current TLS configuration
299 requestBody:
300 $ref: "#/components/requestBodies/TlsConfig"
301 responses:
302 "200":
303 description: TLS configuration and its status
304 content:
305 application/json:
306 schema:
307 $ref: "#/components/schemas/TlsConfig"
308 "400":
309 description: Invalid configuration or unavailable port
310 "500":
311 description: Error occurred while applying configuration
312 /tls/validate:
313 post:
314 tags:
315 - tls
316 operationId: tlsValidate
317 summary: Checks if the current TLS configuration is valid
318 requestBody:
319 $ref: "#/components/requestBodies/TlsConfig"
320 responses:
321 "200":
322 description: TLS configuration and its status
323 content:
324 application/json:
325 schema:
326 $ref: "#/components/schemas/TlsConfig"
327 "400":
328 description: Invalid configuration or unavailable port
329 /dhcp/status:
330 get:
331 tags:
332 - dhcp
333 operationId: dhcpStatus
334 summary: Gets the current DHCP settings and status
335 responses:
336 "200":
337 description: OK
338 content:
339 application/json:
340 schema:
341 $ref: "#/components/schemas/DhcpStatus"
342 "501":
343 content:
344 application/json:
345 schema:
346 $ref: "#/components/schemas/Error"
347 description: Not implemented (for example, on Windows).
348 /dhcp/set_config:
349 post:
350 tags:
351 - dhcp
352 operationId: dhcpSetConfig
353 summary: Updates the current DHCP server configuration
354 requestBody:
355 content:
356 application/json:
357 schema:
358 $ref: "#/components/schemas/DhcpConfig"
359 responses:
360 "200":
361 description: OK
362 "501":
363 content:
364 application/json:
365 schema:
366 $ref: "#/components/schemas/Error"
367 description: Not implemented (for example, on Windows).
368 /dhcp/find_active_dhcp:
369 post:
370 tags:
371 - dhcp
372 operationId: checkActiveDhcp
373 summary: Searches for an active DHCP server on the network
374 responses:
375 "200":
376 description: OK
377 content:
378 application/json:
379 schema:
380 $ref: "#/components/schemas/DhcpSearchResult"
381 "501":
382 content:
383 application/json:
384 schema:
385 $ref: "#/components/schemas/Error"
386 description: Not implemented (for example, on Windows).
387 /dhcp/add_static_lease:
388 post:
389 tags:
390 - dhcp
391 operationId: dhcpAddStaticLease
392 summary: Adds a static lease
393 requestBody:
394 $ref: "#/components/requestBodies/DhcpStaticLease"
395 responses:
396 "200":
397 description: OK
398 "501":
399 content:
400 application/json:
401 schema:
402 $ref: "#/components/schemas/Error"
403 description: Not implemented (for example, on Windows).
404 /dhcp/remove_static_lease:
405 post:
406 tags:
407 - dhcp
408 operationId: dhcpRemoveStaticLease
409 summary: Removes a static lease
410 requestBody:
411 $ref: "#/components/requestBodies/DhcpStaticLease"
412 responses:
413 "200":
414 description: OK
415 "501":
416 content:
417 application/json:
418 schema:
419 $ref: "#/components/schemas/Error"
420 description: Not implemented (for example, on Windows).
421 /dhcp/reset:
422 post:
423 tags:
424 - dhcp
425 operationId: dhcpReset
426 summary: Reset DHCP configuration
427 responses:
428 "200":
429 description: OK
430 "501":
431 content:
432 application/json:
433 schema:
434 $ref: "#/components/schemas/Error"
435 description: Not implemented (for example, on Windows).
436 /filtering/status:
437 get:
438 tags:
439 - filtering
440 operationId: filteringStatus
441 summary: Get filtering parameters
442 responses:
443 "200":
444 description: OK
445 content:
446 application/json:
447 schema:
448 $ref: "#/components/schemas/FilterStatus"
449 /filtering/config:
450 post:
451 tags:
452 - filtering
453 operationId: filteringConfig
454 summary: Set filtering parameters
455 requestBody:
456 content:
457 application/json:
458 schema:
459 $ref: "#/components/schemas/FilterConfig"
460 required: true
461 responses:
462 "200":
463 description: OK
464 /filtering/add_url:
465 post:
466 tags:
467 - filtering
468 operationId: filteringAddURL
469 summary: Add filter URL or an absolute file path
470 requestBody:
471 content:
472 application/json:
473 schema:
474 $ref: "#/components/schemas/AddUrlRequest"
475 required: true
476 responses:
477 "200":
478 description: OK
479 /filtering/remove_url:
480 post:
481 tags:
482 - filtering
483 operationId: filteringRemoveURL
484 summary: Remove filter URL
485 requestBody:
486 content:
487 application/json:
488 schema:
489 $ref: "#/components/schemas/RemoveUrlRequest"
490 required: true
491 responses:
492 "200":
493 description: OK
494 /filtering/set_url:
495 post:
496 tags:
497 - filtering
498 operationId: filteringSetURL
499 summary: Set URL parameters
500 requestBody:
501 content:
502 application/json:
503 schema:
504 $ref: "#/components/schemas/FilterSetUrl"
505 responses:
506 "200":
507 description: OK
508 /filtering/refresh:
509 post:
510 tags:
511 - filtering
512 operationId: filteringRefresh
513 summary: >
514 Reload filtering rules from URLs
515
516
517 This might be needed if new URL was just added and you dont want to wait for automatic refresh to kick in.
518
519
520 This API request is ratelimited, so you can call it freely as often as you like, it wont create unneccessary burden on servers that host the URL.
521
522
523 This should work as intended, a `force` parameter is offered as last-resort attempt to make filter lists fresh.
524
525
526 If you ever find yourself using `force` to make something work that otherwise wont, this is a bug and report it accordingly.
527 requestBody:
528 content:
529 application/json:
530 schema:
531 $ref: "#/components/schemas/FilterRefreshRequest"
532 responses:
533 "200":
534 description: OK
535 content:
536 application/json:
537 schema:
538 $ref: "#/components/schemas/FilterRefreshResponse"
539 /filtering/set_rules:
540 post:
541 tags:
542 - filtering
543 operationId: filteringSetRules
544 summary: Set user-defined filter rules
545 requestBody:
546 content:
547 text/plain:
548 schema:
549 type: string
550 example: "@@||yandex.ru^|"
551 description: All filtering rules, one line per rule
552 responses:
553 "200":
554 description: OK
555 /filtering/check_host:
556 get:
557 tags:
558 - filtering
559 operationId: filteringCheckHost
560 summary: Check if host name is filtered
561 parameters:
562 - name: name
563 in: query
564 description: Filter by host name
565 schema:
566 type: string
567 responses:
568 "200":
569 description: OK
570 content:
571 application/json:
572 schema:
573 $ref: "#/components/schemas/FilterCheckHostResponse"
574 /safebrowsing/enable:
575 post:
576 tags:
577 - safebrowsing
578 operationId: safebrowsingEnable
579 summary: Enable safebrowsing
580 responses:
581 "200":
582 description: OK
583 /safebrowsing/disable:
584 post:
585 tags:
586 - safebrowsing
587 operationId: safebrowsingDisable
588 summary: Disable safebrowsing
589 responses:
590 "200":
591 description: OK
592 /safebrowsing/status:
593 get:
594 tags:
595 - safebrowsing
596 operationId: safebrowsingStatus
597 summary: Get safebrowsing status
598 responses:
599 "200":
600 description: OK
601 content:
602 application/json:
603 examples:
604 response:
605 value:
606 enabled: false
607 /parental/enable:
608 post:
609 tags:
610 - parental
611 operationId: parentalEnable
612 summary: Enable parental filtering
613 requestBody:
614 content:
615 text/plain:
616 schema:
617 type: string
618 enum:
619 - EARLY_CHILDHOOD
620 - YOUNG
621 - TEEN
622 - MATURE
623 example: sensitivity=TEEN
624 description: |
625 Age sensitivity for parental filtering,
626 EARLY_CHILDHOOD is 3
627 YOUNG is 10
628 TEEN is 13
629 MATURE is 17
630 required: true
631 responses:
632 "200":
633 description: OK
634 /parental/disable:
635 post:
636 tags:
637 - parental
638 operationId: parentalDisable
639 summary: Disable parental filtering
640 responses:
641 "200":
642 description: OK
643 /parental/status:
644 get:
645 tags:
646 - parental
647 operationId: parentalStatus
648 summary: Get parental filtering status
649 responses:
650 "200":
651 description: OK
652 content:
653 application/json:
654 examples:
655 response:
656 value:
657 enabled: true
658 sensitivity: 13
659 /safesearch/enable:
660 post:
661 tags:
662 - safesearch
663 operationId: safesearchEnable
664 summary: Enable safesearch
665 responses:
666 "200":
667 description: OK
668 /safesearch/disable:
669 post:
670 tags:
671 - safesearch
672 operationId: safesearchDisable
673 summary: Disable safesearch
674 responses:
675 "200":
676 description: OK
677 /safesearch/status:
678 get:
679 tags:
680 - safesearch
681 operationId: safesearchStatus
682 summary: Get safesearch status
683 responses:
684 "200":
685 description: OK
686 content:
687 application/json:
688 examples:
689 response:
690 value:
691 enabled: false
692 /clients:
693 get:
694 tags:
695 - clients
696 operationId: clientsStatus
697 summary: Get information about configured clients
698 responses:
699 "200":
700 description: OK
701 content:
702 application/json:
703 schema:
704 $ref: "#/components/schemas/Clients"
705 /clients/add:
706 post:
707 tags:
708 - clients
709 operationId: clientsAdd
710 summary: Add a new client
711 requestBody:
712 content:
713 application/json:
714 schema:
715 $ref: "#/components/schemas/Client"
716 required: true
717 responses:
718 "200":
719 description: OK
720 /clients/delete:
721 post:
722 tags:
723 - clients
724 operationId: clientsDelete
725 summary: Remove a client
726 requestBody:
727 content:
728 application/json:
729 schema:
730 $ref: "#/components/schemas/ClientDelete"
731 required: true
732 responses:
733 "200":
734 description: OK
735 /clients/update:
736 post:
737 tags:
738 - clients
739 operationId: clientsUpdate
740 summary: Update client information
741 requestBody:
742 content:
743 application/json:
744 schema:
745 $ref: "#/components/schemas/ClientUpdate"
746 required: true
747 responses:
748 "200":
749 description: OK
750 /clients/find:
751 get:
752 tags:
753 - clients
754 operationId: clientsFind
755 summary: Get information about selected clients by their IP address
756 parameters:
757 - name: ip0
758 in: query
759 description: Filter by IP address
760 schema:
761 type: string
762 responses:
763 "200":
764 description: OK
765 content:
766 application/json:
767 schema:
768 $ref: "#/components/schemas/ClientsFindResponse"
769 /blocked_services/list:
770 get:
771 tags:
772 - blocked_services
773 operationId: blockedServicesList
774 summary: Get blocked services list
775 responses:
776 "200":
777 description: OK
778 content:
779 application/json:
780 schema:
781 $ref: "#/components/schemas/BlockedServicesArray"
782 /blocked_services/set:
783 post:
784 tags:
785 - blocked_services
786 operationId: blockedServicesSet
787 summary: Set blocked services list
788 requestBody:
789 content:
790 application/json:
791 schema:
792 $ref: "#/components/schemas/BlockedServicesArray"
793 responses:
794 "200":
795 description: OK
796 /rewrite/list:
797 get:
798 tags:
799 - rewrite
800 operationId: rewriteList
801 summary: Get list of Rewrite rules
802 responses:
803 "200":
804 description: OK
805 content:
806 application/json:
807 schema:
808 $ref: "#/components/schemas/RewriteList"
809 /rewrite/add:
810 post:
811 tags:
812 - rewrite
813 operationId: rewriteAdd
814 summary: Add a new Rewrite rule
815 requestBody:
816 $ref: "#/components/requestBodies/RewriteEntry"
817 responses:
818 "200":
819 description: OK
820 /rewrite/delete:
821 post:
822 tags:
823 - rewrite
824 operationId: rewriteDelete
825 summary: Remove a Rewrite rule
826 requestBody:
827 $ref: "#/components/requestBodies/RewriteEntry"
828 responses:
829 "200":
830 description: OK
831 /i18n/change_language:
832 post:
833 tags:
834 - i18n
835 operationId: changeLanguage
836 summary: Change current language. Argument must be an ISO 639-1 two-letter code
837 requestBody:
838 content:
839 text/plain:
840 schema:
841 type: string
842 example: en
843 description: New language. It must be known to the server and must be an ISO 639-1
844 two-letter code
845 responses:
846 "200":
847 description: OK
848 /i18n/current_language:
849 get:
850 tags:
851 - i18n
852 operationId: currentLanguage
853 summary: Get currently set language. Result is ISO 639-1 two-letter code. Empty
854 result means default language.
855 responses:
856 "200":
857 description: OK
858 content:
859 text/plain:
860 examples:
861 response:
862 value: en
863 /install/get_addresses:
864 get:
865 tags:
866 - install
867 operationId: installGetAddresses
868 summary: Gets the network interfaces information.
869 responses:
870 "200":
871 description: OK
872 content:
873 application/json:
874 schema:
875 $ref: "#/components/schemas/AddressesInfo"
876 /install/check_config:
877 post:
878 tags:
879 - install
880 operationId: installCheckConfig
881 summary: Checks configuration
882 requestBody:
883 content:
884 application/json:
885 schema:
886 $ref: "#/components/schemas/CheckConfigRequest"
887 description: Configuration to be checked
888 required: true
889 responses:
890 "200":
891 description: OK
892 content:
893 application/json:
894 schema:
895 $ref: "#/components/schemas/CheckConfigResponse"
896 "400":
897 description: Failed to parse JSON or cannot listen on the specified address
898 /install/configure:
899 post:
900 tags:
901 - install
902 operationId: installConfigure
903 summary: Applies the initial configuration.
904 requestBody:
905 content:
906 application/json:
907 schema:
908 $ref: "#/components/schemas/InitialConfiguration"
909 description: Initial configuration JSON
910 required: true
911 responses:
912 "200":
913 description: OK
914 "400":
915 description: Failed to parse initial configuration or cannot listen to the
916 specified addresses
917 "500":
918 description: Cannot start the DNS server
919 /login:
920 post:
921 tags:
922 - global
923 operationId: login
924 summary: Perform administrator log-in
925 requestBody:
926 content:
927 application/json:
928 schema:
929 $ref: "#/components/schemas/Login"
930 required: true
931 responses:
932 "200":
933 description: OK
934 /logout:
935 get:
936 tags:
937 - global
938 operationId: logout
939 summary: Perform administrator log-out
940 responses:
941 "302":
942 description: OK
943 /profile:
944 get:
945 tags:
946 - global
947 operationId: getProfile
948 summary: ""
949 responses:
950 "200":
951 description: OK
952 content:
953 application/json:
954 schema:
955 $ref: "#/components/schemas/ProfileInfo"
956 /apple/doh.mobileconfig:
957 get:
958 tags:
959 - mobileconfig
960 - global
961 operationId: mobileConfigDoH
962 summary: Get DNS over HTTPS .mobileconfig
963 responses:
964 "200":
965 description: DNS over HTTPS plist file
966
967 /apple/dot.mobileconfig:
968 get:
969 tags:
970 - mobileconfig
971 - global
972 operationId: mobileConfigDoT
973 summary: Get TLS over TLS .mobileconfig
974 responses:
975 "200":
976 description: DNS over TLS plist file
977
978 components:
979 requestBodies:
980 TlsConfig:
981 content:
982 application/json:
983 schema:
984 $ref: "#/components/schemas/TlsConfig"
985 description: TLS configuration JSON
986 required: true
987 DhcpStaticLease:
988 content:
989 application/json:
990 schema:
991 $ref: "#/components/schemas/DhcpStaticLease"
992 required: true
993 RewriteEntry:
994 content:
995 application/json:
996 schema:
997 $ref: "#/components/schemas/RewriteEntry"
998 required: true
999 schemas:
1000 ServerStatus:
1001 type: object
1002 description: AdGuard Home server status and configuration
1003 required:
1004 - dns_address
1005 - dns_port
1006 - protection_enabled
1007 - querylog_enabled
1008 - running
1009 - bootstrap_dns
1010 - upstream_dns
1011 - version
1012 - language
1013 properties:
1014 dns_address:
1015 type: string
1016 example: 127.0.0.1
1017 dns_port:
1018 type: integer
1019 format: int32
1020 example: 53
1021 minimum: 1
1022 maximum: 65535
1023 protection_enabled:
1024 type: boolean
1025 dhcp_available:
1026 type: boolean
1027 querylog_enabled:
1028 type: boolean
1029 running:
1030 type: boolean
1031 version:
1032 type: string
1033 example: "0.1"
1034 language:
1035 type: string
1036 example: en
1037 DNSConfig:
1038 type: object
1039 description: Query log configuration
1040 properties:
1041 bootstrap_dns:
1042 type: array
1043 description: Bootstrap servers, port is optional after colon. Empty value will
1044 reset it to default values
1045 items:
1046 type: string
1047 example:
1048 - 8.8.8.8:53
1049 - 1.1.1.1:53
1050 upstream_dns:
1051 type: array
1052 description: Upstream servers, port is optional after colon. Empty value will
1053 reset it to default values
1054 items:
1055 type: string
1056 example:
1057 - tls://1.1.1.1
1058 - tls://1.0.0.1
1059 upstream_dns_file:
1060 type: string
1061 protection_enabled:
1062 type: boolean
1063 dhcp_available:
1064 type: boolean
1065 ratelimit:
1066 type: integer
1067 blocking_mode:
1068 type: string
1069 enum:
1070 - default
1071 - refused
1072 - nxdomain
1073 - null_ip
1074 - custom_ip
1075 blocking_ipv4:
1076 type: string
1077 blocking_ipv6:
1078 type: string
1079 edns_cs_enabled:
1080 type: boolean
1081 dnssec_enabled:
1082 type: boolean
1083 cache_size:
1084 type: integer
1085 cache_ttl_min:
1086 type: integer
1087 cache_ttl_max:
1088 type: integer
1089 upstream_mode:
1090 enum:
1091 - ""
1092 - parallel
1093 - fastest_addr
1094 UpstreamsConfig:
1095 type: object
1096 description: Upstreams configuration
1097 required:
1098 - bootstrap_dns
1099 - upstream_dns
1100 properties:
1101 bootstrap_dns:
1102 type: array
1103 description: Bootstrap servers, port is optional after colon. Empty value will
1104 reset it to default values
1105 items:
1106 type: string
1107 example:
1108 - 8.8.8.8:53
1109 - 1.1.1.1:53
1110 upstream_dns:
1111 type: array
1112 description: Upstream servers, port is optional after colon. Empty value will
1113 reset it to default values
1114 items:
1115 type: string
1116 example:
1117 - tls://1.1.1.1
1118 - tls://1.0.0.1
1119 Filter:
1120 type: object
1121 description: Filter subscription info
1122 required:
1123 - enabled
1124 - id
1125 - lastUpdated
1126 - name
1127 - rulesCount
1128 - url
1129 properties:
1130 enabled:
1131 type: boolean
1132 id:
1133 type: integer
1134 example: 1234
1135 lastUpdated:
1136 type: string
1137 format: date-time
1138 example: 2018-10-30T12:18:57+03:00
1139 name:
1140 type: string
1141 example: AdGuard Simplified Domain Names filter
1142 rulesCount:
1143 type: integer
1144 example: 5912
1145 url:
1146 type: string
1147 example: https://adguardteam.github.io/AdGuardSDNSFilter/Filters/filter.txt
1148 FilterStatus:
1149 type: object
1150 description: Filtering settings
1151 properties:
1152 enabled:
1153 type: boolean
1154 interval:
1155 type: integer
1156 filters:
1157 type: array
1158 items:
1159 $ref: "#/components/schemas/Filter"
1160 user_rules:
1161 type: array
1162 items:
1163 type: string
1164 FilterConfig:
1165 type: object
1166 description: Filtering settings
1167 properties:
1168 enabled:
1169 type: boolean
1170 interval:
1171 type: integer
1172 FilterSetUrl:
1173 type: object
1174 description: Filtering URL settings
1175 properties:
1176 data:
1177 properties:
1178 enabled:
1179 type: boolean
1180 name:
1181 type: string
1182 url:
1183 type: string
1184 type: object
1185 url:
1186 type: string
1187 whitelist:
1188 type: boolean
1189 FilterRefreshRequest:
1190 type: object
1191 description: Refresh Filters request data
1192 properties:
1193 whitelist:
1194 type: boolean
1195 FilterCheckHostResponse:
1196 type: object
1197 description: Check Host Result
1198 properties:
1199 reason:
1200 type: string
1201 description: DNS filter status
1202 enum:
1203 - NotFilteredNotFound
1204 - NotFilteredWhiteList
1205 - NotFilteredError
1206 - FilteredBlackList
1207 - FilteredSafeBrowsing
1208 - FilteredParental
1209 - FilteredInvalid
1210 - FilteredSafeSearch
1211 - FilteredBlockedService
1212 - ReasonRewrite
1213 filter_id:
1214 type: integer
1215 rule:
1216 type: string
1217 example: "||example.org^"
1218 description: Filtering rule applied to the request (if any)
1219 service_name:
1220 type: string
1221 description: Set if reason=FilteredBlockedService
1222 cname:
1223 type: string
1224 description: Set if reason=ReasonRewrite
1225 ip_addrs:
1226 type: array
1227 items:
1228 type: string
1229 description: Set if reason=ReasonRewrite
1230 FilterRefreshResponse:
1231 type: object
1232 description: /filtering/refresh response data
1233 properties:
1234 updated:
1235 type: integer
1236 GetVersionRequest:
1237 type: object
1238 description: /version.json request data
1239 properties:
1240 recheck_now:
1241 description: If false, server will check for a new version data only once in
1242 several hours
1243 type: boolean
1244 VersionInfo:
1245 type: object
1246 description: Information about the latest available version of AdGuard Home
1247 properties:
1248 new_version:
1249 type: string
1250 example: v0.9
1251 announcement:
1252 type: string
1253 example: AdGuard Home v0.9 is now available!
1254 announcement_url:
1255 type: string
1256 example: https://github.com/AdguardTeam/AdGuardHome/releases/tag/v0.9
1257 can_autoupdate:
1258 type: boolean
1259 Stats:
1260 type: object
1261 description: Server statistics data
1262 properties:
1263 time_units:
1264 type: string
1265 description: Time units (hours | days)
1266 example: hours
1267 num_dns_queries:
1268 type: integer
1269 description: Total number of DNS queries
1270 example: 123
1271 num_blocked_filtering:
1272 type: integer
1273 description: Number of requests blocked by filtering rules
1274 example: 50
1275 num_replaced_safebrowsing:
1276 type: integer
1277 description: Number of requests blocked by safebrowsing module
1278 example: 5
1279 num_replaced_safesearch:
1280 type: integer
1281 description: Number of requests blocked by safesearch module
1282 example: 5
1283 num_replaced_parental:
1284 type: integer
1285 description: Number of blocked adult websites
1286 example: 15
1287 avg_processing_time:
1288 type: number
1289 format: float
1290 description: Average time in milliseconds on processing a DNS
1291 example: 0.34
1292 top_queried_domains:
1293 type: array
1294 items:
1295 $ref: "#/components/schemas/TopArrayEntry"
1296 top_clients:
1297 type: array
1298 items:
1299 $ref: "#/components/schemas/TopArrayEntry"
1300 top_blocked_domains:
1301 type: array
1302 items:
1303 $ref: "#/components/schemas/TopArrayEntry"
1304 dns_queries:
1305 type: array
1306 items:
1307 type: integer
1308 blocked_filtering:
1309 type: array
1310 items:
1311 type: integer
1312 replaced_safebrowsing:
1313 type: array
1314 items:
1315 type: integer
1316 replaced_parental:
1317 type: array
1318 items:
1319 type: integer
1320 TopArrayEntry:
1321 type: object
1322 description: Represent the number of hits per key (domain or client IP)
1323 properties:
1324 domain_or_ip:
1325 type: integer
1326 StatsConfig:
1327 type: object
1328 description: Statistics configuration
1329 properties:
1330 interval:
1331 type: integer
1332 description: Time period to keep data (1 | 7 | 30 | 90)
1333 DhcpConfig:
1334 type: object
1335 properties:
1336 enabled:
1337 type: boolean
1338 interface_name:
1339 type: string
1340 v4:
1341 $ref: "#/components/schemas/DhcpConfigV4"
1342 v6:
1343 $ref: "#/components/schemas/DhcpConfigV6"
1344 DhcpConfigV4:
1345 type: object
1346 properties:
1347 gateway_ip:
1348 type: string
1349 example: 192.168.1.1
1350 subnet_mask:
1351 type: string
1352 example: 255.255.255.0
1353 range_start:
1354 type: string
1355 example: 192.168.1.2
1356 range_end:
1357 type: string
1358 example: 192.168.10.50
1359 lease_duration:
1360 type: integer
1361 DhcpConfigV6:
1362 type: object
1363 properties:
1364 range_start:
1365 type: string
1366 lease_duration:
1367 type: integer
1368 DhcpLease:
1369 type: object
1370 description: DHCP lease information
1371 required:
1372 - mac
1373 - ip
1374 - hostname
1375 - expires
1376 properties:
1377 mac:
1378 type: string
1379 example: 00:11:09:b3:b3:b8
1380 ip:
1381 type: string
1382 example: 192.168.1.22
1383 hostname:
1384 type: string
1385 example: dell
1386 expires:
1387 type: string
1388 example: "2017-07-21T17:32:28Z"
1389 DhcpStaticLease:
1390 type: object
1391 description: DHCP static lease information
1392 required:
1393 - mac
1394 - ip
1395 - hostname
1396 - expires
1397 properties:
1398 mac:
1399 type: string
1400 example: 00:11:09:b3:b3:b8
1401 ip:
1402 type: string
1403 example: 192.168.1.22
1404 hostname:
1405 type: string
1406 example: dell
1407 DhcpStatus:
1408 type: object
1409 description: Built-in DHCP server configuration and status
1410 required:
1411 - config
1412 - leases
1413 properties:
1414 enabled:
1415 type: boolean
1416 interface_name:
1417 type: string
1418 v4:
1419 $ref: "#/components/schemas/DhcpConfigV4"
1420 v6:
1421 $ref: "#/components/schemas/DhcpConfigV6"
1422 leases:
1423 type: array
1424 items:
1425 $ref: "#/components/schemas/DhcpLease"
1426 static_leases:
1427 type: array
1428 items:
1429 $ref: "#/components/schemas/DhcpStaticLease"
1430
1431 DhcpSearchResult:
1432 type: object
1433 description: Information about a DHCP server discovered in the current network
1434 properties:
1435 v4:
1436 $ref: "#/components/schemas/DhcpSearchV4"
1437 v6:
1438 $ref: "#/components/schemas/DhcpSearchV6"
1439
1440 DhcpSearchV4:
1441 type: object
1442 properties:
1443 other_server:
1444 $ref: "#/components/schemas/DhcpSearchResultOtherServer"
1445 static_ip:
1446 $ref: "#/components/schemas/DhcpSearchResultStaticIP"
1447
1448 DhcpSearchV6:
1449 type: object
1450 properties:
1451 other_server:
1452 $ref: "#/components/schemas/DhcpSearchResultOtherServer"
1453
1454 DhcpSearchResultOtherServer:
1455 type: object
1456 properties:
1457 found:
1458 type: string
1459 description: yes|no|error
1460 example: no
1461 error:
1462 type: string
1463 description: Set if found=error
1464 example: ""
1465
1466 DhcpSearchResultStaticIP:
1467 type: object
1468 properties:
1469 static:
1470 type: string
1471 description: yes|no|error
1472 example: yes
1473 ip:
1474 type: string
1475 description: Set if static=no
1476 example: ""
1477
1478 DnsAnswer:
1479 type: object
1480 description: DNS answer section
1481 properties:
1482 ttl:
1483 type: integer
1484 example: 55
1485 type:
1486 type: string
1487 example: A
1488 value:
1489 type: string
1490 example: 217.69.139.201
1491 DnsQuestion:
1492 type: object
1493 description: DNS question section
1494 properties:
1495 class:
1496 type: string
1497 example: IN
1498 host:
1499 type: string
1500 example: example.org
1501 type:
1502 type: string
1503 example: A
1504 AddUrlRequest:
1505 type: object
1506 description: /add_url request data
1507 properties:
1508 name:
1509 type: string
1510 url:
1511 description: URL or an absolute path to the file containing filtering rules
1512 type: string
1513 example: https://filters.adtidy.org/windows/filters/15.txt
1514 whitelist:
1515 type: boolean
1516 RemoveUrlRequest:
1517 type: object
1518 description: /remove_url request data
1519 properties:
1520 url:
1521 description: Previously added URL containing filtering rules
1522 type: string
1523 example: https://filters.adtidy.org/windows/filters/15.txt
1524 QueryLogItem:
1525 type: object
1526 description: Query log item
1527 properties:
1528 answer:
1529 type: array
1530 items:
1531 $ref: "#/components/schemas/DnsAnswer"
1532 original_answer:
1533 type: array
1534 description: Answer from upstream server (optional)
1535 items:
1536 $ref: "#/components/schemas/DnsAnswer"
1537 upstream:
1538 type: string
1539 description: Upstream URL starting with tcp://, tls://, https://, or with an IP address
1540 answer_dnssec:
1541 type: boolean
1542 client:
1543 type: string
1544 example: 192.168.0.1
1545 client_proto:
1546 enum:
1547 - dot
1548 - doh
1549 - doq
1550 - ""
1551 elapsedMs:
1552 type: string
1553 example: "54.023928"
1554 question:
1555 $ref: "#/components/schemas/DnsQuestion"
1556 filterId:
1557 type: integer
1558 example: 123123
1559 description: In case if there's a rule applied to this DNS request, this is ID of
1560 the filter that rule belongs to.
1561 rule:
1562 type: string
1563 example: "||example.org^"
1564 description: Filtering rule applied to the request (if any)
1565 reason:
1566 type: string
1567 description: DNS filter status
1568 enum:
1569 - NotFilteredNotFound
1570 - NotFilteredWhiteList
1571 - NotFilteredError
1572 - FilteredBlackList
1573 - FilteredSafeBrowsing
1574 - FilteredParental
1575 - FilteredInvalid
1576 - FilteredSafeSearch
1577 - FilteredBlockedService
1578 - ReasonRewrite
1579 service_name:
1580 type: string
1581 description: Set if reason=FilteredBlockedService
1582 status:
1583 type: string
1584 description: DNS response status
1585 example: NOERROR
1586 time:
1587 type: string
1588 description: DNS request processing start time
1589 example: 2018-11-26T00:02:41+03:00
1590 QueryLog:
1591 type: object
1592 description: Query log
1593 properties:
1594 oldest:
1595 type: string
1596 example: 2018-11-26T00:02:41+03:00
1597 data:
1598 type: array
1599 items:
1600 $ref: "#/components/schemas/QueryLogItem"
1601 QueryLogConfig:
1602 type: object
1603 description: Query log configuration
1604 properties:
1605 enabled:
1606 type: boolean
1607 description: Is query log enabled
1608 interval:
1609 type: integer
1610 description: Time period to keep data (1 | 7 | 30 | 90)
1611 anonymize_client_ip:
1612 type: boolean
1613 description: Anonymize clients' IP addresses
1614 TlsConfig:
1615 type: object
1616 description: TLS configuration settings and status
1617 properties:
1618 enabled:
1619 type: boolean
1620 example: "true"
1621 description: enabled is the encryption (DOT/DOH/HTTPS) status
1622 server_name:
1623 type: string
1624 example: example.org
1625 description: server_name is the hostname of your HTTPS/TLS server
1626 force_https:
1627 type: boolean
1628 example: "true"
1629 description: if true, forces HTTP->HTTPS redirect
1630 port_https:
1631 type: integer
1632 format: int32
1633 example: 443
1634 description: HTTPS port. If 0, HTTPS will be disabled.
1635 port_dns_over_tls:
1636 type: integer
1637 format: int32
1638 example: 853
1639 description: DNS-over-TLS port. If 0, DOT will be disabled.
1640 port_dns_over_quic:
1641 type: integer
1642 format: int32
1643 example: 784
1644 description: DNS-over-QUIC port. If 0, DOQ will be disabled.
1645 certificate_chain:
1646 type: string
1647 description: Base64 string with PEM-encoded certificates chain
1648 private_key:
1649 type: string
1650 description: Base64 string with PEM-encoded private key
1651 certificate_path:
1652 type: string
1653 description: Path to certificate file
1654 private_key_path:
1655 type: string
1656 description: Path to private key file
1657 valid_cert:
1658 type: boolean
1659 example: "true"
1660 description: valid_cert is true if the specified certificates chain is a valid
1661 chain of X509 certificates
1662 valid_chain:
1663 type: boolean
1664 example: "true"
1665 description: valid_chain is true if the specified certificates chain is verified
1666 and issued by a known CA
1667 subject:
1668 type: string
1669 example: CN=example.org
1670 description: subject is the subject of the first certificate in the chain
1671 issuer:
1672 type: string
1673 example: CN=Let's Encrypt Authority X3,O=Let's Encrypt,C=US
1674 description: issuer is the issuer of the first certificate in the chain
1675 not_before:
1676 type: string
1677 example: 2019-01-31T10:47:32Z
1678 description: not_before is the NotBefore field of the first certificate in the
1679 chain
1680 not_after:
1681 type: string
1682 example: 2019-05-01T10:47:32Z
1683 description: not_after is the NotAfter field of the first certificate in the chain
1684 dns_names:
1685 type: array
1686 items:
1687 type: string
1688 description: dns_names is the value of SubjectAltNames field of the first
1689 certificate in the chain
1690 example:
1691 - "*.example.org"
1692 valid_key:
1693 type: boolean
1694 example: "true"
1695 description: valid_key is true if the key is a valid private key
1696 key_type:
1697 type: string
1698 example: RSA
1699 description: key_type is either RSA or ECDSA
1700 warning_validation:
1701 type: string
1702 example: You have specified an empty certificate
1703 description: warning_validation is a validation warning message with the issue
1704 description
1705 valid_pair:
1706 type: boolean
1707 example: "true"
1708 description: valid_pair is true if both certificate and private key are correct
1709 NetInterface:
1710 type: object
1711 description: Network interface info
1712 properties:
1713 flags:
1714 type: string
1715 example: up|broadcast|multicast
1716 hardware_address:
1717 type: string
1718 example: 52:54:00:11:09:ba
1719 name:
1720 type: string
1721 example: eth0
1722 ipv4_addresses:
1723 type: array
1724 items:
1725 type: string
1726 ipv6_addresses:
1727 type: array
1728 items:
1729 type: string
1730 gateway_ip:
1731 type: string
1732 AddressInfo:
1733 type: object
1734 description: Port information
1735 properties:
1736 ip:
1737 type: string
1738 example: 127.0.0.1
1739 port:
1740 type: integer
1741 format: int32
1742 example: 53
1743 AddressesInfo:
1744 type: object
1745 description: AdGuard Home addresses configuration
1746 properties:
1747 dns_port:
1748 type: integer
1749 format: int32
1750 example: 53
1751 web_port:
1752 type: integer
1753 format: int32
1754 example: 80
1755 interfaces:
1756 type: object
1757 description: Network interfaces dictionary (key is the interface name)
1758 additionalProperties:
1759 $ref: "#/components/schemas/NetInterface"
1760 ProfileInfo:
1761 type: object
1762 description: Information about the current user
1763 properties:
1764 name:
1765 type: string
1766 Client:
1767 type: object
1768 description: Client information
1769 properties:
1770 name:
1771 type: string
1772 description: Name
1773 example: localhost
1774 ids:
1775 type: array
1776 description: IP, CIDR or MAC address
1777 items:
1778 type: string
1779 use_global_settings:
1780 type: boolean
1781 filtering_enabled:
1782 type: boolean
1783 parental_enabled:
1784 type: boolean
1785 safebrowsing_enabled:
1786 type: boolean
1787 safesearch_enabled:
1788 type: boolean
1789 use_global_blocked_services:
1790 type: boolean
1791 blocked_services:
1792 type: array
1793 items:
1794 type: string
1795 upstreams:
1796 type: array
1797 items:
1798 type: string
1799 ClientAuto:
1800 type: object
1801 description: Auto-Client information
1802 properties:
1803 ip:
1804 type: string
1805 description: IP address
1806 example: 127.0.0.1
1807 name:
1808 type: string
1809 description: Name
1810 example: localhost
1811 source:
1812 type: string
1813 description: The source of this information
1814 example: etc/hosts
1815 ClientUpdate:
1816 type: object
1817 description: Client update request
1818 properties:
1819 name:
1820 type: string
1821 data:
1822 $ref: "#/components/schemas/Client"
1823 ClientDelete:
1824 type: object
1825 description: Client delete request
1826 properties:
1827 name:
1828 type: string
1829 ClientsFindResponse:
1830 type: array
1831 description: Response to clients find operation
1832 items:
1833 $ref: "#/components/schemas/ClientsFindEntry"
1834 ClientsFindEntry:
1835 type: object
1836 properties:
1837 1.2.3.4:
1838 items:
1839 $ref: "#/components/schemas/ClientFindSubEntry"
1840
1841 ClientFindSubEntry:
1842 type: object
1843 properties:
1844 name:
1845 type: string
1846 description: Name
1847 example: localhost
1848 ids:
1849 type: array
1850 description: IP, CIDR or MAC address
1851 items:
1852 type: string
1853 use_global_settings:
1854 type: boolean
1855 filtering_enabled:
1856 type: boolean
1857 parental_enabled:
1858 type: boolean
1859 safebrowsing_enabled:
1860 type: boolean
1861 safesearch_enabled:
1862 type: boolean
1863 use_global_blocked_services:
1864 type: boolean
1865 blocked_services:
1866 type: array
1867 items:
1868 type: string
1869 upstreams:
1870 type: array
1871 items:
1872 type: string
1873 whois_info:
1874 type: array
1875 items:
1876 $ref: "#/components/schemas/WhoisInfo"
1877 disallowed:
1878 type: boolean
1879 description: >
1880 Whether the client's IP is blocked or not.
1881 disallowed_rule:
1882 type: string
1883 description: >
1884 The rule due to which the client is disallowed.
1885 If `disallowed` is `true`, and this string is empty - it means that
1886 the client IP is disallowed by the "allowed IP list", i.e. it is not included in allowed list.
1887
1888 WhoisInfo:
1889 type: object
1890 properties:
1891 key:
1892 type: string
1893
1894 Clients:
1895 type: object
1896 properties:
1897 clients:
1898 $ref: "#/components/schemas/ClientsArray"
1899 auto_clients:
1900 $ref: "#/components/schemas/ClientsAutoArray"
1901 ClientsArray:
1902 type: array
1903 items:
1904 $ref: "#/components/schemas/Client"
1905 description: Clients array
1906 ClientsAutoArray:
1907 type: array
1908 items:
1909 $ref: "#/components/schemas/ClientAuto"
1910 description: Auto-Clients array
1911 RewriteList:
1912 type: array
1913 items:
1914 $ref: "#/components/schemas/RewriteEntry"
1915 description: Rewrite rules array
1916 RewriteEntry:
1917 type: object
1918 description: Rewrite rule
1919 properties:
1920 domain:
1921 type: string
1922 description: Domain name
1923 example: example.org
1924 answer:
1925 type: string
1926 description: value of A, AAAA or CNAME DNS record
1927 example: 127.0.0.1
1928 BlockedServicesArray:
1929 type: array
1930 items:
1931 type: string
1932 CheckConfigRequest:
1933 type: object
1934 description: Configuration to be checked
1935 properties:
1936 dns:
1937 $ref: "#/components/schemas/CheckConfigRequestInfo"
1938 web:
1939 $ref: "#/components/schemas/CheckConfigRequestInfo"
1940 set_static_ip:
1941 type: boolean
1942 example: false
1943 CheckConfigRequestInfo:
1944 type: object
1945 properties:
1946 ip:
1947 type: string
1948 example: 127.0.0.1
1949 port:
1950 type: integer
1951 format: int32
1952 example: 53
1953 autofix:
1954 type: boolean
1955 example: false
1956 CheckConfigResponse:
1957 type: object
1958 properties:
1959 dns:
1960 $ref: "#/components/schemas/CheckConfigResponseInfo"
1961 web:
1962 $ref: "#/components/schemas/CheckConfigResponseInfo"
1963 static_ip:
1964 $ref: "#/components/schemas/CheckConfigStaticIpInfo"
1965 CheckConfigResponseInfo:
1966 type: object
1967 properties:
1968 status:
1969 type: string
1970 example: ""
1971 can_autofix:
1972 type: boolean
1973 example: false
1974 CheckConfigStaticIpInfo:
1975 type: object
1976 properties:
1977 static:
1978 type: string
1979 example: no
1980 description: "Can be: yes, no, error"
1981 ip:
1982 type: string
1983 example: 192.168.1.1
1984 description: Current dynamic IP address. Set if static=no
1985 error:
1986 type: string
1987 example: ""
1988 description: Error text. Set if static=error
1989 InitialConfiguration:
1990 type: object
1991 description: AdGuard Home initial configuration (for the first-install wizard)
1992 properties:
1993 dns:
1994 $ref: "#/components/schemas/AddressInfo"
1995 web:
1996 $ref: "#/components/schemas/AddressInfo"
1997 username:
1998 type: string
1999 description: Basic auth username
2000 example: admin
2001 password:
2002 type: string
2003 description: Basic auth password
2004 example: password
2005 Login:
2006 type: object
2007 description: Login request data
2008 properties:
2009 username:
2010 type: string
2011 description: User name
2012 password:
2013 type: string
2014 description: Password
2015 Error:
2016 description: A generic JSON error response.
2017 properties:
2018 message:
2019 type: string
2020 description: The error message, an opaque string.
2021 type: object