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

  1. 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.
  2. 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).
  3. 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.

Routes for GitHub data
RouteCore fieldsPrice / 1KSuccess, 30 daysLink
Public APIGitHub REST APInot comparedbelowOfficial docs
GitHub Repository Metadata & README Extractor5/6$0.991 run, too few to rateOpen in Apify Store
GitHub Weekly Trending Repos & Org Repo Finder4/6$0.991 run, too few to rateOpen in Apify Store
GitHub Repository Language Breakdown Analyzer3/6$0.993 runs, too few to rateOpen in Apify Store

Official price: No per-call fee for standard REST API use. Compare all 12 GitHub routes.

The facts behind the error

FactValue
MeaningThe token lacks permissions required by the requested endpoint.
HTTP statusGitHub App requests with insufficient permissions return HTTP 403.
DiagnosisInspect X-Accepted-GitHub-Permissions and the endpoint documentation to identify required permissions.
RecoveryGrant the minimum permissions required for the data being requested.
Installation approvalAfter an app requests additional permissions, each installation retains its previous permissions until its account owner approves the change.

Sources

Every dated claim on this page comes from the public sources below. Check the source before you make a business decision on it.

Content updated 2026-11-12Data 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.

Open in Apify Store