HTTP Client
4
Total requests
0
HTTP errors
Clients
http_client 4
Requests
GET | https://admin.atelier-des-prompts.fr/api/categories/51/products | Profile | |
---|---|---|---|
Request options | [ "headers" => [ "Content-Type" => "application/ld+json" "Accept" => "application/ld+json" "User-Agent" => "Arcanes-Front/1.0" ] "timeout" => 10 "verify_peer" => false "verify_host" => false ] |
||
Response |
200
[ "info" => [ "header_size" => 564 "request_size" => 196 "total_time" => 0.12054 "namelookup_time" => 0.001078 "connect_time" => 0.001208 "pretransfer_time" => 0.015835 "size_download" => 465.0 "speed_download" => 3875.0 "starttransfer_time" => 0.105933 "primary_ip" => "2a02:4780:2a:96b7:e85:2875:c138:1a73" "primary_port" => 443 "local_ip" => "2a02:4780:27:1234::98" "local_port" => 22992 "http_version" => 3 "protocol" => 2 "scheme" => "HTTPS" "appconnect_time_us" => 15693 "connect_time_us" => 1208 "namelookup_time_us" => 1078 "pretransfer_time_us" => 15835 "starttransfer_time_us" => 105933 "total_time_us" => 120540 "effective_method" => "GET" "start_time" => 1760007547.4579 "original_url" => "https://admin.atelier-des-prompts.fr/api/categories/51/products" "pause_handler" => Closure(float $duration) {#683 : "Symfony\Component\HttpClient\Response\CurlResponse" : { : CurlHandle {#679 …} : Symfony\Component\HttpClient\Internal\CurlClientState {#673 …} : -9223372036854775808 } } "debug" => """ * Trying 2a02:4780:2a:96b7:e85:2875:c138:1a73:443...\n * Connected to admin.atelier-des-prompts.fr (2a02:4780:2a:96b7:e85:2875:c138:1a73) port 443 (#0)\n * ALPN, offering h2\n * ALPN, offering http/1.1\n * CAfile: /etc/pki/tls/certs/ca-bundle.crt\n * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384\n * ALPN, server accepted to use h2\n * Server certificate:\n * subject: CN=admin.atelier-des-prompts.fr\n * start date: Sep 3 14:23:37 2025 GMT\n * expire date: Dec 2 14:23:36 2025 GMT\n * issuer: C=US; O=Let's Encrypt; CN=R12\n * SSL certificate verify ok.\n * Using HTTP2, server supports multi-use\n * Connection state changed (HTTP/2 confirmed)\n * Copying HTTP/2 data in stream buffer to connection buffer after upgrade: len=0\n * Using Stream ID: 1 (easy handle 0x15b1ed0)\n > GET /api/categories/51/products HTTP/2\r\n Host: admin.atelier-des-prompts.fr\r\n content-type: application/ld+json\r\n accept: application/ld+json\r\n user-agent: Arcanes-Front/1.0\r\n accept-encoding: gzip\r\n \r\n * old SSL session ID is stale, removing\n * Connection state changed (MAX_CONCURRENT_STREAMS == 128)!\n < HTTP/2 200 \r\n < date: Thu, 09 Oct 2025 10:59:04 GMT\r\n < content-type: application/json\r\n < vary: Accept-Encoding\r\n < x-powered-by: PHP/8.2.28\r\n < cache-control: no-cache, private\r\n < x-debug-token: f241e6\r\n < x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/f241e6\r\n < x-robots-tag: noindex\r\n < content-encoding: gzip\r\n < platform: hostinger\r\n < panel: hpanel\r\n < content-security-policy: upgrade-insecure-requests\r\n < server: hcdn\r\n < alt-svc: h3=":443"; ma=86400\r\n < x-hcdn-request-id: 261bbe757be2367813db2aa4bca72d6c-int-edge4\r\n < x-hcdn-cache-status: DYNAMIC\r\n < x-hcdn-upstream-rt: 0.088\r\n < \r\n """ ] "response_headers" => [ "HTTP/2 200 " "date: Thu, 09 Oct 2025 10:59:04 GMT" "content-type: application/json" "vary: Accept-Encoding" "x-powered-by: PHP/8.2.28" "cache-control: no-cache, private" "x-debug-token: f241e6" "x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/f241e6" "x-robots-tag: noindex" "content-encoding: gzip" "platform: hostinger" "panel: hpanel" "content-security-policy: upgrade-insecure-requests" "server: hcdn" "alt-svc: h3=":443"; ma=86400" "x-hcdn-request-id: 261bbe757be2367813db2aa4bca72d6c-int-edge4" "x-hcdn-cache-status: DYNAMIC" "x-hcdn-upstream-rt: 0.088" ] "response_json" => [ "@context" => "/api/contexts/Product" "@id" => "/api/categories/51/products" "@type" => "hydra:Collection" "hydra:member" => [ [ "id" => 71 "name" => "Agrandissement photo" "slug" => "agrandissement-photo-4640" "price" => 181.89 ] [ "id" => 65 "name" => "Tirage grand format A3" "slug" => "tirage-grand-format-a3-5219" "price" => 125.73 ] [ "id" => 64 "name" => "Développement diapositive" "slug" => "dveloppement-diapositive-2308" "price" => 42.03 ] [ "id" => 62 "name" => "Pellicule couleur 35mm" "slug" => "pellicule-couleur-35mm-2381" "price" => 26.66 ] [ "id" => 60 "name" => "Cadre photo 20x30cm" "slug" => "cadre-photo-20x30cm-2926" "price" => 71.22 ] [ "id" => 59 "name" => "Photos d'identité biométriques" "slug" => "photos-didentit-biomtriques-1600" "price" => 38.39 ] [ "id" => 58 "name" => "Photos d'identité standard" "slug" => "photos-didentit-standard-2355" "price" => 117.04 ] [ "id" => 54 "name" => "Tirage photo 20x30cm" "slug" => "tirage-photo-20x30cm-8517" "price" => 181.89 ] [ "id" => 52 "name" => "Tirage photo 10x15cm" "slug" => "tirage-photo-10x15cm-8363" "price" => 174.37 ] ] "hydra:totalItems" => 9 ] ] |
f241e6 |
GET | https://admin.atelier-des-prompts.fr/api/categories/51/products | Profile | |
---|---|---|---|
Request options | [ "headers" => [ "Content-Type" => "application/ld+json" "Accept" => "application/ld+json" "User-Agent" => "Arcanes-Front/1.0" ] "timeout" => 10 "verify_peer" => false "verify_host" => false ] |
||
Response |
200
[ "info" => [ "header_size" => 564 "request_size" => 196 "total_time" => 0.111421 "namelookup_time" => 3.8E-5 "connect_time" => 3.8E-5 "pretransfer_time" => 0.000126 "size_download" => 465.0 "speed_download" => 4189.0 "starttransfer_time" => 0.098338 "primary_ip" => "2a02:4780:2a:96b7:e85:2875:c138:1a73" "primary_port" => 443 "http_version" => 3 "protocol" => 2 "scheme" => "HTTPS" "appconnect_time_us" => 38 "connect_time_us" => 38 "namelookup_time_us" => 38 "pretransfer_time_us" => 126 "starttransfer_time_us" => 98338 "total_time_us" => 111421 "effective_method" => "GET" "start_time" => 1760007547.5791 "original_url" => "https://admin.atelier-des-prompts.fr/api/categories/51/products" "pause_handler" => Closure(float $duration) {#688 : "Symfony\Component\HttpClient\Response\CurlResponse" : { : CurlHandle {#687 …} : Symfony\Component\HttpClient\Internal\CurlClientState {#673 …} : -9223372036854775798 } } "debug" => """ * Found bundle for host admin.atelier-des-prompts.fr: 0x1551a20 [can multiplex]\n * Re-using existing connection! (#0) with host admin.atelier-des-prompts.fr\n * Connected to admin.atelier-des-prompts.fr (2a02:4780:2a:96b7:e85:2875:c138:1a73) port 443 (#0)\n * Using Stream ID: 3 (easy handle 0x15b3390)\n > GET /api/categories/51/products HTTP/2\r\n Host: admin.atelier-des-prompts.fr\r\n content-type: application/ld+json\r\n accept: application/ld+json\r\n user-agent: Arcanes-Front/1.0\r\n accept-encoding: gzip\r\n \r\n < HTTP/2 200 \r\n < date: Thu, 09 Oct 2025 10:59:04 GMT\r\n < content-type: application/json\r\n < vary: Accept-Encoding\r\n < x-powered-by: PHP/8.2.28\r\n < cache-control: no-cache, private\r\n < x-debug-token: c6e3ea\r\n < x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/c6e3ea\r\n < x-robots-tag: noindex\r\n < content-encoding: gzip\r\n < platform: hostinger\r\n < panel: hpanel\r\n < content-security-policy: upgrade-insecure-requests\r\n < server: hcdn\r\n < alt-svc: h3=":443"; ma=86400\r\n < x-hcdn-request-id: 621662d501ff11873d5bccde6ab8c8b6-int-edge4\r\n < x-hcdn-cache-status: DYNAMIC\r\n < x-hcdn-upstream-rt: 0.098\r\n < \r\n """ ] "response_headers" => [ "HTTP/2 200 " "date: Thu, 09 Oct 2025 10:59:04 GMT" "content-type: application/json" "vary: Accept-Encoding" "x-powered-by: PHP/8.2.28" "cache-control: no-cache, private" "x-debug-token: c6e3ea" "x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/c6e3ea" "x-robots-tag: noindex" "content-encoding: gzip" "platform: hostinger" "panel: hpanel" "content-security-policy: upgrade-insecure-requests" "server: hcdn" "alt-svc: h3=":443"; ma=86400" "x-hcdn-request-id: 621662d501ff11873d5bccde6ab8c8b6-int-edge4" "x-hcdn-cache-status: DYNAMIC" "x-hcdn-upstream-rt: 0.098" ] "response_json" => [ "@context" => "/api/contexts/Product" "@id" => "/api/categories/51/products" "@type" => "hydra:Collection" "hydra:member" => [ [ "id" => 71 "name" => "Agrandissement photo" "slug" => "agrandissement-photo-4640" "price" => 181.89 ] [ "id" => 65 "name" => "Tirage grand format A3" "slug" => "tirage-grand-format-a3-5219" "price" => 125.73 ] [ "id" => 64 "name" => "Développement diapositive" "slug" => "dveloppement-diapositive-2308" "price" => 42.03 ] [ "id" => 62 "name" => "Pellicule couleur 35mm" "slug" => "pellicule-couleur-35mm-2381" "price" => 26.66 ] [ "id" => 60 "name" => "Cadre photo 20x30cm" "slug" => "cadre-photo-20x30cm-2926" "price" => 71.22 ] [ "id" => 59 "name" => "Photos d'identité biométriques" "slug" => "photos-didentit-biomtriques-1600" "price" => 38.39 ] [ "id" => 58 "name" => "Photos d'identité standard" "slug" => "photos-didentit-standard-2355" "price" => 117.04 ] [ "id" => 54 "name" => "Tirage photo 20x30cm" "slug" => "tirage-photo-20x30cm-8517" "price" => 181.89 ] [ "id" => 52 "name" => "Tirage photo 10x15cm" "slug" => "tirage-photo-10x15cm-8363" "price" => 174.37 ] ] "hydra:totalItems" => 9 ] ] |
c6e3ea |
GET | https://admin.atelier-des-prompts.fr/api/main-categories | Profile | |
---|---|---|---|
Request options | [ "headers" => [ "Content-Type" => "application/ld+json" "Accept" => "application/ld+json" "User-Agent" => "Arcanes-Front/1.0" ] "timeout" => 10 "verify_peer" => false "verify_host" => false ] |
||
Response |
200
[ "info" => [ "header_size" => 909 "request_size" => 189 "total_time" => 0.000709 "namelookup_time" => 3.6E-5 "connect_time" => 3.6E-5 "pretransfer_time" => 0.000115 "size_download" => 846.0 "speed_download" => 846000.0 "starttransfer_time" => 0.000584 "primary_ip" => "2a02:4780:2a:96b7:e85:2875:c138:1a73" "primary_port" => 443 "http_version" => 3 "protocol" => 2 "scheme" => "HTTPS" "appconnect_time_us" => 36 "connect_time_us" => 36 "namelookup_time_us" => 36 "pretransfer_time_us" => 115 "starttransfer_time_us" => 584 "total_time_us" => 709 "effective_method" => "GET" "start_time" => 1760007547.6935 "original_url" => "https://admin.atelier-des-prompts.fr/api/main-categories" "pause_handler" => Closure(float $duration) {#785 : "Symfony\Component\HttpClient\Response\CurlResponse" : { : CurlHandle {#789 …} : Symfony\Component\HttpClient\Internal\CurlClientState {#673 …} : -9223372036854775793 } } "debug" => """ * Found bundle for host admin.atelier-des-prompts.fr: 0x1551a20 [can multiplex]\n * Re-using existing connection! (#0) with host admin.atelier-des-prompts.fr\n * Connected to admin.atelier-des-prompts.fr (2a02:4780:2a:96b7:e85:2875:c138:1a73) port 443 (#0)\n * Using Stream ID: 5 (easy handle 0x16f00f0)\n > GET /api/main-categories HTTP/2\r\n Host: admin.atelier-des-prompts.fr\r\n content-type: application/ld+json\r\n accept: application/ld+json\r\n user-agent: Arcanes-Front/1.0\r\n accept-encoding: gzip\r\n \r\n < HTTP/2 200 \r\n < date: Thu, 09 Oct 2025 10:59:04 GMT\r\n < content-type: application/ld+json; charset=utf-8\r\n < vary: Accept-Encoding\r\n < x-powered-by: PHP/8.2.28\r\n < x-content-type-options: nosniff\r\n < x-frame-options: deny\r\n < cache-control: max-age=3600, public, s-maxage=7200\r\n < link: <https://admin.atelier-des-prompts.fr/api/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"\r\n < etag: W/"ef42979769e32bcd"\r\n < cache-tags: /api/categories/37,/api/categories/41,/api/categories/44,/api/categories/48,/api/categories/51,/api/main-categories\r\n < x-debug-token: 35be69\r\n < x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/35be69\r\n < x-robots-tag: noindex\r\n < platform: hostinger\r\n < panel: hpanel\r\n < content-security-policy: upgrade-insecure-requests\r\n < age: 75\r\n < server: hcdn\r\n < alt-svc: h3=":443"; ma=86400\r\n < x-hcdn-request-id: f1a5f3547dff5b503a4498811d7a8b7d-int-edge4\r\n < x-hcdn-cache-status: HIT\r\n < content-encoding: gzip\r\n < \r\n """ ] "response_headers" => [ "HTTP/2 200 " "date: Thu, 09 Oct 2025 10:59:04 GMT" "content-type: application/ld+json; charset=utf-8" "vary: Accept-Encoding" "x-powered-by: PHP/8.2.28" "x-content-type-options: nosniff" "x-frame-options: deny" "cache-control: max-age=3600, public, s-maxage=7200" "link: <https://admin.atelier-des-prompts.fr/api/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"" "etag: W/"ef42979769e32bcd"" "cache-tags: /api/categories/37,/api/categories/41,/api/categories/44,/api/categories/48,/api/categories/51,/api/main-categories" "x-debug-token: 35be69" "x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/35be69" "x-robots-tag: noindex" "platform: hostinger" "panel: hpanel" "content-security-policy: upgrade-insecure-requests" "age: 75" "server: hcdn" "alt-svc: h3=":443"; ma=86400" "x-hcdn-request-id: f1a5f3547dff5b503a4498811d7a8b7d-int-edge4" "x-hcdn-cache-status: HIT" "content-encoding: gzip" ] "response_json" => [ "@context" => "/api/contexts/Category" "@id" => "/api/main-categories" "@type" => "Collection" "totalItems" => 5 "member" => [ [ "@id" => "/api/categories/37" "@type" => "Category" "id" => 37 "name" => "Argentique" "slug" => "argentique" "description" => "Repellendus qui sunt atque sed labore. At enim delectus voluptatem. Ut dicta atque doloremque qui provident." "shortDescription" => "Eos modi cumque labore corrupti rem nisi." "level" => 0 "needCustomerImage" => false ] [ "@id" => "/api/categories/41" "@type" => "Category" "id" => 41 "name" => "Imprimer mes photos" "slug" => "imprimer-mes-photos" "description" => "Eveniet recusandae nobis ab qui reprehenderit eos voluptatem voluptas. Libero ut maiores cupiditate adipisci laudantium." "shortDescription" => "<div>Officia voluptatum perferendis libero corrupti quo magni maxime rerum.</div>" "level" => 0 "needCustomerImage" => true ] [ "@id" => "/api/categories/44" "@type" => "Category" "id" => 44 "name" => "Numérisations" "slug" => "numerisations" "description" => "Ullam recusandae ipsa omnis minima repellendus. Rerum nobis non earum quo. Ratione nihil fuga eos." "shortDescription" => "Aut omnis non alias nihil nihil perspiciatis." "level" => 0 "needCustomerImage" => false ] [ "@id" => "/api/categories/48" "@type" => "Category" "id" => 48 "name" => "Photos d'identité" "slug" => "photos-didentite" "description" => "Voluptatem esse culpa ipsam ea voluptates. Architecto dolores nam consectetur iure facere magnam." "shortDescription" => "Dicta id laudantium assumenda qui." "level" => 0 "needCustomerImage" => false ] [ "@id" => "/api/categories/51" "@type" => "Category" "id" => 51 "name" => "Cadre" "slug" => "cadre" "description" => "Qui voluptatibus distinctio quisquam omnis praesentium. Repudiandae debitis eos blanditiis." "shortDescription" => "Aut omnis quibusdam ipsam pariatur sapiente voluptatem odit." "level" => 0 "needCustomerImage" => false ] ] "search" => [ "@type" => "IriTemplate" "template" => "/api/main-categories{?parent,parent[]}" "variableRepresentation" => "BasicRepresentation" "mapping" => [ [ "@type" => "IriTemplateMapping" "variable" => "parent" "property" => "parent" "required" => false ] [ "@type" => "IriTemplateMapping" "variable" => "parent[]" "property" => "parent" "required" => false ] ] ] ] ] |
35be69 |
GET | https://admin.atelier-des-prompts.fr/api/shops | Profile | |
---|---|---|---|
Request options | [ "headers" => [ "Content-Type" => "application/ld+json" "Accept" => "application/ld+json" "User-Agent" => "Arcanes-Front/1.0" ] "timeout" => 10 "verify_peer" => false "verify_host" => false ] |
||
Response |
200
[ "info" => [ "header_size" => 903 "request_size" => 179 "total_time" => 0.000555 "namelookup_time" => 2.7E-5 "connect_time" => 2.7E-5 "pretransfer_time" => 8.7E-5 "size_download" => 404.0 "speed_download" => 404000.0 "starttransfer_time" => 0.000455 "primary_ip" => "2a02:4780:2a:96b7:e85:2875:c138:1a73" "primary_port" => 443 "http_version" => 3 "protocol" => 2 "scheme" => "HTTPS" "appconnect_time_us" => 27 "connect_time_us" => 27 "namelookup_time_us" => 27 "pretransfer_time_us" => 87 "starttransfer_time_us" => 455 "total_time_us" => 555 "effective_method" => "GET" "start_time" => 1760007547.696 "original_url" => "https://admin.atelier-des-prompts.fr/api/shops" "pause_handler" => Closure(float $duration) {#827 : "Symfony\Component\HttpClient\Response\CurlResponse" : { : CurlHandle {#823 …} : Symfony\Component\HttpClient\Internal\CurlClientState {#673 …} : -9223372036854775790 } } "debug" => """ * Found bundle for host admin.atelier-des-prompts.fr: 0x1551a20 [can multiplex]\n * Re-using existing connection! (#0) with host admin.atelier-des-prompts.fr\n * Connected to admin.atelier-des-prompts.fr (2a02:4780:2a:96b7:e85:2875:c138:1a73) port 443 (#0)\n * Using Stream ID: 7 (easy handle 0x16f1940)\n > GET /api/shops HTTP/2\r\n Host: admin.atelier-des-prompts.fr\r\n content-type: application/ld+json\r\n accept: application/ld+json\r\n user-agent: Arcanes-Front/1.0\r\n accept-encoding: gzip\r\n \r\n < HTTP/2 200 \r\n < date: Thu, 09 Oct 2025 10:59:04 GMT\r\n < content-type: application/ld+json; charset=utf-8\r\n < vary: Accept-Encoding\r\n < x-powered-by: PHP/8.2.28\r\n < x-content-type-options: nosniff\r\n < x-frame-options: deny\r\n < cache-control: max-age=3600, public, s-maxage=7200\r\n < link: <https://admin.atelier-des-prompts.fr/api/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"\r\n < etag: W/"13307e2355c940bd"\r\n < cache-tags: /api/shops/13,/api/banners/1,/api/shops/14,/api/shops/15,/api/shops/16,/api/shops/17,/api/shops/18,/api/shops\r\n < x-debug-token: ddd594\r\n < x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/ddd594\r\n < x-robots-tag: noindex\r\n < platform: hostinger\r\n < panel: hpanel\r\n < content-security-policy: upgrade-insecure-requests\r\n < age: 75\r\n < server: hcdn\r\n < alt-svc: h3=":443"; ma=86400\r\n < x-hcdn-request-id: a2f06db02b45917b563668f949420074-int-edge4\r\n < x-hcdn-cache-status: HIT\r\n < content-encoding: gzip\r\n < \r\n """ ] "response_headers" => [ "HTTP/2 200 " "date: Thu, 09 Oct 2025 10:59:04 GMT" "content-type: application/ld+json; charset=utf-8" "vary: Accept-Encoding" "x-powered-by: PHP/8.2.28" "x-content-type-options: nosniff" "x-frame-options: deny" "cache-control: max-age=3600, public, s-maxage=7200" "link: <https://admin.atelier-des-prompts.fr/api/docs.jsonld>; rel="http://www.w3.org/ns/hydra/core#apiDocumentation"" "etag: W/"13307e2355c940bd"" "cache-tags: /api/shops/13,/api/banners/1,/api/shops/14,/api/shops/15,/api/shops/16,/api/shops/17,/api/shops/18,/api/shops" "x-debug-token: ddd594" "x-debug-token-link: https://admin.atelier-des-prompts.fr/_profiler/ddd594" "x-robots-tag: noindex" "platform: hostinger" "panel: hpanel" "content-security-policy: upgrade-insecure-requests" "age: 75" "server: hcdn" "alt-svc: h3=":443"; ma=86400" "x-hcdn-request-id: a2f06db02b45917b563668f949420074-int-edge4" "x-hcdn-cache-status: HIT" "content-encoding: gzip" ] "response_json" => [ "@context" => "/api/contexts/Shop" "@id" => "/api/shops" "@type" => "Collection" "totalItems" => 6 "member" => [ [ "@id" => "/api/shops/13" "@type" => "Shop" "id" => 13 "name" => "Laboratoire Central Paris" "url" => "laboratoire-central-paris" "banner" => [ "@id" => "/api/banners/1" "@type" => "Banner" "id" => 1 "text" => "COucou" "link" => "https://google.com" "display" => true ] ] [ "@id" => "/api/shops/14" "@type" => "Shop" "id" => 14 "name" => "Arcanes Lab Lyon" "url" => "arcanes-lab-lyon" ] [ "@id" => "/api/shops/15" "@type" => "Shop" "id" => 15 "name" => "Sciences & Matériel Marseille" "url" => "sciences-et-materiel-marseille" ] [ "@id" => "/api/shops/16" "@type" => "Shop" "id" => 16 "name" => "Équipements Pro Toulouse" "url" => "Équipements-pro-toulouse" ] [ "@id" => "/api/shops/17" "@type" => "Shop" "id" => 17 "name" => "Lab Solutions Lille" "url" => "lab-solutions-lille" ] [ "@id" => "/api/shops/18" "@type" => "Shop" "id" => 18 "name" => "Matériel Scientifique Bordeaux" "url" => "materiel-scientifique-bordeaux" ] ] ] ] |
ddd594 |
api.client 0
No requests were made with the "api.client" service.