Skip to content
scrapeatlas.Dashboard

Get a Substack writer profile

Try in Playground

Retrieve a writer’s public identity, bio, images, audience counts, profile links, publications and public subscriptions.

GET/v1/substack/profilex-api-key
x-api-keystringrequiredheader

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

Query parameters
1
handlestringrequiredquery

Required writer handle, 1–64 characters. Start with a letter, digit or underscore; later characters may also be hyphens.

Exampleexample_writer
Response fields
148
requestIdstring

Request correlation UUID.

Source request attempts, decoded bytes and elapsed milliseconds.

accounting.upstreamRequestsinteger

Number of upstream request attempts.

≥ 0

accounting.responseBytesinteger

Decoded source bytes read during this request.

≥ 0

accounting.durationMsnumber

Elapsed request time in milliseconds.

≥ 0

successboolean

True when usable data is returned; inspect status and coverage.

statusenum

success or partial for usable data; failed or challenged for a failure response.

one of: success, partial

sourceUrlstring

Canonical public URL for the requested publication, post or writer.

absolute HTTPS URL

fetchedAtstring

UTC retrieval timestamp.

Result coverage and extraction warnings.

coverage.sourcestring

Public Substack web data.

coverage.completeboolean

Whether the returned result has no reported omissions.

coverage.warningsstring[]

Warnings that explain partial results or missing fields.

coverage.orderenumoptional

Reported result order: source_order or ranked.

one of: source_order, ranked

Public writer profile details.

profile.idinteger

Numeric writer ID.

0 – 9007199254740991

profile.namestringnullable

Public writer name.

profile.handlestring

Public writer handle.

profile.photo_urlstringnullable

Writer profile image URL.

profile.biostringnullable

Public writer biography.

profile.profile_set_up_atstringnullable

Profile setup timestamp.

profile.profile_disabledbooleannullable

Published disabled-profile flag.

profile.rough_num_free_subscribers_intintegernullable

Source-reported approximate free-subscriber count.

profile.rough_num_free_subscribersstringnullable

Displayed approximate free-subscriber count.

profile.subscriberCountStringstringnullable

Displayed subscriber-count text.

profile.subscriberCountstringnullable

Subscriber-count text.

profile.subscriberCountNumberintegernullable

Numeric subscriber count as reported by Substack.

profile.followerCountintegernullable

Public follower count.

profile.bestseller_tierintegernullable

Writer bestseller tier.

profile.visibleSubscriptionsCountintegernullable

Public subscription count.

profile.subscriptionsTruncatedbooleannullable

Whether Substack marks the subscription list as truncated.

profile.hasPostsbooleannullable

Whether the profile reports posts.

profile.hasActivitybooleannullable

Whether the profile reports activity.

profile.hasLikesbooleannullable

Whether the profile reports likes.

Public external profile links.

up to 100 items

profile.userLinks.urlstringnullable

Public link destination.

profile.userLinks.namestringnullable

Public link name.

profile.userLinks.typestringnullable

Link type.

profile.userLinks.labelstringnullable

Published link label.

profile.userLinks.valuestringnullable

Published link value.

Primary publication record.

profile.primaryPublication.idinteger

Numeric publication ID.

0 – 9007199254740991

profile.primaryPublication.namestring

Publication name.

profile.primaryPublication.subdomainstring

Substack publication subdomain.

profile.primaryPublication.custom_domainstringnullable

Published custom-domain name, or null.

profile.primaryPublication.author_idintegernullable

Publication owner’s numeric user ID.

profile.primaryPublication.author_namestringnullable

Publication owner’s public name.

profile.primaryPublication.author_handlestringnullable

Publication owner’s public handle.

profile.primaryPublication.author_photo_urlstringnullable

Public author profile image URL.

profile.primaryPublication.author_biostringnullable

Public author biography.

profile.primaryPublication.twitter_screen_namestringnullable

Published X username.

profile.primaryPublication.descriptionstringnullable

Publication description.

profile.primaryPublication.hero_textstringnullable

Publication introduction text.

profile.primaryPublication.logo_urlstringnullable

Publication logo URL.

profile.primaryPublication.logo_url_widestringnullable

Wide publication logo URL.

profile.primaryPublication.cover_photo_urlstringnullable

Publication cover image URL.

profile.primaryPublication.created_atstringnullable

Publication creation timestamp.

profile.primaryPublication.languagestringnullable

Publication language code.

profile.primaryPublication.copyrightstringnullable

Published copyright attribution.

profile.primaryPublication.typestringnullable

Publication type as reported by Substack.

profile.primaryPublication.has_postsbooleannullable

Whether the publication reports posts.

profile.primaryPublication.has_podcastbooleannullable

Whether the publication reports a podcast.

profile.primaryPublication.has_recommendationsbooleannullable

Whether the publication reports recommendations.

profile.primaryPublication.podcast_titlestringnullable

Published podcast title.

profile.primaryPublication.podcast_descriptionstringnullable

Published podcast description.

profile.primaryPublication.podcast_feed_urlstringnullable

Published podcast feed URL.

profile.primaryPublication.podcast_art_urlstringnullable

Podcast artwork URL.

profile.primaryPublication.freeSubscriberCountstringnullable

Displayed free-subscriber count text.

profile.primaryPublication.rankingDetailstringnullable

Published subscriber-ranking description.

profile.primaryPublication.author_bestseller_tierintegernullable

Author bestseller tier.

Publication sections in source order.

up to 100 items

profile.primaryPublication.sections.idinteger

Numeric section ID.

0 – 9007199254740991

profile.primaryPublication.sections.namestringnullable

Section name.

profile.primaryPublication.sections.slugstringnullable

Section URL slug.

profile.primaryPublication.sections.descriptionstringnullable

Section description.

profile.primaryPublication.sections.is_podcastbooleannullable

Whether this section is a podcast.

Publications associated with the writer.

up to 100 items

profile.publications.idinteger

Numeric publication ID.

0 – 9007199254740991

profile.publications.namestring

Publication name.

profile.publications.subdomainstring

Substack publication subdomain.

profile.publications.custom_domainstringnullable

Published custom-domain name, or null.

profile.publications.author_idintegernullable

Publication owner’s numeric user ID.

profile.publications.author_namestringnullable

Publication owner’s public name.

profile.publications.author_handlestringnullable

Publication owner’s public handle.

profile.publications.author_photo_urlstringnullable

Public author profile image URL.

profile.publications.author_biostringnullable

Public author biography.

profile.publications.twitter_screen_namestringnullable

Published X username.

profile.publications.descriptionstringnullable

Publication description.

profile.publications.hero_textstringnullable

Publication introduction text.

profile.publications.logo_urlstringnullable

Publication logo URL.

profile.publications.logo_url_widestringnullable

Wide publication logo URL.

profile.publications.cover_photo_urlstringnullable

Publication cover image URL.

profile.publications.created_atstringnullable

Publication creation timestamp.

profile.publications.languagestringnullable

Publication language code.

profile.publications.copyrightstringnullable

Published copyright attribution.

profile.publications.typestringnullable

Publication type as reported by Substack.

profile.publications.has_postsbooleannullable

Whether the publication reports posts.

profile.publications.has_podcastbooleannullable

Whether the publication reports a podcast.

profile.publications.has_recommendationsbooleannullable

Whether the publication reports recommendations.

profile.publications.podcast_titlestringnullable

Published podcast title.

profile.publications.podcast_descriptionstringnullable

Published podcast description.

profile.publications.podcast_feed_urlstringnullable

Published podcast feed URL.

profile.publications.podcast_art_urlstringnullable

Podcast artwork URL.

profile.publications.freeSubscriberCountstringnullable

Displayed free-subscriber count text.

profile.publications.rankingDetailstringnullable

Published subscriber-ranking description.

profile.publications.author_bestseller_tierintegernullable

Author bestseller tier.

Publication sections in source order.

up to 100 items

profile.publications.sections.idinteger

Numeric section ID.

0 – 9007199254740991

profile.publications.sections.namestringnullable

Section name.

profile.publications.sections.slugstringnullable

Section URL slug.

profile.publications.sections.descriptionstringnullable

Section description.

profile.publications.sections.is_podcastbooleannullable

Whether this section is a podcast.

Public subscription publication records.

up to 100 items

profile.subscriptions.idinteger

Numeric publication ID.

0 – 9007199254740991

profile.subscriptions.namestring

Publication name.

profile.subscriptions.subdomainstring

Substack publication subdomain.

profile.subscriptions.custom_domainstringnullable

Published custom-domain name, or null.

profile.subscriptions.author_idintegernullable

Publication owner’s numeric user ID.

profile.subscriptions.author_namestringnullable

Publication owner’s public name.

profile.subscriptions.author_handlestringnullable

Publication owner’s public handle.

profile.subscriptions.author_photo_urlstringnullable

Public author profile image URL.

profile.subscriptions.author_biostringnullable

Public author biography.

profile.subscriptions.twitter_screen_namestringnullable

Published X username.

profile.subscriptions.descriptionstringnullable

Publication description.

profile.subscriptions.hero_textstringnullable

Publication introduction text.

profile.subscriptions.logo_urlstringnullable

Publication logo URL.

profile.subscriptions.logo_url_widestringnullable

Wide publication logo URL.

profile.subscriptions.cover_photo_urlstringnullable

Publication cover image URL.

profile.subscriptions.created_atstringnullable

Publication creation timestamp.

profile.subscriptions.languagestringnullable

Publication language code.

profile.subscriptions.copyrightstringnullable

Published copyright attribution.

profile.subscriptions.typestringnullable

Publication type as reported by Substack.

profile.subscriptions.has_postsbooleannullable

Whether the publication reports posts.

profile.subscriptions.has_podcastbooleannullable

Whether the publication reports a podcast.

profile.subscriptions.has_recommendationsbooleannullable

Whether the publication reports recommendations.

profile.subscriptions.podcast_titlestringnullable

Published podcast title.

profile.subscriptions.podcast_descriptionstringnullable

Published podcast description.

profile.subscriptions.podcast_feed_urlstringnullable

Published podcast feed URL.

profile.subscriptions.podcast_art_urlstringnullable

Podcast artwork URL.

profile.subscriptions.freeSubscriberCountstringnullable

Displayed free-subscriber count text.

profile.subscriptions.rankingDetailstringnullable

Published subscriber-ranking description.

profile.subscriptions.author_bestseller_tierintegernullable

Author bestseller tier.

Publication sections in source order.

up to 100 items

profile.subscriptions.sections.idinteger

Numeric section ID.

0 – 9007199254740991

profile.subscriptions.sections.namestringnullable

Section name.

profile.subscriptions.sections.slugstringnullable

Section URL slug.

profile.subscriptions.sections.descriptionstringnullable

Section description.

profile.subscriptions.sections.is_podcastbooleannullable

Whether this section is a podcast.

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
15
HTTPfailure.codeMeaning
400invalid_requestMissing, duplicated, invalid or unsupported request parameters.
401unauthorizedMissing or invalid service API key.
404not_foundThe requested publication, post or profile was not found.
422restricted_pageThe requested content requires additional access.
422unsupported_pageThe source did not provide the expected record.
502upstream_challengedThe source challenged the request.
502upstream_rate_limitedThe source rate limited the request.
502upstream_errorA source request failed.
502response_too_largeSource data exceeded the response byte limit.
502payload_too_complexSource data exceeded the traversal depth or node limit.
502unsafe_redirectThe source returned an unexpected redirect.
502request_limitThe request exhausted its source-attempt budget.
503busyAll worker request slots are in use.
504timeoutThe request exceeded its deadline.
200partialUsable data was returned with coverage warnings.