@socialrouter/sdk 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -48
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +1 -3
- package/dist/client.js.map +1 -1
- package/dist/types.d.ts +6 -3
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ const client = new SocialRouter({
|
|
|
19
19
|
|
|
20
20
|
const result = await client.extractAndWait({
|
|
21
21
|
url: "https://www.linkedin.com/posts/johndoe_ai-sales-1234567890",
|
|
22
|
-
|
|
22
|
+
provider: "apify/linkedin/post.likes",
|
|
23
23
|
limit: 100,
|
|
24
24
|
});
|
|
25
25
|
|
|
@@ -28,46 +28,11 @@ for (const person of result.data) {
|
|
|
28
28
|
}
|
|
29
29
|
```
|
|
30
30
|
|
|
31
|
-
##
|
|
31
|
+
## Provider slugs
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
The `provider` field is a slug of the form `<provider>/<platform>/<type>` — for example `apify/linkedin/profile.info` or `brightdata/instagram/post.likes`. It fully specifies the routing target: which provider, which platform, which extraction.
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
provider/extraction_type
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
### Available Models
|
|
40
|
-
|
|
41
|
-
| Model | Description |
|
|
42
|
-
|-------|-------------|
|
|
43
|
-
| `lobstr/post.likes` | Post likes via Lobstr |
|
|
44
|
-
| `lobstr/post.comments` | Post comments via Lobstr |
|
|
45
|
-
| `lobstr/profile.info` | Profile info via Lobstr |
|
|
46
|
-
| `lobstr/profile.posts` | Profile posts via Lobstr |
|
|
47
|
-
| `apify/post.likes` | Post likes via Apify |
|
|
48
|
-
| `apify/post.comments` | Post comments via Apify |
|
|
49
|
-
| `apify/profile.info` | Profile info via Apify |
|
|
50
|
-
| `apify/profile.posts` | Profile posts via Apify |
|
|
51
|
-
| `apify/profile.followers` | Followers via Apify |
|
|
52
|
-
|
|
53
|
-
Browse all models and pricing at [socialrouter.io/providers](https://socialrouter.io/providers).
|
|
54
|
-
|
|
55
|
-
## Supported Platforms
|
|
56
|
-
|
|
57
|
-
- **LinkedIn** - profiles, posts, likes, comments, followers
|
|
58
|
-
- **Instagram** - profiles, posts, likes, comments, followers
|
|
59
|
-
- **X (Twitter)** - profiles, posts, likes, comments, followers
|
|
60
|
-
- **Reddit** - profiles, posts, likes, comments, followers
|
|
61
|
-
|
|
62
|
-
## Extraction Types
|
|
63
|
-
|
|
64
|
-
| Type | Description |
|
|
65
|
-
|------|-------------|
|
|
66
|
-
| `post.likes` | People who liked/reacted to a post |
|
|
67
|
-
| `post.comments` | People who commented on a post |
|
|
68
|
-
| `profile.info` | Profile metadata (name, bio, company, location) |
|
|
69
|
-
| `profile.posts` | Recent posts from a profile or page |
|
|
70
|
-
| `profile.followers` | Followers of a profile or page |
|
|
35
|
+
Browse the full catalogue (with pricing and copy buttons) at [socialrouter.io/providers](https://www.socialrouter.io/providers).
|
|
71
36
|
|
|
72
37
|
## Configuration
|
|
73
38
|
|
|
@@ -87,7 +52,7 @@ The simplest approach. Launches the extraction and polls automatically until the
|
|
|
87
52
|
```typescript
|
|
88
53
|
const result = await client.extractAndWait({
|
|
89
54
|
url: "https://www.linkedin.com/posts/johndoe_ai-sales-1234567890",
|
|
90
|
-
|
|
55
|
+
provider: "apify/linkedin/post.likes",
|
|
91
56
|
limit: 100,
|
|
92
57
|
});
|
|
93
58
|
|
|
@@ -100,7 +65,7 @@ You can customize the polling behavior:
|
|
|
100
65
|
|
|
101
66
|
```typescript
|
|
102
67
|
const result = await client.extractAndWait(
|
|
103
|
-
{ url: "...",
|
|
68
|
+
{ url: "...", provider: "apify/linkedin/post.likes" },
|
|
104
69
|
5000, // Poll every 5 seconds (default: 3000)
|
|
105
70
|
60000, // Timeout after 60 seconds (default: 120000)
|
|
106
71
|
);
|
|
@@ -110,11 +75,9 @@ const result = await client.extractAndWait(
|
|
|
110
75
|
|
|
111
76
|
```typescript
|
|
112
77
|
await client.extract({
|
|
113
|
-
url: "https://linkedin.com/in/johndoe",
|
|
114
|
-
|
|
115
|
-
limit: 50,
|
|
116
|
-
cache: true, // Enable caching (optional)
|
|
117
|
-
webhook_url: "https://myapp.com/hook", // Async callback URL (optional)
|
|
78
|
+
url: "https://linkedin.com/in/johndoe", // Social media URL
|
|
79
|
+
provider: "apify/linkedin/profile.info", // Service slug (required)
|
|
80
|
+
limit: 50, // Max results (default: 100)
|
|
118
81
|
});
|
|
119
82
|
```
|
|
120
83
|
|
|
@@ -125,7 +88,7 @@ If you prefer to manage polling yourself:
|
|
|
125
88
|
```typescript
|
|
126
89
|
const extraction = await client.extract({
|
|
127
90
|
url: "https://linkedin.com/posts/...",
|
|
128
|
-
|
|
91
|
+
provider: "apify/linkedin/post.likes",
|
|
129
92
|
});
|
|
130
93
|
|
|
131
94
|
console.log(extraction.id); // "ext_abc123"
|
|
@@ -183,7 +146,7 @@ import {
|
|
|
183
146
|
} from "@socialrouter/sdk";
|
|
184
147
|
|
|
185
148
|
try {
|
|
186
|
-
await client.extractAndWait({ url: "...",
|
|
149
|
+
await client.extractAndWait({ url: "...", provider: "apify/linkedin/post.likes" });
|
|
187
150
|
} catch (err) {
|
|
188
151
|
if (err instanceof AuthenticationError) {
|
|
189
152
|
// 401 - Invalid or missing API key
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAUpB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,kBAAkB;IAOtC,4BAA4B;IACtB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,YAAY,EACZ,cAAc,EACd,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAUpB,qBAAa,YAAY;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,kBAAkB;IAOtC,4BAA4B;IACtB,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAQ3D,uDAAuD;IACjD,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAIpD,4DAA4D;IACtD,cAAc,CAClB,OAAO,EAAE,cAAc,EACvB,cAAc,GAAE,MAAa,EAC7B,SAAS,GAAE,MAAe,GACzB,OAAO,CAAC,UAAU,CAAC;IAoBtB,yBAAyB;IACnB,aAAa,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAK9C,0BAA0B;IACpB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAMtD,yBAAyB;IACnB,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC;IAI3C,wBAAwB;IAClB,QAAQ,CAAC,IAAI,GAAE,MAAW,GAAG,OAAO,CAAC,YAAY,CAAC;YAM1C,GAAG;YAIH,IAAI;YAIJ,OAAO;CAoCtB"}
|
package/dist/client.js
CHANGED
|
@@ -12,10 +12,8 @@ export class SocialRouter {
|
|
|
12
12
|
async extract(options) {
|
|
13
13
|
return this.post("/v1/extract", {
|
|
14
14
|
url: options.url,
|
|
15
|
-
type: options.type,
|
|
16
|
-
limit: options.limit ?? 100,
|
|
17
15
|
provider: options.provider,
|
|
18
|
-
|
|
16
|
+
limit: options.limit ?? 100,
|
|
19
17
|
});
|
|
20
18
|
}
|
|
21
19
|
/** Get extraction by ID (for polling async results) */
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAEvD,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,OAAO,CAAS;IAExB,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,wDAAwD;IAExD,4BAA4B;IAC5B,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAa,aAAa,EAAE;YAC1C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AASA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,GACf,MAAM,aAAa,CAAC;AAErB,MAAM,gBAAgB,GAAG,6BAA6B,CAAC;AAEvD,MAAM,OAAO,YAAY;IACf,MAAM,CAAS;IACf,OAAO,CAAS;IAExB,YAAY,MAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,wDAAwD;IAExD,4BAA4B;IAC5B,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,OAAO,IAAI,CAAC,IAAI,CAAa,aAAa,EAAE;YAC1C,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,OAAO,IAAI,CAAC,GAAG,CAAa,eAAe,EAAE,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,4DAA4D;IAC5D,KAAK,CAAC,cAAc,CAClB,OAAuB,EACvB,iBAAyB,IAAI,EAC7B,YAAoB,MAAM;QAE1B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE/C,IAAI,UAAU,CAAC,MAAM,KAAK,WAAW,IAAI,UAAU,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YACxE,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO;QACP,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YACvD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,MAAM,CAAC;QACjD,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,CAAC,EAAE,oBAAoB,SAAS,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,wDAAwD;IAExD,yBAAyB;IACzB,KAAK,CAAC,aAAa;QACjB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAA2B,eAAe,CAAC,CAAC;QACtE,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,WAAW,CAAC,EAAU;QAC1B,OAAO,IAAI,CAAC,GAAG,CAAiB,iBAAiB,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,wDAAwD;IAExD,yBAAyB;IACzB,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,GAAG,CAAiB,qBAAqB,CAAC,CAAC;IACzD,CAAC;IAED,wBAAwB;IACxB,KAAK,CAAC,QAAQ,CAAC,OAAe,EAAE;QAC9B,OAAO,IAAI,CAAC,GAAG,CAAe,0BAA0B,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;IAED,wDAAwD;IAEhD,KAAK,CAAC,GAAG,CAAI,IAAY;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAI,KAAK,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAEO,KAAK,CAAC,IAAI,CAAI,IAAY,EAAE,IAAa;QAC/C,OAAO,IAAI,CAAC,OAAO,CAAI,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,OAAO,CAAI,MAAc,EAAE,IAAY,EAAE,IAAc;QACnE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,CAAC;QAErC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,MAAM;YACN,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,EAAE;gBACtC,cAAc,EAAE,kBAAkB;gBAClC,YAAY,EAAE,wBAAwB;aACvC;YACD,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAChD,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;gBACzC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;aACrE,CAAC,CAAC,CAAC;YAEJ,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;YAE3F,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;gBACnB,KAAK,GAAG;oBACN,MAAM,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;gBACxC,KAAK,GAAG;oBACN,MAAM,IAAI,wBAAwB,CAAC,MAAM,CAAC,CAAC;gBAC7C,KAAK,GAAG,CAAC,CAAC,CAAC;oBACT,MAAM,UAAU,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;oBACxD,MAAM,IAAI,cAAc,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAChF,CAAC;gBACD;oBACE,MAAM,IAAI,iBAAiB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC,IAAI,EAAgB,CAAC;IAClC,CAAC;CACF"}
|
package/dist/types.d.ts
CHANGED
|
@@ -3,10 +3,13 @@ export type Platform = "linkedin" | "instagram" | "x" | "reddit";
|
|
|
3
3
|
export type ExtractionStatus = "pending" | "completed" | "failed";
|
|
4
4
|
export interface ExtractOptions {
|
|
5
5
|
url: string;
|
|
6
|
-
|
|
6
|
+
/**
|
|
7
|
+
* Service slug of the form `<provider>/<platform>/<type>`
|
|
8
|
+
* (e.g. `apify/linkedin/profile.info`). Copy-paste-friendly from the
|
|
9
|
+
* providers page; fully specifies the routing target.
|
|
10
|
+
*/
|
|
11
|
+
provider: string;
|
|
7
12
|
limit?: number;
|
|
8
|
-
provider?: string;
|
|
9
|
-
webhook_url?: string;
|
|
10
13
|
}
|
|
11
14
|
export interface ExtractionRecord {
|
|
12
15
|
name: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,eAAe,GACf,cAAc,GACd,eAAe,GACf,mBAAmB,CAAC;AAExB,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,GAAG,GAAG,QAAQ,CAAC;AACjE,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAElE,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|