GET /animals/dogs/breeds
Saage a complete list of all recognized dog breeds with sub-breeds where applicable. Tagastab breed names organized hierarchically. Kasulik dog breed identification apps, pet adoption platforms, breed comparison tools, and veterinary reference applications. Andmed Dog CEO API covering 100+ breeds.
curl https://nordapi.ee/api/v1/animals/dogs/breeds
HTTP 500: "# CaseClauseError at GET /api/v1/animals/dogs/breeds\n\nException:\n\n ** (CaseClauseError) no case clause matching:\n \n {:ok,\n %Req.Response{\n status: 403,\n headers: %{\n \"access-control-allow-origin\" => [\"*\"],\n \"alt-svc\" => [\"h3=\\\":443\\\"; ma=86400\"],\n \"cf-cache-status\" => [\"DYNAMIC\"],\n \"cf-ray\" => [\"9e982ef76fda1e52-FRA\"],\n \"connection\" => [\"keep-alive\"],\n \"content-type\" => [\"application/json; charset=utf-8\"],\n \"date\" => [\"Thu, 09 Apr 2026 08:36:19 GMT\"],\n \"etag\" => [\"W/\\\"a6-B9LUIRCWseGBsZ/v86EtZmySdiw\\\"\"],\n \"nel\" => [\"{\\\"report_to\\\":\\\"cf-nel\\\",\\\"success_fraction\\\":0.0,\\\"max_age\\\":604800}\"],\n \"report-to\" => [\"{\\\"group\\\":\\\"cf-nel\\\",\\\"max_age\\\":604800,\\\"endpoints\\\":[{\\\"url\\\":\\\"https://a.nel.cloudflare.com/report/v4?s=f4TU43JTWBNiiZCEY6diPXmLIx1d96ZQ6QCY%2FJl83e%2B%2BcEW67uLGXkfldQLrf%2B69qBeX5pcVutrlprr%2Brwsxp9LcCgB1gwsdFjgf%2FffNGYNEnTfM67ZYte3WCGACUlUZyu5XjQ%3D%3D\\\"}]}\"],\n \"server\" => [\"cloudflare\"],\n \"server-timing\" => [\"cfCacheStatus;desc=\\\"DYNAMIC\\\"\",\n \"cfEdge;dur=2,cfOrigin;dur=124\"],\n \"transfer-encoding\" => [\"chunked\"],\n \"x-cloud-trace-context\" => [\"4b39cf0ce69a20f5e6e99ae6817c4c3a\"]\n },\n body: %{\n \"error\" => \"Forbidden\",\n \"message\" => \"Authentication required. Please provide a valid API key.\",\n \"path\" => \"/v1/breeds\",\n \"statusCode\" => 403,\n \"timestamp\" => \"2026-04-09T08:36:19.813Z\"\n },\n trailers: %{},\n private: %{}\n }}\n \n (app 0.1.0) lib/app/animals.ex:5: App.Animals.dog_breeds/0\n (app 0.1.0) lib/app_web/controllers/api/v1/animals_controller.ex:9: AppWeb.API.V1.AnimalsController.dog_breeds/2\n (app 0.1.0) lib/app_web/controllers/api/v1/animals_controller.ex:1: AppWeb.API.V1.AnimalsController.action/2\n (app 0.1.0) lib/app_web/controllers/api/v1/animals_controller.ex:1: AppWeb.API.V1.AnimalsController.phoenix_controller_pipeline/2\n (phoenix 1.8.5) lib/phoenix/router.ex:416: Phoenix.Router.__call__/5\n (app 0.1.0) lib/app_web/endpoint.ex:1: AppWeb.Endpoint.plug_builder_call/2\n (app 0.1.0) deps/plug/lib/plug/debugger.ex:155: AppWeb.Endpoint.\"call (overridable 3)\"/2\n (app 0.1.0) lib/app_web/endpoint.ex:1: AppWeb.Endpoint.call/2\n (phoenix 1.8.5) lib/phoenix/endpoint/sync_code_reload_plug.ex:22: Phoenix.Endpoint.SyncCodeReloadPlug.do_call/4\n (bandit 1.10.3) lib/bandit/pipeline.ex:131: Bandit.Pipeline.call_plug!/2\n (bandit 1.10.3) lib/bandit/pipeline.ex:42: Bandit.Pipeline.run/5\n (bandit 1.10.3) lib/bandit/http1/handler.ex:13: Bandit.HTTP1.Handler.handle_data/3\n (bandit 1.10.3) lib/bandit/delegating_handler.ex:18: Bandit.DelegatingHandler.handle_data/3\n (bandit 1.10.3) lib/bandit/delegating_handler.ex:8: Bandit.DelegatingHandler.handle_continue/2\n (stdlib 7.1) gen_server.erl:2424: :gen_server.try_handle_continue/3\n (stdlib 7.1) gen_server.erl:2291: :gen_server.loop/4\n (stdlib 7.1) proc_lib.erl:333: :proc_lib.init_p_do_apply/3\n \n\n## Connection details\n\n### Params\n\n %{}\n\n### Request info\n\n * URI: http://localhost:4000/api/v1/animals/dogs/breeds\n * Query string: \n\n### Headers\n \n * accept-encoding: gzip\n * host: localhost:4000\n * user-agent: req/0.5.17\n\n### Session\n\n %{}\n"