{"id":19302401,"url":"https://github.com/dryewo/buergeramt-sniper","last_synced_at":"2026-01-23T05:36:13.219Z","repository":{"id":78238920,"uuid":"43673972","full_name":"dryewo/buergeramt-sniper","owner":"dryewo","description":"Automated appointment getter for https://service.berlin.de/dienstleistungen/","archived":false,"fork":false,"pushed_at":"2016-09-14T07:08:03.000Z","size":51,"stargazers_count":103,"open_issues_count":5,"forks_count":5,"subscribers_count":8,"default_branch":"master","last_synced_at":"2025-04-22T10:33:48.229Z","etag":null,"topics":["appointment","burgeramt"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dryewo.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}},"created_at":"2015-10-05T08:53:26.000Z","updated_at":"2024-01-08T12:18:28.000Z","dependencies_parsed_at":"2023-02-25T15:15:11.702Z","dependency_job_id":null,"html_url":"https://github.com/dryewo/buergeramt-sniper","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dryewo/buergeramt-sniper","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Fbuergeramt-sniper","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Fbuergeramt-sniper/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Fbuergeramt-sniper/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Fbuergeramt-sniper/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dryewo","download_url":"https://codeload.github.com/dryewo/buergeramt-sniper/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dryewo%2Fbuergeramt-sniper/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28680971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-23T04:33:33.518Z","status":"ssl_error","status_checked_at":"2026-01-23T04:33:30.433Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["appointment","burgeramt"],"created_at":"2024-11-09T23:21:48.964Z","updated_at":"2026-01-23T05:36:13.200Z","avatar_url":"https://github.com/dryewo.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# buergeramt-sniper\n\nA useful tool that helps to get an appointment at Berlin public services (https://service.berlin.de/dienstleistungen/)\n\nSometimes you need to get an appointment at Berlin Bürgeramt, for example when you have just arrived in Germany and need to register in order to be able to open a bank account in order to be able to receive your salary. It usually has to be done within first 10 days of the month.\n\nThis service is called **\"Anmeldung einer Wohnung\"**.\n\nAnd when you go to https://service.berlin.de/dienstleistung/120686/ to pick a time to visit, you discover that the earliest available time is 2 months from now, which does not help too much — you need it now, not after 2 months.\n\nThere are 3 real options:\n\n- Go to the nearest Bürgeramt at 7am, stand ~2 hours in the huge line and hope that there someone won't show up on his time and you get served instead of him.\n- Continuously refresh (F5) the calendar page, so that if someone cancels his appointment, you are able to take it very quickly. But be aware, there are many people doing this. Usually takes several hours until you succeed.\n- Use **buergeramt-sniper**, that will do all the page F5ing and form filling for you.\n\n## Installation\n\n- Install [Leiningen](http://leiningen.org/) to be able to use Clojure.\n- Clone the repo.\n\nIt is also highly recommended to use [Tor](https://www.torproject.org/docs/documentation.html.en) for IP address cycling, because otherwise there is a chance of being banned for too many requests (HTTP 429).\n\n    $ brew install tor\n\nor\n\n    $ sudo apt-get install -y tor\n\n## Precautions\n\n- Use `--dry-run` parameter to try things out\n- Use Tor and `--socks` parameter for anonimizing\n\n## Usage\n\nFirst go to (https://service.berlin.de/dienstleistungen/) and choose the service that you are trying to get an appointment to.\nThe page should have **Termin berlinweit suchen** button on the right.\nCopy its URL (should look like `https://service.berlin.de/dienstleistung/120686/`).\n\nTry to find at least one available time for this service and open the form page. Look into page source and find the names of the necessary text inputs. Usually they look like this:\n\n```\n\u003cinput type=\"text\" class=\"span12\" name=\"Nachname\" id=\"Nachname\" value=\"\" maxlength=\"50\" tabindex=\"5\"\u003e\n```\n\nUsually there are 3 important inputs, namely:\n\n- `Nachname`\n- `EMail`\n- either `Anmerkung` or `telefonnummer_fuer_rueckfragen`\n\nCreate a file `sniper.yaml` in the project root and put there the strings that you are going to provide to that form when the appointment will be found for you, for example:\n\n```\nNachname: Michael Jackson\nEMail: michael.jackson@example.com\ntelefonnummer_fuer_rueckfragen: \"+4915781399988\"\n```\n\nBefore starting the **buergeramt-sniper**, run Tor in a separate terminal session:\n\n    $ tor MaxCircuitDirtiness 60\n\nTor starts to listen on port 9050 by default, works as a SOCKS proxy and changes IPs every 60 seconds. After you're done, you can stop it with `Ctrl-C`.\n\nThen finally run the **buergeramt-sniper** and wait for it to find an appointment for you.\n\n    $ lein run https://service.berlin.de/dienstleistung/120686/\n\nSee **Options** and **Examples** sections for more information.\n\n## Options\n\n```\nUsage: lein run -- [options] service-url\n\nOptions:\n  -s, --start-date \u003cYYYY-MM-dd\u003e               Start of the desired date interval (inclusive).\n  -e, --end-date \u003cYYYY-MM-dd\u003e                 End of the desired date interval (inclusive).\n  -c, --config CONFIG_FILE       sniper.yaml  Config file name.\n      --dry-run                               Look for the time, but don't book it when it's found.\n      --socks \u003chost:port\u003e                     Use SOCKS proxy for scanning (to avoid banning). The actual booking request will be made directly.\n  -h, --help                                  Show this help message\n```\n\n## Examples\n\n```\n$ lein run -- --socks localhost:9050 \"https://service.berlin.de/dienstleistung/120686\" --dry-run -s 2015-10-06 -e 2015-10-08\n# Or\n$ java -jar target/uberjar/buergeramt-sniper.jar --socks localhost:9050 \"https://service.berlin.de/dienstleistung/120686\" --dry-run -s 2015-10-06 -e 2015-10-08\n```\n\n## Known issues and limitations\n\n1. No scanning of all available dates, just those which are seen on the initial calendar page (usually the current month and the month after). But taking into account the most requested use case (need an appointment in the next couple of days) that is enough. Also it reduces the number of necessary requests.\n\n## Donations\n\nIf you like this project, the best thing you can do for me is learn Clojure. Clojure is awesome, I want more people to do it.\n\nLong live Clojure!\n\n## License\n\nCopyright © 2015 Dmitrii Balakhonskii\n\nDistributed under the Eclipse Public License either version 1.0 or (at\nyour option) any later version.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdryewo%2Fbuergeramt-sniper","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdryewo%2Fbuergeramt-sniper","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdryewo%2Fbuergeramt-sniper/lists"}