SocialHolmes

API reference

Snapchat API

Public profiles, stories, highlights, Spotlight videos, lenses and comments.

POST

/api/public/v1/scrape/snapchat/profile#

Public profile details — name, bio, subscriber count, category, website.

Returns profile_api

Parameters

Name Required Description Example
username required Snapchat username, with or without the @. nasa

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/profile \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"username": "nasa"}}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "profile",
  "target": "nasa",
  "url": "https://www.snapchat.com/@nasa",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.

POST

/api/public/v1/scrape/snapchat/story#

Snaps in the live public story. Use `limit` to say how many.

Returns story_api

Parameters

Name Required Description Example
username required Snapchat username, with or without the @. nasa

Takes limit — how many results you want. The run is sized from it, and you are billed for exactly that many.

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/story \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"username": "nasa"}, "limit": 25}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "story",
  "target": "nasa",
  "url": "https://www.snapchat.com/@nasa",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.

POST

/api/public/v1/scrape/snapchat/highlights#

Saved story highlights, each with the snaps inside it. Use `limit` for how many.

Returns highlight_tray_api

Parameters

Name Required Description Example
username required Snapchat username, with or without the @. nasa

Takes limit — how many results you want. The run is sized from it, and you are billed for exactly that many.

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/highlights \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"username": "nasa"}, "limit": 25}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "highlights",
  "target": "nasa",
  "url": "https://www.snapchat.com/@nasa",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.

POST

/api/public/v1/scrape/snapchat/spotlight#

A creator's Spotlight videos, with view and share counts. Use `limit` for how many.

Returns reel_feed_api

Parameters

Name Required Description Example
username required Snapchat username, with or without the @. nasa

Takes limit — how many results you want. The run is sized from it, and you are billed for exactly that many.

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/spotlight \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"username": "nasa"}, "limit": 25}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "spotlight",
  "target": "nasa",
  "url": "https://www.snapchat.com/@nasa",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.

POST

/api/public/v1/scrape/snapchat/lenses#

AR lenses a creator publishes. Use `limit` to say how many.

Returns lens_feed_api

Parameters

Name Required Description Example
username required Snapchat username, with or without the @. nasa

Takes limit — how many results you want. The run is sized from it, and you are billed for exactly that many.

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/lenses \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"username": "nasa"}, "limit": 25}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "lenses",
  "target": "nasa",
  "url": "https://www.snapchat.com/@nasa",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.

POST

/api/public/v1/scrape/snapchat/snap#

One Spotlight video's full record — creator, duration, view, share and comment counts.

Returns post_detail_api

Parameters

Name Required Description Example
snap_id required The id from /spotlight/<id>, as returned by the `spotlight` endpoint. W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/snap \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"snap_id": "W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ"}}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "snap",
  "target": "W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ",
  "url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.

POST

/api/public/v1/scrape/snapchat/comments#

Comments on one Spotlight video. Use `limit` to say how many.

Returns comment_api

Parameters

Name Required Description Example
snap_id required The id from /spotlight/<id>, as returned by the `spotlight` endpoint. W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ

Takes limit — how many results you want. The run is sized from it, and you are billed for exactly that many.

Request

curl -X POST https://socialholmes.com/api/public/v1/scrape/snapchat/comments \
  -H "Authorization: Bearer $SOCIALHOLMES_KEY" \
  -H "Content-Type: application/json" \
  -d '{"parameters": {"snap_id": "W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ"}, "limit": 25}'

Response

202 Accepted
{
  "id": "8f14e45f-ceea-467a-9c2e-1b0f5a4c7d21",
  "status": "queued",
  "platform": "snapchat",
  "endpoint": "comments",
  "target": "W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ",
  "url": "https://www.snapchat.com/spotlight/W7_EDlXWTBiXAEEniNoMPwAAYeG9xcGd0ZWd3AZ14BVv0AZ14BQkrAAAAAQ",
  "result_count": 0,
  "created_at": "2026-08-27T17:55:19Z"
}

This endpoint errs towards returning more rather than less, so expect a few extra rows alongside what you asked for. Everything still comes back typed and parsed the same way.