플랫폼 인텔리전스 API
Substack API
서브스택은 수백만 명의 독자에게 도달하고 500만 개 이상의 유료 구독을 지원하며, 뉴스레터, 에세이, 팟캐스트 및 비디오를 통해 사고 리더십, 소유된 청중, 독자 직거래 수익을 가능하게 합니다.
API 참조 버전: 1.0.0 10 엔드포인트 인증
기본 URL
https://api.pressmonitor.com/substack/v1 인증
모든 요청은 Bearer 토큰 인증을 사용합니다. 각 호출에 Authorization 헤더를 추가하세요.
Authorization: Bearer YOUR_TOKEN GET
/feed 피드
Feed
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| cursor | integer | query | 아니요 | 커서 |
| tab | string | query | 아니요 | 탭 |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/feed?cursor=SOME_INTEGER_VALUE&tab=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/feed?cursor=SOME_INTEGER_VALUE&tab=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/feed" querystring = {"cursor":"SOME_INTEGER_VALUE","tab":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/feed?cursor=SOME_INTEGER_VALUE&tab=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/feed?cursor=SOME_INTEGER_VALUE&tab=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/profile-activity 프로필 활동
Profile Activity
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| profile_id | string | query | 예 | 프로필 ID |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/profile-activity?profile_id=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/profile-activity?profile_id=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/profile-activity" querystring = {"profile_id":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/profile-activity?profile_id=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/profile-activity?profile_id=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/profile-posts 프로필 게시물
Profile Posts
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| profile_id | string | query | 예 | 프로필 ID |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/profile-posts?profile_id=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/profile-posts?profile_id=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/profile-posts" querystring = {"profile_id":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/profile-posts?profile_id=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/profile-posts?profile_id=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/profile-public 프로필 공개
Profile Public
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| handle | string | query | 예 | 핸들 |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/profile-public?handle=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/profile-public?handle=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/profile-public" querystring = {"handle":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/profile-public?handle=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/profile-public?handle=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/reader-comment 독자 댓글
Reader Comment
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| comment_id | string | query | 예 | 댓글 ID |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/reader-comment?comment_id=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/reader-comment?comment_id=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/reader-comment" querystring = {"comment_id":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/reader-comment?comment_id=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/reader-comment?comment_id=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/reader-comment-replies 독자 댓글 답글
Reader Comment Replies
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| comment_id | string | query | 예 | 댓글 ID |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/reader-comment-replies?comment_id=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/reader-comment-replies?comment_id=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/reader-comment-replies" querystring = {"comment_id":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/reader-comment-replies?comment_id=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/reader-comment-replies?comment_id=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/reader-post 독자 게시물
Reader Post
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| post_id | string | query | 예 | 게시물 ID |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/reader-post?post_id=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/reader-post?post_id=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/reader-post" querystring = {"post_id":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/reader-post?post_id=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/reader-post?post_id=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/search-people 사람 검색
Search People
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| query | string | query | 예 | 검색 쿼리 |
| page | integer | query | 아니요 | 페이지 |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/search-people?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/search-people?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/search-people" querystring = {"query":"SOME_STRING_VALUE","page":"SOME_INTEGER_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/search-people?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/search-people?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/search-post 게시물 검색
Search Post
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| query | string | query | 예 | 검색 쿼리 |
| page | integer | query | 아니요 | 페이지 |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/search-post?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/search-post?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/search-post" querystring = {"query":"SOME_STRING_VALUE","page":"SOME_INTEGER_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/search-post?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/search-post?query=SOME_STRING_VALUE&page=SOME_INTEGER_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공
GET
/search-top 상위 검색
Search Top
매개변수
| 이름 | 유형 | 위치 | 필수 | 설명 |
|---|---|---|---|---|
| query | string | query | 예 | 검색 쿼리 |
코드 예제
curl --request GET \ --url 'https://api.pressmonitor.com/substack/v1/search-top?query=SOME_STRING_VALUE' const http = require("https"); const options = { "method": "GET", "hostname": "api.pressmonitor.com", "port": null, "path": "/substack/v1/search-top?query=SOME_STRING_VALUE", "headers": {} }; const req = http.request(options, function (res) { const chunks = []; res.on("data", function (chunk) { chunks.push(chunk); }); res.on("end", function () { const body = Buffer.concat(chunks); console.log(body.toString()); }); }); req.end(); import requests url = "https://api.pressmonitor.com/substack/v1/search-top" querystring = {"query":"SOME_STRING_VALUE"} response = requests.request("GET", url, params=querystring) print(response.text) <?php $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "https://api.pressmonitor.com/substack/v1/search-top?query=SOME_STRING_VALUE", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "GET", ]); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); if ($err) { echo "cURL Error #:" . $err; } else { echo $response; } OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder() .url("https://api.pressmonitor.com/substack/v1/search-top?query=SOME_STRING_VALUE") .get() .build(); Response response = client.newCall(request).execute(); 응답
200 성공