A command-line tool for exploring and enumerating Facebook Graph API endpoints with support for all token types. This tool automatically discovers available endpoints and fetches data. While it is possible to query the GET permissions endpoint, this endpoint is authenticated and it requires a Facebook developer account. This tool avoids it by bruteforcing the endpoints. Developed by the Digilol security team to use during penetration tests.
go install github.com/digilolnet/fb-graph-enum@latest
Used for app-level operations and accessing public data.
./fb-graph-explorer YOUR_CLIENT_ID YOUR_CLIENT_SECRET
Used for accessing user-specific data. Requires browser authentication.
./fb-graph-explorer -token user YOUR_CLIENT_ID YOUR_CLIENT_SECRET
Used for managing Facebook Pages. Requires a Page ID and User token with appropriate permissions.
# Authenticate user first, then get page token
./fb-graph-explorer -token page -page YOUR_PAGE_ID YOUR_CLIENT_ID YOUR_CLIENT_SECRET
# Use existing user token
./fb-graph-explorer -token page -page YOUR_PAGE_ID -user-token YOUR_USER_TOKEN YOUR_CLIENT_ID YOUR_CLIENT_SECRET
Used for automated business operations without user interaction.
./fb-graph-explorer -token system_user -system-user YOUR_SYSTEM_USER_ID YOUR_CLIENT_ID YOUR_CLIENT_SECRET
./fb-graph-explorer 1234567890 your_app_secret
./fb-graph-explorer -token user -permissions "public_profile,email,user_posts,user_photos" 1234567890 your_app_secret
./fb-graph-explorer -token page -page 1234567890 -verbose 1234567890 your_app_secret
./fb-graph-explorer -save -output my_responses 1234567890 your_app_secret
./fb-graph-explorer -token user -long-lived 1234567890 your_app_secret
./fb-graph-explorer -token user -port 9000 -callback-path /auth/callback 1234567890 your_app_secret
At the end of execution, you'll see a status table:
ENDPOINT STATUS HAS DATA STATUS CODE ERROR
app ✅ SUCCESS YES 200
app/accounts ❌ FAILED NO 400 (#100) Unsupported get request
me ✅ SUCCESS YES 200
me/photos ⚠️ EMPTY NO 200
*Status Indicators:
- ✅ SUCCESS: Request succeeded and returned data
⚠️ EMPTY: Request succeeded but returned no data- ❌ FAILED: Request failed with an error
When using the -save
flag, responses are saved as JSON files in the specified output directory:
fb_api_responses/
├── app.json
├── me.json
├── edge_me_photos.json
└── ...
- Ensure your app has the required permissions
- Some endpoints require app review from Facebook
- Check that your access token has the necessary scope
- Make sure the callback URL matches your app settings
- Check that the specified port is available
- Verify firewall settings allow local server access
- The tool includes built-in delays to respect rate limits
- If you encounter rate limiting, try running with longer delays between requests