postboost 1.4.0 → 1.6.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 +1 -1
- package/api/aIApi.ts +582 -0
- package/api/accountsApi.ts +1 -1
- package/api/apis.ts +3 -1
- package/api/mediaApi.ts +1 -1
- package/api/postsApi.ts +1 -1
- package/api/receiptsApi.ts +1 -1
- package/api/subscriptionsApi.ts +1 -1
- package/api/tagsApi.ts +1 -1
- package/api/usersApi.ts +1 -1
- package/api/workspacesApi.ts +1 -1
- package/model/account.ts +1 -1
- package/model/addGenericSubscriptionRequest.ts +1 -1
- package/model/blogToSocial200Response.ts +32 -0
- package/model/blogToSocial429Response.ts +31 -0
- package/model/blogToSocialCaption.ts +79 -0
- package/model/blogToSocialInput.ts +196 -0
- package/model/blogToSocialMedia.ts +46 -0
- package/model/blogToSocialResponse.ts +87 -0
- package/model/changeSubscriptionPlanRequest.ts +1 -1
- package/model/checkoutSubscription200Response.ts +1 -1
- package/model/checkoutSubscriptionRequest.ts +1 -1
- package/model/deleteMediaBulkRequest.ts +1 -1
- package/model/deleteMode.ts +1 -1
- package/model/deletePostRequest.ts +1 -1
- package/model/deletePostsBulkRequest.ts +1 -1
- package/model/deleteReceiptsBulkRequest.ts +1 -1
- package/model/deleteResult.ts +1 -1
- package/model/deleteUser400Response.ts +1 -1
- package/model/deleteUsersBulkRequest.ts +1 -1
- package/model/deleteWorkspacesBulkRequest.ts +1 -1
- package/model/generatedImageItem.ts +43 -0
- package/model/getRemoteUploadStatus200Response.ts +1 -1
- package/model/imageAltText200Response.ts +32 -0
- package/model/imageAltTextInput.ts +31 -0
- package/model/imageAltTextResponse.ts +49 -0
- package/model/imageEditInput.ts +82 -0
- package/model/imageGenerate200Response.ts +32 -0
- package/model/imageGenerate429Response.ts +31 -0
- package/model/imageGenerateInput.ts +116 -0
- package/model/imageGenerationResponse.ts +68 -0
- package/model/imagePrompt200Response.ts +32 -0
- package/model/imagePrompt429Response.ts +31 -0
- package/model/imagePromptInput.ts +73 -0
- package/model/imagePromptResponse.ts +31 -0
- package/model/imageVariations200Response.ts +32 -0
- package/model/imageVariationsInput.ts +61 -0
- package/model/imageVariationsResponse.ts +56 -0
- package/model/initiateChunkedUpload201Response.ts +1 -1
- package/model/initiateChunkedUploadRequest.ts +1 -1
- package/model/initiateRemoteUpload201Response.ts +1 -1
- package/model/initiateRemoteUpload201ResponseOneOf.ts +1 -1
- package/model/initiateRemoteUploadRequest.ts +1 -1
- package/model/listAccounts200Response.ts +1 -1
- package/model/listMedia200Response.ts +1 -1
- package/model/listPosts200Response.ts +1 -1
- package/model/listReceipts200Response.ts +1 -1
- package/model/listTags200Response.ts +1 -1
- package/model/listUsers200Response.ts +1 -1
- package/model/listWorkspaces200Response.ts +1 -1
- package/model/media.ts +1 -1
- package/model/models.ts +79 -0
- package/model/paginationMeta.ts +1 -1
- package/model/paginationMetaLinks.ts +1 -1
- package/model/paginationMetaMeta.ts +1 -1
- package/model/post.ts +1 -1
- package/model/postContent.ts +1 -1
- package/model/postInput.ts +1 -1
- package/model/postStatus.ts +1 -1
- package/model/postVersion.ts +1 -1
- package/model/receipt.ts +1 -1
- package/model/receiptInput.ts +1 -1
- package/model/receiptUpdateInput.ts +1 -1
- package/model/removeUserFromWorkspaceRequest.ts +1 -1
- package/model/schedulePostRequest.ts +1 -1
- package/model/scheduleResult.ts +1 -1
- package/model/subscription.ts +1 -1
- package/model/subscriptionInput.ts +1 -1
- package/model/subscriptionStatus.ts +1 -1
- package/model/subscriptionUpdateInput.ts +1 -1
- package/model/tag.ts +1 -1
- package/model/tagInput.ts +1 -1
- package/model/updateMediaRequest.ts +1 -1
- package/model/uploadChunk201Response.ts +1 -1
- package/model/user.ts +1 -1
- package/model/userInput.ts +1 -1
- package/model/userUpdateInput.ts +1 -1
- package/model/workspace.ts +1 -1
- package/model/workspaceInput.ts +1 -1
- package/model/workspaceUserInput.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ npm install postboost
|
|
|
13
13
|
| **npm** | [npmjs.com/package/postboost](https://www.npmjs.com/package/postboost) |
|
|
14
14
|
| **GitHub** | [postboost-co/postboost-node](https://github.com/postboost-co/postboost-node) |
|
|
15
15
|
| **Docs** | [postboost.co/docs/api](https://postboost.co/docs/api) |
|
|
16
|
-
| **Version** | v1.
|
|
16
|
+
| **Version** | v1.6.0 |
|
|
17
17
|
|
|
18
18
|
## Quick start
|
|
19
19
|
|
package/api/aIApi.ts
ADDED
|
@@ -0,0 +1,582 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostBoost API
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
|
+
*
|
|
5
|
+
* The version of the OpenAPI document: 1.0.0
|
|
6
|
+
* Contact: hi@postboost.co
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
|
|
9
|
+
* https://openapi-generator.tech
|
|
10
|
+
* Do not edit the class manually.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import localVarRequest from 'request';
|
|
15
|
+
import http from 'http';
|
|
16
|
+
|
|
17
|
+
/* tslint:disable:no-unused-locals */
|
|
18
|
+
import { BlogToSocial200Response } from '../model/blogToSocial200Response';
|
|
19
|
+
import { BlogToSocial429Response } from '../model/blogToSocial429Response';
|
|
20
|
+
import { BlogToSocialInput } from '../model/blogToSocialInput';
|
|
21
|
+
import { ImageAltText200Response } from '../model/imageAltText200Response';
|
|
22
|
+
import { ImageAltTextInput } from '../model/imageAltTextInput';
|
|
23
|
+
import { ImageEditInput } from '../model/imageEditInput';
|
|
24
|
+
import { ImageGenerate200Response } from '../model/imageGenerate200Response';
|
|
25
|
+
import { ImageGenerate429Response } from '../model/imageGenerate429Response';
|
|
26
|
+
import { ImageGenerateInput } from '../model/imageGenerateInput';
|
|
27
|
+
import { ImagePrompt200Response } from '../model/imagePrompt200Response';
|
|
28
|
+
import { ImagePrompt429Response } from '../model/imagePrompt429Response';
|
|
29
|
+
import { ImagePromptInput } from '../model/imagePromptInput';
|
|
30
|
+
import { ImageVariations200Response } from '../model/imageVariations200Response';
|
|
31
|
+
import { ImageVariationsInput } from '../model/imageVariationsInput';
|
|
32
|
+
|
|
33
|
+
import { ObjectSerializer, Authentication, VoidAuth, Interceptor } from '../model/models';
|
|
34
|
+
import { HttpBasicAuth, HttpBearerAuth, ApiKeyAuth, OAuth } from '../model/models';
|
|
35
|
+
|
|
36
|
+
import { HttpError, RequestFile } from './apis';
|
|
37
|
+
|
|
38
|
+
let defaultBasePath = 'https://postboost.co/app/api';
|
|
39
|
+
|
|
40
|
+
// ===============================================
|
|
41
|
+
// This file is autogenerated - Please do not edit
|
|
42
|
+
// ===============================================
|
|
43
|
+
|
|
44
|
+
export enum AIApiApiKeys {
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export class AIApi {
|
|
48
|
+
protected _basePath = defaultBasePath;
|
|
49
|
+
protected _defaultHeaders : any = {};
|
|
50
|
+
protected _useQuerystring : boolean = false;
|
|
51
|
+
|
|
52
|
+
protected authentications = {
|
|
53
|
+
'default': <Authentication>new VoidAuth(),
|
|
54
|
+
'bearerAuth': new HttpBearerAuth(),
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
protected interceptors: Interceptor[] = [];
|
|
58
|
+
|
|
59
|
+
constructor(basePath?: string);
|
|
60
|
+
constructor(basePathOrUsername: string, password?: string, basePath?: string) {
|
|
61
|
+
if (password) {
|
|
62
|
+
if (basePath) {
|
|
63
|
+
this.basePath = basePath;
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
if (basePathOrUsername) {
|
|
67
|
+
this.basePath = basePathOrUsername
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
set useQuerystring(value: boolean) {
|
|
73
|
+
this._useQuerystring = value;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
set basePath(basePath: string) {
|
|
77
|
+
this._basePath = basePath;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
set defaultHeaders(defaultHeaders: any) {
|
|
81
|
+
this._defaultHeaders = defaultHeaders;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
get defaultHeaders() {
|
|
85
|
+
return this._defaultHeaders;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
get basePath() {
|
|
89
|
+
return this._basePath;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
public setDefaultAuthentication(auth: Authentication) {
|
|
93
|
+
this.authentications.default = auth;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
public setApiKey(key: AIApiApiKeys, value: string) {
|
|
97
|
+
(this.authentications as any)[AIApiApiKeys[key]].apiKey = value;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
set accessToken(accessToken: string | (() => string)) {
|
|
101
|
+
this.authentications.bearerAuth.accessToken = accessToken;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
public addInterceptor(interceptor: Interceptor) {
|
|
105
|
+
this.interceptors.push(interceptor);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Generates platform-specific social media captions from a blog post URL or directly provided title and excerpt. Each platform generates one caption, which consumes one AI credit from the workspace\'s monthly allowance. **Input modes** (at least one required): - **URL mode**: provide `url` and the API scrapes the blog content automatically, including detecting the featured image via `og:image`. - **Direct mode**: provide `title` and `excerpt` directly (no scraping). If both are provided, direct values take priority. When `create_post` is `true`, a draft post is created in the workspace with per-account caption versions. If an image is available (from `image_url` or the scraped `og:image`), it is imported into the workspace media library and attached to the draft post.
|
|
110
|
+
* @summary Generate social media captions from a blog post
|
|
111
|
+
* @param workspaceUuid UUID of the workspace.
|
|
112
|
+
* @param blogToSocialInput
|
|
113
|
+
*/
|
|
114
|
+
public async blogToSocial (workspaceUuid: string, blogToSocialInput: BlogToSocialInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: BlogToSocial200Response; }> {
|
|
115
|
+
const localVarPath = this.basePath + '/{workspaceUuid}/ai/blog-to-social'
|
|
116
|
+
.replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
|
|
117
|
+
let localVarQueryParameters: any = {};
|
|
118
|
+
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
|
|
119
|
+
const produces = ['application/json'];
|
|
120
|
+
// give precedence to 'application/json'
|
|
121
|
+
if (produces.indexOf('application/json') >= 0) {
|
|
122
|
+
localVarHeaderParams.Accept = 'application/json';
|
|
123
|
+
} else {
|
|
124
|
+
localVarHeaderParams.Accept = produces.join(',');
|
|
125
|
+
}
|
|
126
|
+
let localVarFormParams: any = {};
|
|
127
|
+
|
|
128
|
+
// verify required parameter 'workspaceUuid' is not null or undefined
|
|
129
|
+
if (workspaceUuid === null || workspaceUuid === undefined) {
|
|
130
|
+
throw new Error('Required parameter workspaceUuid was null or undefined when calling blogToSocial.');
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// verify required parameter 'blogToSocialInput' is not null or undefined
|
|
134
|
+
if (blogToSocialInput === null || blogToSocialInput === undefined) {
|
|
135
|
+
throw new Error('Required parameter blogToSocialInput was null or undefined when calling blogToSocial.');
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
(<any>Object).assign(localVarHeaderParams, options.headers);
|
|
139
|
+
|
|
140
|
+
let localVarUseFormData = false;
|
|
141
|
+
|
|
142
|
+
let localVarRequestOptions: localVarRequest.Options = {
|
|
143
|
+
method: 'POST',
|
|
144
|
+
qs: localVarQueryParameters,
|
|
145
|
+
headers: localVarHeaderParams,
|
|
146
|
+
uri: localVarPath,
|
|
147
|
+
useQuerystring: this._useQuerystring,
|
|
148
|
+
json: true,
|
|
149
|
+
body: ObjectSerializer.serialize(blogToSocialInput, "BlogToSocialInput")
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
let authenticationPromise = Promise.resolve();
|
|
153
|
+
if (this.authentications.bearerAuth.accessToken) {
|
|
154
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
|
|
155
|
+
}
|
|
156
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
|
|
157
|
+
|
|
158
|
+
let interceptorPromise = authenticationPromise;
|
|
159
|
+
for (const interceptor of this.interceptors) {
|
|
160
|
+
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
return interceptorPromise.then(() => {
|
|
164
|
+
if (Object.keys(localVarFormParams).length) {
|
|
165
|
+
if (localVarUseFormData) {
|
|
166
|
+
(<any>localVarRequestOptions).formData = localVarFormParams;
|
|
167
|
+
} else {
|
|
168
|
+
localVarRequestOptions.form = localVarFormParams;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return new Promise<{ response: http.IncomingMessage; body: BlogToSocial200Response; }>((resolve, reject) => {
|
|
172
|
+
localVarRequest(localVarRequestOptions, (error, response, body) => {
|
|
173
|
+
if (error) {
|
|
174
|
+
reject(error);
|
|
175
|
+
} else {
|
|
176
|
+
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
|
177
|
+
body = ObjectSerializer.deserialize(body, "BlogToSocial200Response");
|
|
178
|
+
resolve({ response: response, body: body });
|
|
179
|
+
} else {
|
|
180
|
+
reject(new HttpError(response, body, response.statusCode));
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Analyzes an existing workspace media item and generates accessible alt text. The alt text is saved back to the media record. Costs 1 AI credit per call.
|
|
189
|
+
* @summary Generate alt text for a media image using AI
|
|
190
|
+
* @param workspaceUuid UUID of the workspace.
|
|
191
|
+
* @param imageAltTextInput
|
|
192
|
+
*/
|
|
193
|
+
public async imageAltText (workspaceUuid: string, imageAltTextInput: ImageAltTextInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageAltText200Response; }> {
|
|
194
|
+
const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-alt-text'
|
|
195
|
+
.replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
|
|
196
|
+
let localVarQueryParameters: any = {};
|
|
197
|
+
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
|
|
198
|
+
const produces = ['application/json'];
|
|
199
|
+
// give precedence to 'application/json'
|
|
200
|
+
if (produces.indexOf('application/json') >= 0) {
|
|
201
|
+
localVarHeaderParams.Accept = 'application/json';
|
|
202
|
+
} else {
|
|
203
|
+
localVarHeaderParams.Accept = produces.join(',');
|
|
204
|
+
}
|
|
205
|
+
let localVarFormParams: any = {};
|
|
206
|
+
|
|
207
|
+
// verify required parameter 'workspaceUuid' is not null or undefined
|
|
208
|
+
if (workspaceUuid === null || workspaceUuid === undefined) {
|
|
209
|
+
throw new Error('Required parameter workspaceUuid was null or undefined when calling imageAltText.');
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
// verify required parameter 'imageAltTextInput' is not null or undefined
|
|
213
|
+
if (imageAltTextInput === null || imageAltTextInput === undefined) {
|
|
214
|
+
throw new Error('Required parameter imageAltTextInput was null or undefined when calling imageAltText.');
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
(<any>Object).assign(localVarHeaderParams, options.headers);
|
|
218
|
+
|
|
219
|
+
let localVarUseFormData = false;
|
|
220
|
+
|
|
221
|
+
let localVarRequestOptions: localVarRequest.Options = {
|
|
222
|
+
method: 'POST',
|
|
223
|
+
qs: localVarQueryParameters,
|
|
224
|
+
headers: localVarHeaderParams,
|
|
225
|
+
uri: localVarPath,
|
|
226
|
+
useQuerystring: this._useQuerystring,
|
|
227
|
+
json: true,
|
|
228
|
+
body: ObjectSerializer.serialize(imageAltTextInput, "ImageAltTextInput")
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
let authenticationPromise = Promise.resolve();
|
|
232
|
+
if (this.authentications.bearerAuth.accessToken) {
|
|
233
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
|
|
234
|
+
}
|
|
235
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
|
|
236
|
+
|
|
237
|
+
let interceptorPromise = authenticationPromise;
|
|
238
|
+
for (const interceptor of this.interceptors) {
|
|
239
|
+
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
return interceptorPromise.then(() => {
|
|
243
|
+
if (Object.keys(localVarFormParams).length) {
|
|
244
|
+
if (localVarUseFormData) {
|
|
245
|
+
(<any>localVarRequestOptions).formData = localVarFormParams;
|
|
246
|
+
} else {
|
|
247
|
+
localVarRequestOptions.form = localVarFormParams;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return new Promise<{ response: http.IncomingMessage; body: ImageAltText200Response; }>((resolve, reject) => {
|
|
251
|
+
localVarRequest(localVarRequestOptions, (error, response, body) => {
|
|
252
|
+
if (error) {
|
|
253
|
+
reject(error);
|
|
254
|
+
} else {
|
|
255
|
+
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
|
256
|
+
body = ObjectSerializer.deserialize(body, "ImageAltText200Response");
|
|
257
|
+
resolve({ response: response, body: body });
|
|
258
|
+
} else {
|
|
259
|
+
reject(new HttpError(response, body, response.statusCode));
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
});
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Edits an existing workspace media item using the source image and a text prompt. Optionally accepts a mask (transparent areas are replaced). Saves results to the media library. Credits: `count × credit_weight`.
|
|
268
|
+
* @summary Edit an existing media image using AI
|
|
269
|
+
* @param workspaceUuid UUID of the workspace.
|
|
270
|
+
* @param imageEditInput
|
|
271
|
+
*/
|
|
272
|
+
public async imageEdit (workspaceUuid: string, imageEditInput: ImageEditInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }> {
|
|
273
|
+
const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-edit'
|
|
274
|
+
.replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
|
|
275
|
+
let localVarQueryParameters: any = {};
|
|
276
|
+
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
|
|
277
|
+
const produces = ['application/json'];
|
|
278
|
+
// give precedence to 'application/json'
|
|
279
|
+
if (produces.indexOf('application/json') >= 0) {
|
|
280
|
+
localVarHeaderParams.Accept = 'application/json';
|
|
281
|
+
} else {
|
|
282
|
+
localVarHeaderParams.Accept = produces.join(',');
|
|
283
|
+
}
|
|
284
|
+
let localVarFormParams: any = {};
|
|
285
|
+
|
|
286
|
+
// verify required parameter 'workspaceUuid' is not null or undefined
|
|
287
|
+
if (workspaceUuid === null || workspaceUuid === undefined) {
|
|
288
|
+
throw new Error('Required parameter workspaceUuid was null or undefined when calling imageEdit.');
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// verify required parameter 'imageEditInput' is not null or undefined
|
|
292
|
+
if (imageEditInput === null || imageEditInput === undefined) {
|
|
293
|
+
throw new Error('Required parameter imageEditInput was null or undefined when calling imageEdit.');
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
(<any>Object).assign(localVarHeaderParams, options.headers);
|
|
297
|
+
|
|
298
|
+
let localVarUseFormData = false;
|
|
299
|
+
|
|
300
|
+
let localVarRequestOptions: localVarRequest.Options = {
|
|
301
|
+
method: 'POST',
|
|
302
|
+
qs: localVarQueryParameters,
|
|
303
|
+
headers: localVarHeaderParams,
|
|
304
|
+
uri: localVarPath,
|
|
305
|
+
useQuerystring: this._useQuerystring,
|
|
306
|
+
json: true,
|
|
307
|
+
body: ObjectSerializer.serialize(imageEditInput, "ImageEditInput")
|
|
308
|
+
};
|
|
309
|
+
|
|
310
|
+
let authenticationPromise = Promise.resolve();
|
|
311
|
+
if (this.authentications.bearerAuth.accessToken) {
|
|
312
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
|
|
313
|
+
}
|
|
314
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
|
|
315
|
+
|
|
316
|
+
let interceptorPromise = authenticationPromise;
|
|
317
|
+
for (const interceptor of this.interceptors) {
|
|
318
|
+
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return interceptorPromise.then(() => {
|
|
322
|
+
if (Object.keys(localVarFormParams).length) {
|
|
323
|
+
if (localVarUseFormData) {
|
|
324
|
+
(<any>localVarRequestOptions).formData = localVarFormParams;
|
|
325
|
+
} else {
|
|
326
|
+
localVarRequestOptions.form = localVarFormParams;
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return new Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }>((resolve, reject) => {
|
|
330
|
+
localVarRequest(localVarRequestOptions, (error, response, body) => {
|
|
331
|
+
if (error) {
|
|
332
|
+
reject(error);
|
|
333
|
+
} else {
|
|
334
|
+
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
|
335
|
+
body = ObjectSerializer.deserialize(body, "ImageGenerate200Response");
|
|
336
|
+
resolve({ response: response, body: body });
|
|
337
|
+
} else {
|
|
338
|
+
reject(new HttpError(response, body, response.statusCode));
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
});
|
|
342
|
+
});
|
|
343
|
+
});
|
|
344
|
+
}
|
|
345
|
+
/**
|
|
346
|
+
* Generates one or more images and saves them immediately to the workspace media library. **Standard mode** (recommended): provide `caption` + `platform`. PostBoost builds a professional image prompt internally using platform-specific templates. No prompt engineering required. **Developer mode**: provide `prompt` directly to bypass prompt building. If both `caption` and `prompt` are sent, standard mode runs. Credits: `count x credit_weight` (default: 5 per image).
|
|
347
|
+
* @summary Generate social media images from a caption
|
|
348
|
+
* @param workspaceUuid UUID of the workspace.
|
|
349
|
+
* @param imageGenerateInput
|
|
350
|
+
*/
|
|
351
|
+
public async imageGenerate (workspaceUuid: string, imageGenerateInput: ImageGenerateInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }> {
|
|
352
|
+
const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-generate'
|
|
353
|
+
.replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
|
|
354
|
+
let localVarQueryParameters: any = {};
|
|
355
|
+
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
|
|
356
|
+
const produces = ['application/json'];
|
|
357
|
+
// give precedence to 'application/json'
|
|
358
|
+
if (produces.indexOf('application/json') >= 0) {
|
|
359
|
+
localVarHeaderParams.Accept = 'application/json';
|
|
360
|
+
} else {
|
|
361
|
+
localVarHeaderParams.Accept = produces.join(',');
|
|
362
|
+
}
|
|
363
|
+
let localVarFormParams: any = {};
|
|
364
|
+
|
|
365
|
+
// verify required parameter 'workspaceUuid' is not null or undefined
|
|
366
|
+
if (workspaceUuid === null || workspaceUuid === undefined) {
|
|
367
|
+
throw new Error('Required parameter workspaceUuid was null or undefined when calling imageGenerate.');
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// verify required parameter 'imageGenerateInput' is not null or undefined
|
|
371
|
+
if (imageGenerateInput === null || imageGenerateInput === undefined) {
|
|
372
|
+
throw new Error('Required parameter imageGenerateInput was null or undefined when calling imageGenerate.');
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
(<any>Object).assign(localVarHeaderParams, options.headers);
|
|
376
|
+
|
|
377
|
+
let localVarUseFormData = false;
|
|
378
|
+
|
|
379
|
+
let localVarRequestOptions: localVarRequest.Options = {
|
|
380
|
+
method: 'POST',
|
|
381
|
+
qs: localVarQueryParameters,
|
|
382
|
+
headers: localVarHeaderParams,
|
|
383
|
+
uri: localVarPath,
|
|
384
|
+
useQuerystring: this._useQuerystring,
|
|
385
|
+
json: true,
|
|
386
|
+
body: ObjectSerializer.serialize(imageGenerateInput, "ImageGenerateInput")
|
|
387
|
+
};
|
|
388
|
+
|
|
389
|
+
let authenticationPromise = Promise.resolve();
|
|
390
|
+
if (this.authentications.bearerAuth.accessToken) {
|
|
391
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
|
|
392
|
+
}
|
|
393
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
|
|
394
|
+
|
|
395
|
+
let interceptorPromise = authenticationPromise;
|
|
396
|
+
for (const interceptor of this.interceptors) {
|
|
397
|
+
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
return interceptorPromise.then(() => {
|
|
401
|
+
if (Object.keys(localVarFormParams).length) {
|
|
402
|
+
if (localVarUseFormData) {
|
|
403
|
+
(<any>localVarRequestOptions).formData = localVarFormParams;
|
|
404
|
+
} else {
|
|
405
|
+
localVarRequestOptions.form = localVarFormParams;
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return new Promise<{ response: http.IncomingMessage; body: ImageGenerate200Response; }>((resolve, reject) => {
|
|
409
|
+
localVarRequest(localVarRequestOptions, (error, response, body) => {
|
|
410
|
+
if (error) {
|
|
411
|
+
reject(error);
|
|
412
|
+
} else {
|
|
413
|
+
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
|
414
|
+
body = ObjectSerializer.deserialize(body, "ImageGenerate200Response");
|
|
415
|
+
resolve({ response: response, body: body });
|
|
416
|
+
} else {
|
|
417
|
+
reject(new HttpError(response, body, response.statusCode));
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
});
|
|
421
|
+
});
|
|
422
|
+
});
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Builds a professional image generation prompt from a caption and platform. No image is generated. Use this to preview the prompt before calling `image-generate`. Costs 1 AI credit per call. When `image-generate` builds the prompt internally (standard mode), no credit is charged for the prompt step.
|
|
426
|
+
* @summary Build an optimized image prompt from a social media caption
|
|
427
|
+
* @param workspaceUuid UUID of the workspace.
|
|
428
|
+
* @param imagePromptInput
|
|
429
|
+
*/
|
|
430
|
+
public async imagePrompt (workspaceUuid: string, imagePromptInput: ImagePromptInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImagePrompt200Response; }> {
|
|
431
|
+
const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-prompt'
|
|
432
|
+
.replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
|
|
433
|
+
let localVarQueryParameters: any = {};
|
|
434
|
+
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
|
|
435
|
+
const produces = ['application/json'];
|
|
436
|
+
// give precedence to 'application/json'
|
|
437
|
+
if (produces.indexOf('application/json') >= 0) {
|
|
438
|
+
localVarHeaderParams.Accept = 'application/json';
|
|
439
|
+
} else {
|
|
440
|
+
localVarHeaderParams.Accept = produces.join(',');
|
|
441
|
+
}
|
|
442
|
+
let localVarFormParams: any = {};
|
|
443
|
+
|
|
444
|
+
// verify required parameter 'workspaceUuid' is not null or undefined
|
|
445
|
+
if (workspaceUuid === null || workspaceUuid === undefined) {
|
|
446
|
+
throw new Error('Required parameter workspaceUuid was null or undefined when calling imagePrompt.');
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
// verify required parameter 'imagePromptInput' is not null or undefined
|
|
450
|
+
if (imagePromptInput === null || imagePromptInput === undefined) {
|
|
451
|
+
throw new Error('Required parameter imagePromptInput was null or undefined when calling imagePrompt.');
|
|
452
|
+
}
|
|
453
|
+
|
|
454
|
+
(<any>Object).assign(localVarHeaderParams, options.headers);
|
|
455
|
+
|
|
456
|
+
let localVarUseFormData = false;
|
|
457
|
+
|
|
458
|
+
let localVarRequestOptions: localVarRequest.Options = {
|
|
459
|
+
method: 'POST',
|
|
460
|
+
qs: localVarQueryParameters,
|
|
461
|
+
headers: localVarHeaderParams,
|
|
462
|
+
uri: localVarPath,
|
|
463
|
+
useQuerystring: this._useQuerystring,
|
|
464
|
+
json: true,
|
|
465
|
+
body: ObjectSerializer.serialize(imagePromptInput, "ImagePromptInput")
|
|
466
|
+
};
|
|
467
|
+
|
|
468
|
+
let authenticationPromise = Promise.resolve();
|
|
469
|
+
if (this.authentications.bearerAuth.accessToken) {
|
|
470
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
|
|
471
|
+
}
|
|
472
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
|
|
473
|
+
|
|
474
|
+
let interceptorPromise = authenticationPromise;
|
|
475
|
+
for (const interceptor of this.interceptors) {
|
|
476
|
+
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
return interceptorPromise.then(() => {
|
|
480
|
+
if (Object.keys(localVarFormParams).length) {
|
|
481
|
+
if (localVarUseFormData) {
|
|
482
|
+
(<any>localVarRequestOptions).formData = localVarFormParams;
|
|
483
|
+
} else {
|
|
484
|
+
localVarRequestOptions.form = localVarFormParams;
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
return new Promise<{ response: http.IncomingMessage; body: ImagePrompt200Response; }>((resolve, reject) => {
|
|
488
|
+
localVarRequest(localVarRequestOptions, (error, response, body) => {
|
|
489
|
+
if (error) {
|
|
490
|
+
reject(error);
|
|
491
|
+
} else {
|
|
492
|
+
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
|
493
|
+
body = ObjectSerializer.deserialize(body, "ImagePrompt200Response");
|
|
494
|
+
resolve({ response: response, body: body });
|
|
495
|
+
} else {
|
|
496
|
+
reject(new HttpError(response, body, response.statusCode));
|
|
497
|
+
}
|
|
498
|
+
}
|
|
499
|
+
});
|
|
500
|
+
});
|
|
501
|
+
});
|
|
502
|
+
}
|
|
503
|
+
/**
|
|
504
|
+
* Creates one or more variations of an existing workspace media item. Saves results to the media library. Credits: `count × credit_weight`.
|
|
505
|
+
* @summary Generate variations of an existing media image
|
|
506
|
+
* @param workspaceUuid UUID of the workspace.
|
|
507
|
+
* @param imageVariationsInput
|
|
508
|
+
*/
|
|
509
|
+
public async imageVariations (workspaceUuid: string, imageVariationsInput: ImageVariationsInput, options: {headers: {[name: string]: string}} = {headers: {}}) : Promise<{ response: http.IncomingMessage; body: ImageVariations200Response; }> {
|
|
510
|
+
const localVarPath = this.basePath + '/{workspaceUuid}/ai/image-variations'
|
|
511
|
+
.replace('{' + 'workspaceUuid' + '}', encodeURIComponent(String(workspaceUuid)));
|
|
512
|
+
let localVarQueryParameters: any = {};
|
|
513
|
+
let localVarHeaderParams: any = (<any>Object).assign({}, this._defaultHeaders);
|
|
514
|
+
const produces = ['application/json'];
|
|
515
|
+
// give precedence to 'application/json'
|
|
516
|
+
if (produces.indexOf('application/json') >= 0) {
|
|
517
|
+
localVarHeaderParams.Accept = 'application/json';
|
|
518
|
+
} else {
|
|
519
|
+
localVarHeaderParams.Accept = produces.join(',');
|
|
520
|
+
}
|
|
521
|
+
let localVarFormParams: any = {};
|
|
522
|
+
|
|
523
|
+
// verify required parameter 'workspaceUuid' is not null or undefined
|
|
524
|
+
if (workspaceUuid === null || workspaceUuid === undefined) {
|
|
525
|
+
throw new Error('Required parameter workspaceUuid was null or undefined when calling imageVariations.');
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
// verify required parameter 'imageVariationsInput' is not null or undefined
|
|
529
|
+
if (imageVariationsInput === null || imageVariationsInput === undefined) {
|
|
530
|
+
throw new Error('Required parameter imageVariationsInput was null or undefined when calling imageVariations.');
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
(<any>Object).assign(localVarHeaderParams, options.headers);
|
|
534
|
+
|
|
535
|
+
let localVarUseFormData = false;
|
|
536
|
+
|
|
537
|
+
let localVarRequestOptions: localVarRequest.Options = {
|
|
538
|
+
method: 'POST',
|
|
539
|
+
qs: localVarQueryParameters,
|
|
540
|
+
headers: localVarHeaderParams,
|
|
541
|
+
uri: localVarPath,
|
|
542
|
+
useQuerystring: this._useQuerystring,
|
|
543
|
+
json: true,
|
|
544
|
+
body: ObjectSerializer.serialize(imageVariationsInput, "ImageVariationsInput")
|
|
545
|
+
};
|
|
546
|
+
|
|
547
|
+
let authenticationPromise = Promise.resolve();
|
|
548
|
+
if (this.authentications.bearerAuth.accessToken) {
|
|
549
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.bearerAuth.applyToRequest(localVarRequestOptions));
|
|
550
|
+
}
|
|
551
|
+
authenticationPromise = authenticationPromise.then(() => this.authentications.default.applyToRequest(localVarRequestOptions));
|
|
552
|
+
|
|
553
|
+
let interceptorPromise = authenticationPromise;
|
|
554
|
+
for (const interceptor of this.interceptors) {
|
|
555
|
+
interceptorPromise = interceptorPromise.then(() => interceptor(localVarRequestOptions));
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
return interceptorPromise.then(() => {
|
|
559
|
+
if (Object.keys(localVarFormParams).length) {
|
|
560
|
+
if (localVarUseFormData) {
|
|
561
|
+
(<any>localVarRequestOptions).formData = localVarFormParams;
|
|
562
|
+
} else {
|
|
563
|
+
localVarRequestOptions.form = localVarFormParams;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
return new Promise<{ response: http.IncomingMessage; body: ImageVariations200Response; }>((resolve, reject) => {
|
|
567
|
+
localVarRequest(localVarRequestOptions, (error, response, body) => {
|
|
568
|
+
if (error) {
|
|
569
|
+
reject(error);
|
|
570
|
+
} else {
|
|
571
|
+
if (response.statusCode && response.statusCode >= 200 && response.statusCode <= 299) {
|
|
572
|
+
body = ObjectSerializer.deserialize(body, "ImageVariations200Response");
|
|
573
|
+
resolve({ response: response, body: body });
|
|
574
|
+
} else {
|
|
575
|
+
reject(new HttpError(response, body, response.statusCode));
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
});
|
|
580
|
+
});
|
|
581
|
+
}
|
|
582
|
+
}
|
package/api/accountsApi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostBoost API
|
|
3
|
-
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 1.0.0
|
|
6
6
|
* Contact: hi@postboost.co
|
package/api/apis.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './aIApi';
|
|
2
|
+
import { AIApi } from './aIApi';
|
|
1
3
|
export * from './accountsApi';
|
|
2
4
|
import { AccountsApi } from './accountsApi';
|
|
3
5
|
export * from './mediaApi';
|
|
@@ -25,4 +27,4 @@ export class HttpError extends Error {
|
|
|
25
27
|
|
|
26
28
|
export { RequestFile } from '../model/models';
|
|
27
29
|
|
|
28
|
-
export const APIS = [AccountsApi, MediaApi, PostsApi, ReceiptsApi, SubscriptionsApi, TagsApi, UsersApi, WorkspacesApi];
|
|
30
|
+
export const APIS = [AIApi, AccountsApi, MediaApi, PostsApi, ReceiptsApi, SubscriptionsApi, TagsApi, UsersApi, WorkspacesApi];
|
package/api/mediaApi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostBoost API
|
|
3
|
-
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 1.0.0
|
|
6
6
|
* Contact: hi@postboost.co
|
package/api/postsApi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostBoost API
|
|
3
|
-
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 1.0.0
|
|
6
6
|
* Contact: hi@postboost.co
|
package/api/receiptsApi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostBoost API
|
|
3
|
-
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 1.0.0
|
|
6
6
|
* Contact: hi@postboost.co
|
package/api/subscriptionsApi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostBoost API
|
|
3
|
-
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 1.0.0
|
|
6
6
|
* Contact: hi@postboost.co
|
package/api/tagsApi.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* PostBoost API
|
|
3
|
-
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across
|
|
3
|
+
* The PostBoost REST API lets you publish, schedule, and analyze social media posts across 12+ platforms from a single integration. No OAuth apps to maintain — PostBoost handles platform authorization for you. ## Base URL All workspace-scoped endpoints are prefixed with `/{workspaceUuid}`. Panel/admin endpoints are prefixed with `/panel`. ## Authentication All requests require a Bearer token in the `Authorization` header. Generate tokens in your PostBoost dashboard under **Settings → Access Tokens**. ``` Authorization: Bearer YOUR_API_TOKEN ```
|
|
4
4
|
*
|
|
5
5
|
* The version of the OpenAPI document: 1.0.0
|
|
6
6
|
* Contact: hi@postboost.co
|