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-26T19:06:26Z"
}

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-26T19:06:26Z"
}

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-26T19:06:26Z"
}

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-26T19:06:26Z"
}

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-26T19:06:26Z"
}

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-26T19:06:26Z"
}

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-26T19:06:26Z"
}

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.