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\" => [\"9ea90f223e07dc78-FRA\"],\n \"connection\" => [\"keep-alive\"],\n \"content-type\" => [\"application/json; charset=utf-8\"],\n \"date\" => [\"Sat, 11 Apr 2026 09:45:33 GMT\"],\n \"etag\" => [\"W/\\\"a6-jYnWaMTyHUNGMhqUfycOwqdC62M\\\"\"],\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=z9HCWxpeUld0e%2Bzjm3ektArX3mO%2FhbvxiYFdtEF3XD3aHYUXA%2B3mPi2u5Z6ZcRzV%2BmEciIaV9tL%2FA1U5CSATDInVA56qo65GmMhP0St3o3dKEgJYqc70ox4CdBI4g7tJ1dCwjA%3D%3D\\\"}]}\"],\n \"server\" => [\"cloudflare\"],\n \"server-timing\" => [\"cfCacheStatus;desc=\\\"DYNAMIC\\\"\",\n \"cfEdge;dur=1,cfOrigin;dur=125\"],\n \"transfer-encoding\" => [\"chunked\"],\n \"x-cloud-trace-context\" => [\"cfebc9d0164b7314dfe6fd075ccc3968\"]\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-11T09:45:33.856Z\"\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_info/2\n (stdlib 7.1) gen_server.erl:2434: :gen_server.try_handle_info/3\n (stdlib 7.1) gen_server.erl:2420: :gen_server.handle_msg/3\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"