{"id":26107059,"url":"https://github.com/lagden-development/meapi.lagden.dev-archive","last_synced_at":"2026-04-20T00:37:56.517Z","repository":{"id":281482107,"uuid":"945414887","full_name":"Lagden-Development/meapi.lagden.dev-archive","owner":"Lagden-Development","description":"The archive of lagden.dev meapi. (this is pretty poorly written so please excuse it)","archived":false,"fork":false,"pushed_at":"2025-03-09T11:24:13.000Z","size":1559,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-09T12:23:31.524Z","etag":null,"topics":["api","flask","python"],"latest_commit_sha":null,"homepage":"https://meapi.lagden.dev","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Lagden-Development.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-09T11:19:07.000Z","updated_at":"2025-03-09T11:31:32.000Z","dependencies_parsed_at":"2025-03-09T14:15:26.838Z","dependency_job_id":null,"html_url":"https://github.com/Lagden-Development/meapi.lagden.dev-archive","commit_stats":null,"previous_names":["lagden-development/meapi.lagden.dev-archive"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lagden-Development%2Fmeapi.lagden.dev-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lagden-Development%2Fmeapi.lagden.dev-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lagden-Development%2Fmeapi.lagden.dev-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Lagden-Development%2Fmeapi.lagden.dev-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Lagden-Development","download_url":"https://codeload.github.com/Lagden-Development/meapi.lagden.dev-archive/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":242762737,"owners_count":20181266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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","flask","python"],"created_at":"2025-03-09T22:43:03.259Z","updated_at":"2026-04-20T00:37:56.171Z","avatar_url":"https://github.com/Lagden-Development.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MeAPI - Personal API Aggregator\n\n## Project Overview\n\nMeAPI is a web application that allows users to create a personal API to expose and share their service data (like Spotify listening history) through a unified, customizable interface. It provides easy API key management, service toggling, and usage statistics.\n\n\u003e **Note:** This repository is an archive of the MeAPI project which was previously available at meapi.lagden.dev but has since been shut down.\n\n![MeAPI Dashboard](https://meapi.lagden.dev/static/images/dashboard.png)\n\n## Features\n\n- **User Authentication**\n  - Automatic username and password generation\n  - Secure credential storage\n  - Session management\n\n- **API Key Management**\n  - Generate and regenerate API keys\n  - Public and private API endpoints\n  - Copy key functionality with blur protection\n\n- **Service Integration**\n  - Spotify integration to share listening history and currently playing tracks\n  - Enable/disable service toggles\n  - Public/private visibility controls\n  - OAuth2 setup flow for service authorization\n\n- **Dashboard**\n  - Usage statistics and graphs\n  - API request tracking\n  - Account information\n  - Recent activity logs\n\n## Technical Stack\n\n- **Backend**\n  - Flask web framework\n  - MongoDB database\n  - Flask extensions (Session, Minify)\n  - OAuth2 integration\n\n- **Frontend**\n  - Tailwind CSS for styling\n  - JavaScript/jQuery for interactivity\n  - Chart.js for data visualization\n  - D3.js for color schemes and advanced visualizations\n  - Responsive design\n\n## Project Structure\n\n```\n├── app.py                   # Main Flask application\n├── db.py                    # MongoDB connection setup\n├── serve.py                 # Production server using waitress\n├── requirements.txt         # Python dependencies\n├── config.py                # Configuration (not included in repository)\n├── data/\n│   └── services.json        # Service definitions and routes\n├── endpoints/\n│   ├── main_endpoints.py    # Main page routes\n│   ├── service_setup_endpoints.py # Service connection flows\n│   └── api/                 # API endpoints\n│       ├── account_endpoints.py    # User account management\n│       ├── service_endpoints.py    # Service management\n│       └── services/        # Service-specific endpoints\n│           └── spotify_endpoints.py # Spotify API integration\n├── static/\n│   └── css/                 # CSS files\n│       ├── base.css         # Tailwind source\n│       └── tailwind.css     # Compiled CSS\n└── templates/               # HTML templates\n    ├── base.html            # Base template\n    ├── navbar.html          # Navigation component\n    ├── dashboard.html       # Main dashboard\n    ├── login_register.html  # Authentication page\n    ├── api.html             # API management page\n    ├── services.html        # Services listing\n    └── services/            # Service-specific templates\n        └── service.html     # Individual service page\n```\n\n## API Endpoints\n\nMeAPI provides several API endpoints for accessing your service data:\n\n### Spotify Service\n- **Public Endpoint**: `/api/spotify/listening/\u003cstring:uuid\u003e`\n- **Private Endpoint**: `/api/spotify/listening/\u003cstring:uuid\u003e?api_key=\u003cstring:api_key\u003e`\n- **Description**: Returns your current Spotify status and recently played tracks\n\n### Account Management\n- `/api/account/login` - User authentication\n- `/api/account/register` - User registration\n- `/api/account/regenerate_api_key` - Generate new API key\n\n### Service Management\n- `/api/service/\u003cserviceId\u003e/enable` - Enable a service\n- `/api/service/\u003cserviceId\u003e/disable` - Disable a service\n- `/api/service/\u003cserviceId\u003e/make_public` - Make service publicly accessible\n- `/api/service/\u003cserviceId\u003e/make_private` - Restrict service to API key access\n\n## Setup and Installation\n\n⚠️ **Note**: This repository is for reference only as the service has been shut down. If you want to run your own instance, you would need to:\n\n1. Install Python dependencies:\n   ```\n   pip install -r requirements.txt\n   ```\n\n2. Create a `config.py` file with your MongoDB URI and service credentials (not included in the repo)\n\n3. Generate Tailwind CSS:\n   ```\n   npx tailwindcss -i ./static/css/base.css -o ./static/css/tailwind.css\n   ```\n\n4. Run the development server:\n   ```\n   python app.py\n   ```\n\n5. Or use the production server:\n   ```\n   python serve.py\n   ```\n\n## Authentication Flow\n\n1. Users receive randomly generated usernames and passwords\n2. Password is shown only once during registration\n3. If a user forgets their password, they must create a new account\n\n## Setting Up Services\n\n### Spotify\n1. Navigate to Services \u003e Spotify\n2. Click \"Start Setup\"\n3. Authorize MeAPI to access your Spotify data\n4. After authorization, your Spotify listening data will be available via the API\n\n## Usage Examples\n\n### Fetching Spotify Data\n```javascript\n// Public endpoint\nfetch('https://meapi.lagden.dev/api/spotify/listening/your-uuid')\n  .then(response =\u003e response.json())\n  .then(data =\u003e console.log(data));\n\n// Private endpoint with API key\nfetch('https://meapi.lagden.dev/api/spotify/listening/your-uuid?api_key=your-api-key')\n  .then(response =\u003e response.json())\n  .then(data =\u003e console.log(data));\n```\n\n## Security Considerations\n\n- API keys should be kept secure\n- The service uses HTTPS to encrypt data in transit\n- All passwords are hashed before storage\n- Spotify tokens are refreshed automatically\n\n## Credits and License\n\n© 2024 Zachariah Michael Lagden (All Rights Reserved)\n\nThis code is provided as reference only and may not be used, copied, distributed, modified, or sold without the express permission of the author.\n\n## Contact\n\nFor questions about this archived project, you can reach out via:\n- Email: contact@lagden.dev\n- Discord: https://discord.gg/zXumZ5jsBF\n\n---\n\n**MeAPI** was a project that allowed users to easily expose their service data through a personal API. Although it's now shut down, this repository serves as an archive and reference for similar projects.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flagden-development%2Fmeapi.lagden.dev-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flagden-development%2Fmeapi.lagden.dev-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flagden-development%2Fmeapi.lagden.dev-archive/lists"}