Skip to content
scrapeatlas.Dashboard

README

Try in Playground

Retrieve repository or profile README text. Use scope=repository with a repository URL, or scope=profile with a handle or profile URL.

GET/v1/github/readmex-api-key
x-api-keystringrequiredheader

Your ScrapeAtlas customer key. Create one on /account/ and set SCRAPEATLAS_API_KEY.

Query parameters
3
handlestringquery

GitHub handle, optionally beginning with @; 1–39 characters excluding @.

urlstringquery

Canonical HTTPS github.com URL of the user, repository or issue required by this route.

max 2048 chars

Examplehttps://github.com/example/repo
scopeenumquery

repository (default) or profile. Repository scope uses a repository URL; profile scope uses a handle or profile URL.

one of: repository, profile

Response fields
45
platformstringoptional

Optional.

endpointstringoptional

Optional.

successboolean

Whether retrieval returned usable data.

statusenum

success, partial, failed or challenged.

one of: success, partial

requestIdstring

Request correlation UUID.

sourceUrlstring

Public source URL.

absolute HTTPS URL

fetchedAtstring

UTC fetch time.

Completeness of this bounded response, not complete account enumeration.

coverage.sourceenum

Always included.

one of: public_api, public_html

coverage.completeboolean

Always included.

coverage.warningsstring[]

Always included.

Combined upstream attempts, decoded bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Always included.

≥ 0

accounting.responseBytesinteger

Always included.

≥ 0

accounting.durationMsnumber

Always included.

≥ 0

Route-specific compatibility payload. See endpoint description and research coverage notes.

Always included.

data.content.textstring

Always included.

data.urlstring

Always included.

absolute HTTPS URL

Optional.

data.post.idstring

Always included.

data.post.urlstringnullable

Always included.

Always included.

data.post.content.textstringnullable

Always included.

data.post.content.media_urlsstring[]nullable

Always included.

data.post.content.thumbnail_urlstringnullable

Always included.

data.post.content.duration_secondsnumbernullable

Always included.

Always included.

data.post.author.usernamestringnullable

Always included.

data.post.author.display_namestringnullable

Always included.

data.post.author.avatar_urlstringnullable

Always included.

data.post.author.verifiedbooleannullable

Always included.

Always included.

data.post.engagement.viewsintegernullable

Always included.

data.post.engagement.likesintegernullable

Always included.

data.post.engagement.commentsintegernullable

Always included.

data.post.engagement.sharesintegernullable

Always included.

data.post.engagement.savesintegernullable

Always included.

Always included.

data.post.flags.nsfwbooleannullable

Always included.

data.post.flags.spoilerbooleannullable

Always included.

data.post.flags.pinnedbooleannullable

Always included.

data.post.flags.deletedboolean

Always included.

data.post.published_atstringnullable

Always included.

data.post.extobjectoptional

Optional.

HTTP 200 returns the success variant. Check status: partial means usable data with warnings, and failed or challenged requests carry a failure object described in Errors & responses.

Error codes
8
HTTPfailure.codeMeaning
400invalid_requestInvalid, duplicate or unsupported parameters.
401unauthorizedInvalid worker key.
404not_foundPublic source record unavailable; SocialFetch aliases return data.lookupStatus=not_found with HTTP 200.
429upstream_rate_limitedGitHub throttled retrieval.
502upstream_error upstream_challenged unsupported_pageSource retrieval failed or the source contract changed.
502unsafe_redirect response_too_large payload_too_complex request_limitA fixed safety or resource boundary was reached.
503busyAll worker slots are occupied.
504timeoutTotal deadline expired.