{"id":50013686,"url":"https://github.com/profiq/swapi-elixir","last_synced_at":"2026-05-20T02:57:37.276Z","repository":{"id":212136527,"uuid":"726063986","full_name":"profiq/swapi-elixir","owner":"profiq","description":"The Star Wars API, reimplemented in Elixir. Example API for your projects. ","archived":false,"fork":false,"pushed_at":"2025-04-24T14:15:34.000Z","size":2055,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-24T15:27:45.907Z","etag":null,"topics":["api","elixir","openapi","star-wars-api","swapi","tutorial-api"],"latest_commit_sha":null,"homepage":"https://swapi.profiq.com","language":"Elixir","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/profiq.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-12-01T13:09:22.000Z","updated_at":"2025-04-24T14:15:37.000Z","dependencies_parsed_at":"2025-04-24T15:23:43.587Z","dependency_job_id":"7c80c54b-039d-4a6b-bf1b-9d013321805b","html_url":"https://github.com/profiq/swapi-elixir","commit_stats":null,"previous_names":["profiq/swapi-elixir"],"tags_count":16,"template":false,"template_full_name":null,"purl":"pkg:github/profiq/swapi-elixir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profiq%2Fswapi-elixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profiq%2Fswapi-elixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profiq%2Fswapi-elixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profiq%2Fswapi-elixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/profiq","download_url":"https://codeload.github.com/profiq/swapi-elixir/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/profiq%2Fswapi-elixir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33243960,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-19T15:49:41.270Z","status":"online","status_checked_at":"2026-05-20T02:00:07.149Z","response_time":356,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","elixir","openapi","star-wars-api","swapi","tutorial-api"],"created_at":"2026-05-20T02:57:35.617Z","updated_at":"2026-05-20T02:57:37.264Z","avatar_url":"https://github.com/profiq.png","language":"Elixir","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Elixir SWAPI\n![Build status](https://github.com/profiq/swapi-elixir/actions/workflows/build.yml/badge.svg) [![Prod is hosted at swapi.profiq.com](https://img.shields.io/badge/prod-swapi.profiq.com-blue)](https://swapi.profiq.com/) [![Dev is hosted at swapi-dev.profiq.com](https://img.shields.io/badge/dev-swapi--dev.profiq.com-blue)](https://swapi-dev.profiq.com/)\n\nThe [Star Wars API](https://swapi.dev/) (SWAPI), reimplemented in [Elixir](https://elixir-lang.org/).\n\nThis project aims to be almost fully compatible with the original API (https://swapi.dev/), including pagination and search query parameters.\n\n\u003cimg src='https://github.com/profiq/swapi-elixir/assets/8086995/a6f85798-9c95-4d32-a344-99a9572284bd' width='250'\u003e\n\n## Development\n### Local environment\n#### Prerequisites\nThe following software is required for local development:\n* Elixir 1.15\n* Erlang/OTP 26\n* NodeJS 18+\n\n#### Instructions\nTo start the server locally, follow these steps:\n\n* Run `yarn` inside folder `assets` to install JavaScript dependencies\n* Run `mix setup` to install and setup dependencies\n* Start the API endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`\n\nNow you can visit [`localhost:4000`](http://localhost:4000) from your browser.\n\n### Docker\nThe server can also be started under Docker by running `docker compose -f dev/docker-compose.yml up`. When started, the API will be accessible under the same port as when running locally ([`localhost:4000`](http://localhost:4000)).\n\n## Common tasks\n### Updating the Postman collection\n\nThe Postman collection is stored in `priv/static/downloads/swapi.postman_collection.json`. Whenever the API documentation changes, the collection should be updated to match.\n\nYou can generate a new collection file as follows:\n1. Start the server.\n2. Click \"Import\" in the workspace sidebar in Postman, enter the URL to the OpenAPI doc, e.g. `http://localhost:4000/api/openapi` and import the API as a Postman collection.\n3. Open the \"Elixir SWAPI\" collection, go to the Variables tab in the main pane and change the `baseUrl` variable to `https://swapi.profiq.com`.\n4. Right-click the \"Elixir SWAPI\" collection, click \"Export\" and choose the Collection 2.1 format.\n5. Copy the exported collection to `priv/static/downloads/swapi.postman_collection.json`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofiq%2Fswapi-elixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprofiq%2Fswapi-elixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprofiq%2Fswapi-elixir/lists"}