@smartlyqofficial/cli 0.1.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/LICENSE +21 -0
- package/README.md +354 -0
- package/dist/cli.js +505 -0
- package/dist/index.cjs +570 -0
- package/dist/index.d.cts +90 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.js +517 -0
- package/package.json +66 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 SmartlyQ
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,354 @@
|
|
|
1
|
+
# SmartlyQ CLI
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/@smartlyqofficial/cli)
|
|
4
|
+
|
|
5
|
+
The official command line for the [SmartlyQ API](https://docs.smartlyq.com) - social posting and scheduling, AI content generation (articles, images, video, audio, presentations), SEO research, CRM, chatbots, and more, from one API key.
|
|
6
|
+
|
|
7
|
+
Built on the official [Node.js SDK](https://www.npmjs.com/package/@smartlyqofficial/node): every SDK method is a CLI command.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install -g @smartlyqofficial/cli
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
Requires Node.js 18 or newer.
|
|
16
|
+
|
|
17
|
+
## Login
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
smartlyq login
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
You are prompted for your API key (input is not echoed); it is stored in `~/.smartlyq/config.json` with owner-only permissions. Get a key from your [Developer Dashboard](https://app.smartlyq.com) - keys look like `sqk_live_xxxxxxxxxxxx` (production) or `sqk_test_xxxxxxxxxxxx` (sandbox - free simulated responses, no charges).
|
|
24
|
+
|
|
25
|
+
Alternatively set `SMARTLYQ_API_KEY`, or pass `--api-key` per command. Resolution order: `--api-key` flag, then the environment variable, then the config file. `smartlyq logout` deletes the stored key.
|
|
26
|
+
|
|
27
|
+
## Usage
|
|
28
|
+
|
|
29
|
+
Commands mirror the SDK surface: `smartlyq <resource> <method> [pathArgs...] [flags]`.
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
# Who am I?
|
|
33
|
+
smartlyq account get-me
|
|
34
|
+
|
|
35
|
+
# Publish a social post right now
|
|
36
|
+
smartlyq social create-post --data '{"text":"Hello from the SmartlyQ CLI!","account_ids":["acc_123"]}'
|
|
37
|
+
|
|
38
|
+
# Generate an image with AI (returns a job)
|
|
39
|
+
smartlyq images generate --data '{"prompt":"A minimalist product shot of a smart speaker"}'
|
|
40
|
+
|
|
41
|
+
# Poll the job until it completes
|
|
42
|
+
smartlyq jobs get job_abc123
|
|
43
|
+
|
|
44
|
+
# SEO keyword research
|
|
45
|
+
smartlyq seo keyword-research --data '{"keyword":"ai marketing","location":"United States"}'
|
|
46
|
+
|
|
47
|
+
# List draft articles, page 2
|
|
48
|
+
smartlyq articles list --query 'status=draft&page=2'
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Request bodies can also come from a file or stdin:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
smartlyq social create-post --data @post.json
|
|
55
|
+
cat post.json | smartlyq social create-post --data -
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
`smartlyq --help` lists all resources, `smartlyq <resource> --help` lists its methods, and `smartlyq <resource> <method> --help` shows the path arguments and the endpoint it calls.
|
|
59
|
+
|
|
60
|
+
## Flags
|
|
61
|
+
|
|
62
|
+
| Flag | Description |
|
|
63
|
+
| --- | --- |
|
|
64
|
+
| `--data <json>` | Request body as JSON. `@file.json` reads a file, `-` reads stdin. |
|
|
65
|
+
| `--query <query>` | Query parameters as `k=v&k2=v2` pairs or a JSON object. |
|
|
66
|
+
| `--profile <id>` | Act on behalf of a managed Profile (sent as `X-Profile-Id`). |
|
|
67
|
+
| `--idempotency-key <key>` | Idempotency key for safely retrying writes. |
|
|
68
|
+
| `--api-key <key>` | API key for this invocation (overrides env and config file). |
|
|
69
|
+
| `--base-url <url>` | API base URL. Defaults to `https://api.smartlyq.com/v1`. |
|
|
70
|
+
| `--output <mode>` | `pretty` (indented JSON, default) or `json` (compact). |
|
|
71
|
+
| `--timeout <ms>` | Request timeout in milliseconds. |
|
|
72
|
+
|
|
73
|
+
Errors print to stderr as `Error <status> <code>: <message> (request <id>)` and exit with code 1.
|
|
74
|
+
|
|
75
|
+
## Command Reference
|
|
76
|
+
|
|
77
|
+
Full request/response documentation lives at [docs.smartlyq.com](https://docs.smartlyq.com).
|
|
78
|
+
|
|
79
|
+
<!-- BEGIN GENERATED REFERENCE -->
|
|
80
|
+
|
|
81
|
+
### Account
|
|
82
|
+
|
|
83
|
+
| Command | Endpoint | Description |
|
|
84
|
+
| --- | --- | --- |
|
|
85
|
+
| `smartlyq account get-me` | `GET /me` | Get current user profile |
|
|
86
|
+
| `smartlyq account get-me-usage [--query <query>]` | `GET /me/usage` | Get usage summary |
|
|
87
|
+
| `smartlyq account get-me-balance` | `GET /me/balance` | Get wallet balance |
|
|
88
|
+
|
|
89
|
+
### AI Captain
|
|
90
|
+
|
|
91
|
+
| Command | Endpoint | Description |
|
|
92
|
+
| --- | --- | --- |
|
|
93
|
+
| `smartlyq captain send-message --data <json>` | `POST /captain/messages` | Send AI Captain message |
|
|
94
|
+
| `smartlyq captain list-conversations [--query <query>]` | `GET /captain/conversations` | List AI Captain conversations |
|
|
95
|
+
| `smartlyq captain get-conversation <conversation-id>` | `GET /captain/conversations/{conversation_id}` | Get AI Captain conversation |
|
|
96
|
+
|
|
97
|
+
### Analytics
|
|
98
|
+
|
|
99
|
+
| Command | Endpoint | Description |
|
|
100
|
+
| --- | --- | --- |
|
|
101
|
+
| `smartlyq analytics get-overview [--query <query>]` | `GET /analytics/overview` | Get analytics overview |
|
|
102
|
+
| `smartlyq analytics get-posts [--query <query>]` | `GET /analytics/posts` | Get post analytics |
|
|
103
|
+
| `smartlyq analytics get-account <account-id> [--query <query>]` | `GET /analytics/accounts/{account_id}` | Get account analytics |
|
|
104
|
+
|
|
105
|
+
### Articles
|
|
106
|
+
|
|
107
|
+
| Command | Endpoint | Description |
|
|
108
|
+
| --- | --- | --- |
|
|
109
|
+
| `smartlyq articles generate --data <json>` | `POST /articles/generate` | Generate article |
|
|
110
|
+
| `smartlyq articles list [--query <query>]` | `GET /articles` | List articles |
|
|
111
|
+
| `smartlyq articles get <article-id>` | `GET /articles/{article_id}` | Get article |
|
|
112
|
+
| `smartlyq articles delete <article-id>` | `DELETE /articles/{article_id}` | Delete article |
|
|
113
|
+
|
|
114
|
+
### Audio
|
|
115
|
+
|
|
116
|
+
| Command | Endpoint | Description |
|
|
117
|
+
| --- | --- | --- |
|
|
118
|
+
| `smartlyq audio text-to-speech --data <json>` | `POST /audio/text-to-speech` | Text to speech |
|
|
119
|
+
| `smartlyq audio speech-to-text --data <json>` | `POST /audio/speech-to-text` | Speech to text |
|
|
120
|
+
| `smartlyq audio get <audio-id>` | `GET /audio/{audio_id}` | Get audio |
|
|
121
|
+
|
|
122
|
+
### Chatbot
|
|
123
|
+
|
|
124
|
+
| Command | Endpoint | Description |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| `smartlyq chatbots list [--query <query>]` | `GET /chatbots` | List chatbots |
|
|
127
|
+
| `smartlyq chatbots create --data <json>` | `POST /chatbots` | Create chatbot |
|
|
128
|
+
| `smartlyq chatbots get <id>` | `GET /chatbots/{id}` | Get chatbot |
|
|
129
|
+
| `smartlyq chatbots update <id> --data <json>` | `PATCH /chatbots/{id}` | Update chatbot |
|
|
130
|
+
| `smartlyq chatbots delete <id>` | `DELETE /chatbots/{id}` | Delete chatbot |
|
|
131
|
+
| `smartlyq chatbots train <id>` | `POST /chatbots/{id}/train` | Start chatbot training |
|
|
132
|
+
| `smartlyq chatbots get-train-status <id>` | `GET /chatbots/{id}/train-status` | Get chatbot training status |
|
|
133
|
+
| `smartlyq chatbots send-message <id> --data <json>` | `POST /chatbots/{id}/messages` | Send chatbot message |
|
|
134
|
+
| `smartlyq chatbots list-conversations <id> [--query <query>]` | `GET /chatbots/{id}/conversations` | List chatbot conversations |
|
|
135
|
+
| `smartlyq chatbots get-conversation-messages <id> <conv-id>` | `GET /chatbots/{id}/conversations/{conv_id}/messages` | Get conversation messages |
|
|
136
|
+
|
|
137
|
+
### Comments
|
|
138
|
+
|
|
139
|
+
| Command | Endpoint | Description |
|
|
140
|
+
| --- | --- | --- |
|
|
141
|
+
| `smartlyq comments list [--query <query>]` | `GET /social/comments` | List comments |
|
|
142
|
+
| `smartlyq comments reply-to <comment-id> --data <json>` | `POST /social/comments/{comment_id}/reply` | Reply to a comment |
|
|
143
|
+
| `smartlyq comments hide <comment-id>` | `POST /social/comments/{comment_id}/hide` | Hide or unhide a comment |
|
|
144
|
+
| `smartlyq comments delete <comment-id>` | `DELETE /social/comments/{comment_id}` | Delete a comment |
|
|
145
|
+
|
|
146
|
+
### Content
|
|
147
|
+
|
|
148
|
+
| Command | Endpoint | Description |
|
|
149
|
+
| --- | --- | --- |
|
|
150
|
+
| `smartlyq content rewrite --data <json>` | `POST /content/rewrite` | Rewrite content |
|
|
151
|
+
| `smartlyq content generate-caption [--data <json>]` | `POST /content/caption` | Generate a social caption |
|
|
152
|
+
|
|
153
|
+
### CRM Contacts
|
|
154
|
+
|
|
155
|
+
| Command | Endpoint | Description |
|
|
156
|
+
| --- | --- | --- |
|
|
157
|
+
| `smartlyq contacts list [--query <query>]` | `GET /contacts` | List contacts |
|
|
158
|
+
| `smartlyq contacts create --data <json>` | `POST /contacts` | Create or upsert a contact |
|
|
159
|
+
| `smartlyq contacts get <id>` | `GET /contacts/{id}` | Get a contact |
|
|
160
|
+
| `smartlyq contacts update <id> --data <json>` | `PATCH /contacts/{id}` | Update a contact |
|
|
161
|
+
| `smartlyq contacts add-tags <id> --data <json>` | `POST /contacts/{id}/tags` | Add tags to a contact |
|
|
162
|
+
| `smartlyq contacts remove-tags <id> --data <json>` | `DELETE /contacts/{id}/tags` | Remove tags from a contact |
|
|
163
|
+
| `smartlyq contacts list-notes <id>` | `GET /contacts/{id}/notes` | List contact notes |
|
|
164
|
+
| `smartlyq contacts add-note <id> --data <json>` | `POST /contacts/{id}/notes` | Add a note to a contact |
|
|
165
|
+
| `smartlyq contacts enroll <id> --data <json>` | `POST /contacts/{id}/enroll` | Enroll a contact in an automation |
|
|
166
|
+
| `smartlyq contacts add-message <id> --data <json>` | `POST /contacts/{id}/messages` | Log a message on a contact's timeline |
|
|
167
|
+
|
|
168
|
+
### CRM Custom Fields
|
|
169
|
+
|
|
170
|
+
| Command | Endpoint | Description |
|
|
171
|
+
| --- | --- | --- |
|
|
172
|
+
| `smartlyq custom-fields list` | `GET /custom-fields` | List custom fields |
|
|
173
|
+
| `smartlyq custom-fields create --data <json>` | `POST /custom-fields` | Create a custom field |
|
|
174
|
+
| `smartlyq custom-fields delete <id>` | `DELETE /custom-fields/{id}` | Delete a custom field |
|
|
175
|
+
|
|
176
|
+
### CRM Opportunities
|
|
177
|
+
|
|
178
|
+
| Command | Endpoint | Description |
|
|
179
|
+
| --- | --- | --- |
|
|
180
|
+
| `smartlyq opportunities list-pipelines` | `GET /pipelines` | List pipelines |
|
|
181
|
+
| `smartlyq opportunities create-pipeline --data <json>` | `POST /pipelines` | Create a pipeline |
|
|
182
|
+
| `smartlyq opportunities list [--query <query>]` | `GET /opportunities` | List opportunities |
|
|
183
|
+
| `smartlyq opportunities create --data <json>` | `POST /opportunities` | Create an opportunity |
|
|
184
|
+
| `smartlyq opportunities get <id>` | `GET /opportunities/{id}` | Get an opportunity |
|
|
185
|
+
| `smartlyq opportunities update <id> --data <json>` | `PATCH /opportunities/{id}` | Update an opportunity |
|
|
186
|
+
| `smartlyq opportunities delete <id>` | `DELETE /opportunities/{id}` | Delete an opportunity |
|
|
187
|
+
| `smartlyq opportunities update-status <id> --data <json>` | `POST /opportunities/{id}/status` | Update opportunity status |
|
|
188
|
+
|
|
189
|
+
### Direct Messages
|
|
190
|
+
|
|
191
|
+
| Command | Endpoint | Description |
|
|
192
|
+
| --- | --- | --- |
|
|
193
|
+
| `smartlyq messages list-conversations [--query <query>]` | `GET /social/conversations` | List DM conversations |
|
|
194
|
+
| `smartlyq messages list <conversation-id> [--query <query>]` | `GET /social/conversations/{conversation_id}/messages` | List messages in a conversation |
|
|
195
|
+
| `smartlyq messages send <conversation-id> --data <json>` | `POST /social/conversations/{conversation_id}/messages` | Send a direct message |
|
|
196
|
+
| `smartlyq messages mark-conversation-read <conversation-id>` | `POST /social/conversations/{conversation_id}/read` | Mark a conversation read |
|
|
197
|
+
|
|
198
|
+
### Images
|
|
199
|
+
|
|
200
|
+
| Command | Endpoint | Description |
|
|
201
|
+
| --- | --- | --- |
|
|
202
|
+
| `smartlyq images generate --data <json>` | `POST /images/generate` | Generate image |
|
|
203
|
+
| `smartlyq images list [--query <query>]` | `GET /images` | List images |
|
|
204
|
+
| `smartlyq images get <image-id>` | `GET /images/{image_id}` | Get image |
|
|
205
|
+
| `smartlyq images delete <image-id>` | `DELETE /images/{image_id}` | Delete image |
|
|
206
|
+
|
|
207
|
+
### Jobs
|
|
208
|
+
|
|
209
|
+
| Command | Endpoint | Description |
|
|
210
|
+
| --- | --- | --- |
|
|
211
|
+
| `smartlyq jobs list [--query <query>]` | `GET /jobs` | List jobs |
|
|
212
|
+
| `smartlyq jobs get <job-id>` | `GET /jobs/{job_id}` | Get job |
|
|
213
|
+
| `smartlyq jobs cancel <job-id> [--data <json>]` | `POST /jobs/{job_id}/cancel` | Cancel job |
|
|
214
|
+
|
|
215
|
+
### Media
|
|
216
|
+
|
|
217
|
+
| Command | Endpoint | Description |
|
|
218
|
+
| --- | --- | --- |
|
|
219
|
+
| `smartlyq media list [--query <query>]` | `GET /media` | List media |
|
|
220
|
+
| `smartlyq media get <media-id>` | `GET /media/{media_id}` | Get media |
|
|
221
|
+
| `smartlyq media delete <media-id>` | `DELETE /media/{media_id}` | Delete media |
|
|
222
|
+
| `smartlyq media get-upload-url --data <json>` | `POST /media/upload-url` | Get presigned upload URL |
|
|
223
|
+
|
|
224
|
+
### Presentations
|
|
225
|
+
|
|
226
|
+
| Command | Endpoint | Description |
|
|
227
|
+
| --- | --- | --- |
|
|
228
|
+
| `smartlyq presentations generate --data <json>` | `POST /presentations/generate` | Generate presentation |
|
|
229
|
+
| `smartlyq presentations list [--query <query>]` | `GET /presentations` | List presentations |
|
|
230
|
+
| `smartlyq presentations get <presentation-id>` | `GET /presentations/{presentation_id}` | Get presentation |
|
|
231
|
+
| `smartlyq presentations delete <presentation-id>` | `DELETE /presentations/{presentation_id}` | Delete presentation |
|
|
232
|
+
|
|
233
|
+
### Profiles
|
|
234
|
+
|
|
235
|
+
| Command | Endpoint | Description |
|
|
236
|
+
| --- | --- | --- |
|
|
237
|
+
| `smartlyq profiles list [--query <query>]` | `GET /profiles` | List profiles |
|
|
238
|
+
| `smartlyq profiles create --data <json>` | `POST /profiles` | Create a profile |
|
|
239
|
+
| `smartlyq profiles get <id>` | `GET /profiles/{id}` | Get a profile |
|
|
240
|
+
| `smartlyq profiles delete <id> --data <json>` | `DELETE /profiles/{id}` | Delete a profile |
|
|
241
|
+
| `smartlyq profiles list-accounts <id>` | `GET /profiles/{id}/accounts` | List a profile's connected accounts |
|
|
242
|
+
| `smartlyq profiles pause <id>` | `POST /profiles/{id}/pause` | Pause a profile |
|
|
243
|
+
| `smartlyq profiles resume <id>` | `POST /profiles/{id}/resume` | Resume a profile |
|
|
244
|
+
| `smartlyq profiles create-connect-link <id> [--data <json>]` | `POST /profiles/{id}/connect-link` | Create a hosted connect link |
|
|
245
|
+
| `smartlyq profiles create-connect-url <id> <platform> [--data <json>]` | `POST /profiles/{id}/connect/{platform}` | Get a raw connect URL for one platform |
|
|
246
|
+
| `smartlyq profiles get-account-billing` | `GET /me/account-billing` | Account billing summary |
|
|
247
|
+
|
|
248
|
+
### SEO
|
|
249
|
+
|
|
250
|
+
| Command | Endpoint | Description |
|
|
251
|
+
| --- | --- | --- |
|
|
252
|
+
| `smartlyq seo keyword-research --data <json>` | `POST /seo/keyword-research` | Keyword research |
|
|
253
|
+
| `smartlyq seo serp --data <json>` | `POST /seo/serp` | Live SERP lookup |
|
|
254
|
+
| `smartlyq seo keyword-difficulty --data <json>` | `POST /seo/keyword-difficulty` | Keyword difficulty |
|
|
255
|
+
| `smartlyq seo ranked-keywords --data <json>` | `POST /seo/ranked-keywords` | Ranked keywords (rank tracking) |
|
|
256
|
+
| `smartlyq seo domain-overview --data <json>` | `POST /seo/domain-overview` | Domain rank overview |
|
|
257
|
+
| `smartlyq seo competitors --data <json>` | `POST /seo/competitors` | Organic competitors |
|
|
258
|
+
| `smartlyq seo backlinks-summary --data <json>` | `POST /seo/backlinks-summary` | Backlink profile summary |
|
|
259
|
+
| `smartlyq seo audit --data <json>` | `POST /seo/audit` | On-page SEO audit |
|
|
260
|
+
| `smartlyq seo backlink-prospects --data <json>` | `POST /seo/backlink-prospects` | Backlink prospects (link gap) |
|
|
261
|
+
| `smartlyq seo referring-domains --data <json>` | `POST /seo/referring-domains` | Referring domains |
|
|
262
|
+
| `smartlyq seo backlink-anchors --data <json>` | `POST /seo/backlink-anchors` | Backlink anchors |
|
|
263
|
+
| `smartlyq seo spam-score --data <json>` | `POST /seo/spam-score` | Backlink spam score |
|
|
264
|
+
| `smartlyq seo rank-history --data <json>` | `POST /seo/rank-history` | Historical rank overview |
|
|
265
|
+
| `smartlyq seo site-audit --data <json>` | `POST /seo/site-audit` | Deep site audit |
|
|
266
|
+
| `smartlyq seo brand-lookup --data <json>` | `POST /seo/brand-lookup` | AI Visibility: brand lookup |
|
|
267
|
+
| `smartlyq seo prompt-explorer --data <json>` | `POST /seo/prompt-explorer` | AI Visibility: prompt explorer |
|
|
268
|
+
| `smartlyq seo ai-audit --data <json>` | `POST /seo/ai-audit` | AI Visibility Audit (async) |
|
|
269
|
+
|
|
270
|
+
### Shorts
|
|
271
|
+
|
|
272
|
+
| Command | Endpoint | Description |
|
|
273
|
+
| --- | --- | --- |
|
|
274
|
+
| `smartlyq shorts generate [--data <json>]` | `POST /shorts/generate` | Generate viral shorts from a long video |
|
|
275
|
+
| `smartlyq shorts list [--query <query>]` | `GET /shorts` | List shorts jobs |
|
|
276
|
+
| `smartlyq shorts get <uid>` | `GET /shorts/{uid}` | Get shorts job + clips |
|
|
277
|
+
|
|
278
|
+
### Social
|
|
279
|
+
|
|
280
|
+
| Command | Endpoint | Description |
|
|
281
|
+
| --- | --- | --- |
|
|
282
|
+
| `smartlyq social list-accounts` | `GET /social/accounts` | List social accounts |
|
|
283
|
+
| `smartlyq social list-posts [--query <query>]` | `GET /social/posts` | List social posts |
|
|
284
|
+
| `smartlyq social create-post --data <json>` | `POST /social/posts` | Create post (publish immediately) |
|
|
285
|
+
| `smartlyq social schedule-post --data <json>` | `POST /social/posts/schedule` | Schedule post |
|
|
286
|
+
| `smartlyq social get-post <post-id>` | `GET /social/posts/{post_id}` | Get social post |
|
|
287
|
+
| `smartlyq social update-post <post-id> --data <json>` | `PATCH /social/posts/{post_id}` | Update social post |
|
|
288
|
+
| `smartlyq social delete-post <post-id>` | `DELETE /social/posts/{post_id}` | Delete social post |
|
|
289
|
+
| `smartlyq social disconnect-account <account-id>` | `DELETE /social/accounts/{account_id}` | Disconnect a social account |
|
|
290
|
+
| `smartlyq social get-account-health <account-id>` | `GET /social/accounts/{account_id}/health` | Account health |
|
|
291
|
+
| `smartlyq social get-account-reconnect-url <account-id>` | `GET /social/accounts/{account_id}/reconnect-url` | Account reconnect URL |
|
|
292
|
+
| `smartlyq social pause-account <account-id>` | `POST /social/accounts/{account_id}/pause` | Pause posting to an account |
|
|
293
|
+
| `smartlyq social resume-account <account-id>` | `POST /social/accounts/{account_id}/resume` | Resume posting to an account |
|
|
294
|
+
| `smartlyq social retry-post <post-id> --data <json>` | `POST /social/posts/{post_id}/retry` | Retry publishing a post |
|
|
295
|
+
| `smartlyq social connect-account-status <platform>` | `GET /social/connect/{platform}` | Poll headless connection status |
|
|
296
|
+
| `smartlyq social connect-account <platform> [--data <json>]` | `POST /social/connect/{platform}` | Start headless account connection |
|
|
297
|
+
|
|
298
|
+
### URLs
|
|
299
|
+
|
|
300
|
+
| Command | Endpoint | Description |
|
|
301
|
+
| --- | --- | --- |
|
|
302
|
+
| `smartlyq urls shorten --data <json>` | `POST /urls/shorten` | Shorten URL |
|
|
303
|
+
| `smartlyq urls list [--query <query>]` | `GET /urls` | List short URLs |
|
|
304
|
+
| `smartlyq urls get <url-id>` | `GET /urls/{url_id}` | Get short URL |
|
|
305
|
+
| `smartlyq urls delete <url-id>` | `DELETE /urls/{url_id}` | Delete short URL |
|
|
306
|
+
| `smartlyq urls get-stats <url-id>` | `GET /urls/{url_id}/stats` | Get short URL stats |
|
|
307
|
+
|
|
308
|
+
### Videos
|
|
309
|
+
|
|
310
|
+
| Command | Endpoint | Description |
|
|
311
|
+
| --- | --- | --- |
|
|
312
|
+
| `smartlyq videos list-models` | `GET /videos/models` | List available video models |
|
|
313
|
+
| `smartlyq videos generate --data <json>` | `POST /videos/generate` | Generate video |
|
|
314
|
+
| `smartlyq videos list [--query <query>]` | `GET /videos` | List videos |
|
|
315
|
+
| `smartlyq videos get <video-id>` | `GET /videos/{video_id}` | Get video |
|
|
316
|
+
| `smartlyq videos delete <video-id>` | `DELETE /videos/{video_id}` | Delete video |
|
|
317
|
+
| `smartlyq videos generate-hook [--data <json>]` | `POST /videos/hook` | Generate a viral hook line |
|
|
318
|
+
| `smartlyq videos suggest-broll --data <json>` | `POST /videos/broll-suggest` | Suggest B-roll moments |
|
|
319
|
+
| `smartlyq videos suggest-emphasis --data <json>` | `POST /videos/emphasis` | Suggest on-screen emphasis |
|
|
320
|
+
| `smartlyq videos generate-viral-thumbnail --data <json>` | `POST /videos/viral-thumbnail` | Generate a viral thumbnail |
|
|
321
|
+
|
|
322
|
+
### Webhooks
|
|
323
|
+
|
|
324
|
+
| Command | Endpoint | Description |
|
|
325
|
+
| --- | --- | --- |
|
|
326
|
+
| `smartlyq webhooks list` | `GET /webhooks` | List webhooks |
|
|
327
|
+
| `smartlyq webhooks create --data <json>` | `POST /webhooks` | Create webhook |
|
|
328
|
+
| `smartlyq webhooks delete <id>` | `DELETE /webhooks/{id}` | Delete webhook |
|
|
329
|
+
|
|
330
|
+
### Workspaces
|
|
331
|
+
|
|
332
|
+
| Command | Endpoint | Description |
|
|
333
|
+
| --- | --- | --- |
|
|
334
|
+
| `smartlyq workspaces list` | `GET /workspaces` | List workspaces (sub-accounts) |
|
|
335
|
+
| `smartlyq workspaces create --data <json>` | `POST /workspaces` | Create a workspace (sub-account) |
|
|
336
|
+
| `smartlyq workspaces bulk-action --data <json>` | `POST /workspaces/bulk` | Bulk sub-account action |
|
|
337
|
+
| `smartlyq workspaces get <id>` | `GET /workspaces/{id}` | Get a workspace (sub-account) |
|
|
338
|
+
| `smartlyq workspaces delete <id> --data <json>` | `DELETE /workspaces/{id}` | Delete a workspace (sub-account) |
|
|
339
|
+
| `smartlyq workspaces disable-saas <id> [--data <json>]` | `POST /workspaces/{id}/disable-saas` | Disable SaaS mode for a workspace |
|
|
340
|
+
| `smartlyq workspaces pause <id>` | `POST /workspaces/{id}/pause` | Pause (suspend) a workspace |
|
|
341
|
+
| `smartlyq workspaces resume <id>` | `POST /workspaces/{id}/resume` | Resume a paused workspace |
|
|
342
|
+
| `smartlyq workspaces get-subscription <id>` | `GET /workspaces/{id}/subscription` | Get a sub-account's subscription |
|
|
343
|
+
| `smartlyq workspaces get-wallet <id>` | `GET /workspaces/{id}/wallet` | Get a sub-account's wallet balance |
|
|
344
|
+
| `smartlyq workspaces list-saas-plans` | `GET /saas/plans` | List SaaS plans |
|
|
345
|
+
| `smartlyq workspaces get-saas-plan <id>` | `GET /saas/plans/{id}` | Get a SaaS plan |
|
|
346
|
+
<!-- END GENERATED REFERENCE -->
|
|
347
|
+
|
|
348
|
+
## Regeneration
|
|
349
|
+
|
|
350
|
+
This CLI is generated from the [SmartlyQ OpenAPI spec](https://docs.smartlyq.com). When the spec changes, CI regenerates the commands, README, and tests, bumps the version, and publishes to npm automatically.
|
|
351
|
+
|
|
352
|
+
## License
|
|
353
|
+
|
|
354
|
+
MIT
|