{"id":45,"date":"2024-08-02T08:31:03","date_gmt":"2024-08-02T06:31:03","guid":{"rendered":"https:\/\/pprzybyla.com\/blog\/?p=45"},"modified":"2024-08-02T08:41:00","modified_gmt":"2024-08-02T06:41:00","slug":"iperf3-on-fortigate","status":"publish","type":"post","link":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/","title":{"rendered":"iPerf3 on Fortigate"},"content":{"rendered":"<p>So let&#8217;s assume that for some reason you want to check the speed from Fortigate to some host &#8211; it could be a server on the local network, it could also be a server in some public cloud.<\/p>\n<p>Fortigate has a built-in iperf3 client and a limited iperf3 server. You can access these functions from the CLI, if you have VDOMs enabled, the commands are accessible from the global vdom.<\/p>\n<p>By default, FortiGate uses TCP for that. It is possible to run UDP with flag<strong> -u,<\/strong> but if you do, you should also set the bandwidth with the <strong>-b<\/strong> flag.<\/p>\n<p>Also note that for realistic results u should use more parrallel data streams, it can be configured with flag<strong> -P &lt;value&gt;<\/strong>.<\/p>\n<p>All options can be checked with <strong>diag traffictest run -h <\/strong>command.<\/p>\n<p>&nbsp;<\/p>\n<p>Ok, let&#8217;s start with iperf3 for the WAN connection. The configuration will look as follows:<\/p>\n<p>diag traffictest client-intf &lt;string&gt; &#8211; Define a FortiGate interface.<br \/>\ndiag traffictest server-intf &lt;string&gt; &#8211; Define a FortiGate interface.<br \/>\ndiag traffictest port &lt;port_num&gt; &#8211; Define the iPerf3 port running on the server.<br \/>\ndiag traffictest run -c &lt;IP_ADDR&gt; &#8211; Run iPerf3<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-46\" src=\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-073231-300x258.png\" alt=\"\" width=\"686\" height=\"590\" srcset=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-073231-300x258.png 300w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-073231-660x568.png 660w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-073231.png 735w\" sizes=\"auto, (max-width: 686px) 100vw, 686px\" \/><\/p>\n<p>If we want to use a different iperf server, we need to set the client and server intf to the same port. In the image above, you can see that I&#8217;m using the WAN_1 interface &#8211; this is an EMAC Vlan that I&#8217;ve configured under the physical wan interface, which has no IP address assigned.<\/p>\n<p>This is important to keep in mind &#8211; <strong>interfaces must be assigned an IP address<\/strong>.<\/p>\n<p>&nbsp;<\/p>\n<p>Another use case is to run iperf between fortigate ports &#8211; to test the basic functions of the device. Just set up the server and client interfaces and run the test.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-50\" src=\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-074411-300x214.png\" alt=\"\" width=\"685\" height=\"488\" srcset=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-074411-300x214.png 300w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-074411-660x471.png 660w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-074411.png 735w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/p>\n<p>In the image above, traffic is initiated from the CORE_PC interface &#8211; this is the vlan under port &#8220;a&#8221; on my fortigate, the target server is vlan WAN_1, which is under the physical interface &#8220;wan&#8221;.<\/p>\n<p>Both VLANs are at the same VDOM.<\/p>\n<p>If you want to test iperf between virtual domains, you will need the right routing and security rules to allow traffic<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-51\" src=\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-080859-300x249.png\" alt=\"\" width=\"689\" height=\"572\" srcset=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-080859-300x249.png 300w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-080859-768x637.png 768w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-080859-660x547.png 660w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-080859.png 786w\" sizes=\"auto, (max-width: 689px) 100vw, 689px\" \/><\/p>\n<p>Note that I chose the LOOP-MGMT interface as the client&#8217;s intf &#8211; this is the loopback interface on the vdom root and has an IP address of 10.0.99.254. Nevertheless, you can see that the local IP address is set to 10.255.255.2 &#8211; this is the IP address of the VDOM link.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-52\" src=\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138-300x23.png\" alt=\"\" width=\"1043\" height=\"80\" srcset=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138-300x23.png 300w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138-1024x79.png 1024w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138-768x59.png 768w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138-1536x118.png 1536w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138-660x51.png 660w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081138.png 2021w\" sizes=\"auto, (max-width: 1043px) 100vw, 1043px\" \/><\/p>\n<p>It appears that fortigate will select the source interface based on the routing table if the interface is of the loopback type.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-53\" src=\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081310-300x132.png\" alt=\"\" width=\"693\" height=\"305\" srcset=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081310-300x132.png 300w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081310-768x339.png 768w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081310-660x291.png 660w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081310.png 805w\" sizes=\"auto, (max-width: 693px) 100vw, 693px\" \/><\/p>\n<p>If I choose a vlan interface as the intf client, the local IP address is not changed (WAN_2 is the EMAC Vlan in vdom root).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-56\" src=\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081713-300x69.png\" alt=\"\" width=\"739\" height=\"170\" srcset=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081713-300x69.png 300w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081713-660x153.png 660w, https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-081713.png 748w\" sizes=\"auto, (max-width: 739px) 100vw, 739px\" \/><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>So let&#8217;s assume that for some reason you want to check the speed from Fortigate to some host &#8211; it could be a server on the local network, it could also be a server in some public cloud. Fortigate has a built-in iperf3 client and a limited iperf3 server. You can access these functions from\u2026 <span class=\"read-more\"><a href=\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":60,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-45","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-fortigate"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.4 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>iPerf3 on Fortigate - Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"iPerf3 on Fortigate - Blog\" \/>\n<meta property=\"og:description\" content=\"So let&#8217;s assume that for some reason you want to check the speed from Fortigate to some host &#8211; it could be a server on the local network, it could also be a server in some public cloud. Fortigate has a built-in iperf3 client and a limited iperf3 server. You can access these functions from\u2026 Read More &raquo;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-08-02T06:31:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-08-02T06:41:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png\" \/>\n\t<meta property=\"og:image:width\" content=\"747\" \/>\n\t<meta property=\"og:image:height\" content=\"620\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\"},\"author\":{\"name\":\"admin\",\"@id\":\"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558\"},\"headline\":\"iPerf3 on Fortigate\",\"datePublished\":\"2024-08-02T06:31:03+00:00\",\"dateModified\":\"2024-08-02T06:41:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\"},\"wordCount\":465,\"commentCount\":0,\"publisher\":{\"@id\":\"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558\"},\"image\":{\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png\",\"articleSection\":[\"Fortigate\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\",\"url\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\",\"name\":\"iPerf3 on Fortigate - Blog\",\"isPartOf\":{\"@id\":\"http:\/\/pprzybyla.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png\",\"datePublished\":\"2024-08-02T06:31:03+00:00\",\"dateModified\":\"2024-08-02T06:41:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage\",\"url\":\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png\",\"contentUrl\":\"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png\",\"width\":747,\"height\":620},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/pprzybyla.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"iPerf3 on Fortigate\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/pprzybyla.com\/blog\/#website\",\"url\":\"http:\/\/pprzybyla.com\/blog\/\",\"name\":\"Blog\",\"description\":\"\",\"publisher\":{\"@id\":\"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/pprzybyla.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2025\/02\/my-photo-url.jpg\",\"contentUrl\":\"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2025\/02\/my-photo-url.jpg\",\"width\":800,\"height\":800,\"caption\":\"admin\"},\"logo\":{\"@id\":\"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/image\/\"},\"sameAs\":[\"http:\/\/pprzybyla.com\/blog\"],\"url\":\"https:\/\/pprzybyla.com\/blog\/author\/admin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"iPerf3 on Fortigate - Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/","og_locale":"en_US","og_type":"article","og_title":"iPerf3 on Fortigate - Blog","og_description":"So let&#8217;s assume that for some reason you want to check the speed from Fortigate to some host &#8211; it could be a server on the local network, it could also be a server in some public cloud. Fortigate has a built-in iperf3 client and a limited iperf3 server. You can access these functions from\u2026 Read More &raquo;","og_url":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/","og_site_name":"Blog","article_published_time":"2024-08-02T06:31:03+00:00","article_modified_time":"2024-08-02T06:41:00+00:00","og_image":[{"width":747,"height":620,"url":"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png","type":"image\/png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"Written by":"admin","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#article","isPartOf":{"@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/"},"author":{"name":"admin","@id":"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558"},"headline":"iPerf3 on Fortigate","datePublished":"2024-08-02T06:31:03+00:00","dateModified":"2024-08-02T06:41:00+00:00","mainEntityOfPage":{"@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/"},"wordCount":465,"commentCount":0,"publisher":{"@id":"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558"},"image":{"@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage"},"thumbnailUrl":"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png","articleSection":["Fortigate"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/","url":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/","name":"iPerf3 on Fortigate - Blog","isPartOf":{"@id":"http:\/\/pprzybyla.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage"},"image":{"@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage"},"thumbnailUrl":"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png","datePublished":"2024-08-02T06:31:03+00:00","dateModified":"2024-08-02T06:41:00+00:00","breadcrumb":{"@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#primaryimage","url":"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png","contentUrl":"https:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2024\/08\/Zrzut-ekranu-2024-08-02-084031.png","width":747,"height":620},{"@type":"BreadcrumbList","@id":"https:\/\/pprzybyla.com\/blog\/iperf3-on-fortigate\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/pprzybyla.com\/blog\/"},{"@type":"ListItem","position":2,"name":"iPerf3 on Fortigate"}]},{"@type":"WebSite","@id":"http:\/\/pprzybyla.com\/blog\/#website","url":"http:\/\/pprzybyla.com\/blog\/","name":"Blog","description":"","publisher":{"@id":"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/pprzybyla.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/78e3f329b514e87d4b8591f2e797b558","name":"admin","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/image\/","url":"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2025\/02\/my-photo-url.jpg","contentUrl":"http:\/\/pprzybyla.com\/blog\/wp-content\/uploads\/2025\/02\/my-photo-url.jpg","width":800,"height":800,"caption":"admin"},"logo":{"@id":"http:\/\/pprzybyla.com\/blog\/#\/schema\/person\/image\/"},"sameAs":["http:\/\/pprzybyla.com\/blog"],"url":"https:\/\/pprzybyla.com\/blog\/author\/admin\/"}]}},"_links":{"self":[{"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/posts\/45","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/comments?post=45"}],"version-history":[{"count":7,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/posts\/45\/revisions"}],"predecessor-version":[{"id":58,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/posts\/45\/revisions\/58"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/media\/60"}],"wp:attachment":[{"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/media?parent=45"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/categories?post=45"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pprzybyla.com\/blog\/wp-json\/wp\/v2\/tags?post=45"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}