Resource not accessible by integration: fix GitHub API access
Diagnose missing permissions when reading GitHub data, inspect the permissions response header, and complete approval of updated GitHub App permissions.
Resource not accessible by integration Short answer
Diagnose missing permissions when reading GitHub data, inspect the permissions response header, and complete approval of updated GitHub App permissions.
Diagnosis checked 2026-11-12; sources below.Do this now
- If the data is yours or your use fits the official terms, switch to the official route: GitHub REST API (Public API). No per-call fee for standard REST API use.
- For public GitHub data at volume, run a hosted route instead of patching your own requests: GitHub Repository Metadata & README Extractor. The request below runs it with its published example input through the Apify API (your token, billed at the Store price).
- Compare every route, with fields and prices, on the GitHub page.
Python
from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run_input = {
"mode": "search",
"searchQuery": "stars:>10000 language:python",
"repositoryUrls": [
"https://github.com/apify/crawlee"
],
"sortBy": "stars",
"sortOrder": "desc",
"minStars": 0,
"minForks": 0,
"includeForks": False,
"includeArchived": True,
"maxResults": 30,
"includeReadme": True,
"includeTopics": True,
"includeLanguages": True,
"includeRepoDetails": False,
"includeReleases": False,
"releasesLimit": 10,
"includeContributors": False,
"contributorsLimit": 30,
"includeActivity": False
}
run = client.actor("nimbryxo-studio/github-repository-metadata-and-readme-extractor").call(run_input=run_input)
if run is None:
raise RuntimeError("The Actor run was not found.")
for item in client.dataset(run.default_dataset_id).iterate_items():
print(item) pip install apify-client
JavaScript
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: "<YOUR_APIFY_TOKEN>" });
const input = {
"mode": "search",
"searchQuery": "stars:>10000 language:python",
"repositoryUrls": [
"https://github.com/apify/crawlee"
],
"sortBy": "stars",
"sortOrder": "desc",
"minStars": 0,
"minForks": 0,
"includeForks": false,
"includeArchived": true,
"maxResults": 30,
"includeReadme": true,
"includeTopics": true,
"includeLanguages": true,
"includeRepoDetails": false,
"includeReleases": false,
"releasesLimit": 10,
"includeContributors": false,
"contributorsLimit": 30,
"includeActivity": false
};
const run = await client.actor("nimbryxo-studio/github-repository-metadata-and-readme-extractor").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items); npm install apify-client
cURL
curl -X POST "https://api.apify.com/v2/actors/nimbryxo-studio~github-repository-metadata-and-readme-extractor/run-sync-get-dataset-items" -H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" -d '{"mode":"search","searchQuery":"stars:>10000 language:python","repositoryUrls":["https://github.com/apify/crawlee"],"sortBy":"stars","sortOrder":"desc","minStars":0,"minForks":0,"includeForks":false,"includeArchived":true,"maxResults":30,"includeReadme":true,"includeTopics":true,"includeLanguages":true,"includeRepoDetails":false,"includeReleases":false,"releasesLimit":10,"includeContributors":false,"contributorsLimit":30,"includeActivity":false}' Waits for the run and returns the dataset items (runs over 300 seconds return HTTP 408; start an async run instead).
MCP (AI agents)
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=nimbryxo-studio/github-repository-metadata-and-readme-extractor",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
} Adds this Actor as a tool in an MCP client that takes a remote server URL (Cursor, VS Code, Claude Code) through Apify's hosted MCP server. OAuth sign-in also works without the header. Clients that only start local servers can wrap the URL with npx mcp-remote.
Open GitHub Repository Metadata & README Extractor in Apify Store
Routes that work for GitHub data
The official route first, then the catalogue Actors that fit this problem, by their published fields. Store figures are the publisher's public numbers.
| Route | Core fields | Price / 1K | Success, 30 days | Link |
|---|---|---|---|---|
| Public APIGitHub REST API | not compared | below | Official docs | |
| GitHub Repository Metadata & README Extractor | 5/6 | $0.99 | 1 run, too few to rate | Open in Apify Store |
| GitHub Weekly Trending Repos & Org Repo Finder | 4/6 | $0.99 | 1 run, too few to rate | Open in Apify Store |
| GitHub Repository Language Breakdown Analyzer | 3/6 | $0.99 | 3 runs, too few to rate | Open in Apify Store |
Official price: No per-call fee for standard REST API use. Compare all 12 GitHub routes.
The facts behind the error
| Fact | Value |
|---|---|
| Meaning | The token lacks permissions required by the requested endpoint. |
| HTTP status | GitHub App requests with insufficient permissions return HTTP 403. |
| Diagnosis | Inspect X-Accepted-GitHub-Permissions and the endpoint documentation to identify required permissions. |
| Recovery | Grant the minimum permissions required for the data being requested. |
| Installation approval | After an app requests additional permissions, each installation retains its previous permissions until its account owner approves the change. |
Website pages
Sources
Every dated claim on this page comes from the public sources below. Check the source before you make a business decision on it.
- GitHub REST API troubleshooting — checked 2026-11-12
- Choosing permissions for a GitHub App — checked 2026-11-12
Get GitHub data with a catalogue Actor
GitHub Repository Metadata & README Extractor returns 5 of 6 core GitHub fields at $0.99 per 1,000 results. Compare all 12 GitHub routes.