postboost 1.20.0 → 1.22.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.
Files changed (642) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +8 -1
  3. data/docs/AgentProposal.md +2 -2
  4. data/docs/AgentsApi.md +3 -3
  5. data/docs/FreeToolBuildUtmUrlRequest.md +30 -0
  6. data/docs/FreeToolBuildUtmUrlResponse.md +20 -0
  7. data/docs/FreeToolCalculateEngagementRateRequest.md +32 -0
  8. data/docs/FreeToolCalculateEngagementRateResponse.md +24 -0
  9. data/docs/FreeToolCountCharactersRequest.md +20 -0
  10. data/docs/FreeToolCountCharactersResponse.md +20 -0
  11. data/docs/FreeToolCountCharactersResponseNetworksInner.md +28 -0
  12. data/docs/FreeToolError.md +18 -0
  13. data/docs/FreeToolFormatLinkedInPostRequest.md +22 -0
  14. data/docs/FreeToolFormatLinkedInPostResponse.md +26 -0
  15. data/docs/FreeToolGenerateFancyTextRequest.md +20 -0
  16. data/docs/FreeToolGenerateFancyTextResponse.md +18 -0
  17. data/docs/FreeToolGenerateFancyTextResponseStylesInner.md +22 -0
  18. data/docs/FreeToolList.md +18 -0
  19. data/docs/FreeToolListItem.md +30 -0
  20. data/docs/FreeToolSplitThreadRequest.md +22 -0
  21. data/docs/FreeToolSplitThreadResponse.md +20 -0
  22. data/docs/FreeToolSplitThreadResponsePostsInner.md +20 -0
  23. data/docs/FreeToolsApi.md +459 -0
  24. data/docs/WorkspaceAgentSettings.md +3 -1
  25. data/lib/postboost/api/account_groups_api.rb +1 -1
  26. data/lib/postboost/api/accounts_api.rb +1 -1
  27. data/lib/postboost/api/activity_api.rb +1 -1
  28. data/lib/postboost/api/agents_api.rb +7 -7
  29. data/lib/postboost/api/ai_api.rb +1 -1
  30. data/lib/postboost/api/analytics_api.rb +1 -1
  31. data/lib/postboost/api/competitors_api.rb +1 -1
  32. data/lib/postboost/api/free_tools_api.rb +487 -0
  33. data/lib/postboost/api/hashtag_groups_api.rb +1 -1
  34. data/lib/postboost/api/inbox_api.rb +1 -1
  35. data/lib/postboost/api/media_api.rb +1 -1
  36. data/lib/postboost/api/mentions_api.rb +1 -1
  37. data/lib/postboost/api/posting_schedule_api.rb +1 -1
  38. data/lib/postboost/api/posts_api.rb +1 -1
  39. data/lib/postboost/api/receipts_api.rb +1 -1
  40. data/lib/postboost/api/subscriptions_api.rb +1 -1
  41. data/lib/postboost/api/tags_api.rb +1 -1
  42. data/lib/postboost/api/templates_api.rb +1 -1
  43. data/lib/postboost/api/users_api.rb +1 -1
  44. data/lib/postboost/api/webhooks_api.rb +1 -1
  45. data/lib/postboost/api/workspaces_api.rb +1 -1
  46. data/lib/postboost/api_client.rb +1 -1
  47. data/lib/postboost/api_error.rb +1 -1
  48. data/lib/postboost/configuration.rb +1 -1
  49. data/lib/postboost/models/account.rb +1 -1
  50. data/lib/postboost/models/account_analytics.rb +1 -1
  51. data/lib/postboost/models/account_analytics_initial_sync.rb +1 -1
  52. data/lib/postboost/models/account_connection_health.rb +1 -1
  53. data/lib/postboost/models/account_errors_inner.rb +1 -1
  54. data/lib/postboost/models/account_errors_inner_one_of.rb +1 -1
  55. data/lib/postboost/models/account_group.rb +1 -1
  56. data/lib/postboost/models/account_group_input.rb +1 -1
  57. data/lib/postboost/models/account_health.rb +1 -1
  58. data/lib/postboost/models/account_health_daily_cap.rb +1 -1
  59. data/lib/postboost/models/account_schedule.rb +1 -1
  60. data/lib/postboost/models/add_competitor202_response.rb +1 -1
  61. data/lib/postboost/models/add_competitor409_response.rb +1 -1
  62. data/lib/postboost/models/add_generic_subscription_request.rb +1 -1
  63. data/lib/postboost/models/add_post_to_queue_request.rb +1 -1
  64. data/lib/postboost/models/agent_page_meta.rb +1 -1
  65. data/lib/postboost/models/agent_proposal.rb +5 -5
  66. data/lib/postboost/models/agent_proposal_decision.rb +1 -1
  67. data/lib/postboost/models/agent_run.rb +1 -1
  68. data/lib/postboost/models/ai_credits.rb +1 -1
  69. data/lib/postboost/models/ai_usage.rb +1 -1
  70. data/lib/postboost/models/ai_usage_text.rb +1 -1
  71. data/lib/postboost/models/analytics_period.rb +1 -1
  72. data/lib/postboost/models/analytics_summary.rb +1 -1
  73. data/lib/postboost/models/analytics_summary_data.rb +1 -1
  74. data/lib/postboost/models/api_activity.rb +1 -1
  75. data/lib/postboost/models/api_activity_outcome.rb +1 -1
  76. data/lib/postboost/models/api_key.rb +1 -1
  77. data/lib/postboost/models/api_key_ability.rb +1 -1
  78. data/lib/postboost/models/api_key_input.rb +1 -1
  79. data/lib/postboost/models/approve_agent_proposal200_response.rb +1 -1
  80. data/lib/postboost/models/approve_agent_proposal409_response.rb +1 -1
  81. data/lib/postboost/models/approve_inbox_reply_draft403_response.rb +1 -1
  82. data/lib/postboost/models/approve_post_request.rb +1 -1
  83. data/lib/postboost/models/best_posting_times.rb +1 -1
  84. data/lib/postboost/models/best_posting_times_times_inner.rb +1 -1
  85. data/lib/postboost/models/blog_to_social200_response.rb +1 -1
  86. data/lib/postboost/models/blog_to_social429_response.rb +1 -1
  87. data/lib/postboost/models/blog_to_social_caption.rb +1 -1
  88. data/lib/postboost/models/blog_to_social_input.rb +1 -1
  89. data/lib/postboost/models/blog_to_social_media.rb +1 -1
  90. data/lib/postboost/models/blog_to_social_response.rb +1 -1
  91. data/lib/postboost/models/brand_voice.rb +1 -1
  92. data/lib/postboost/models/brand_voice_input.rb +1 -1
  93. data/lib/postboost/models/brand_voice_meta.rb +1 -1
  94. data/lib/postboost/models/cancel_subscription422_response.rb +1 -1
  95. data/lib/postboost/models/cancel_subscription422_response_errors.rb +1 -1
  96. data/lib/postboost/models/cancel_subscription_request.rb +1 -1
  97. data/lib/postboost/models/change_subscription_plan_request.rb +1 -1
  98. data/lib/postboost/models/channel_account.rb +1 -1
  99. data/lib/postboost/models/checkout_subscription200_response.rb +1 -1
  100. data/lib/postboost/models/checkout_subscription_request.rb +1 -1
  101. data/lib/postboost/models/coded_error.rb +1 -1
  102. data/lib/postboost/models/competitor.rb +1 -1
  103. data/lib/postboost/models/competitor_detail.rb +1 -1
  104. data/lib/postboost/models/competitor_input.rb +1 -1
  105. data/lib/postboost/models/competitor_media.rb +1 -1
  106. data/lib/postboost/models/competitor_snapshot.rb +1 -1
  107. data/lib/postboost/models/complete_chunked_upload_request.rb +1 -1
  108. data/lib/postboost/models/connect_channel_input.rb +1 -1
  109. data/lib/postboost/models/create_account_group201_response.rb +1 -1
  110. data/lib/postboost/models/create_agent201_response.rb +1 -1
  111. data/lib/postboost/models/create_api_key201_response.rb +1 -1
  112. data/lib/postboost/models/create_api_key201_response_data.rb +1 -1
  113. data/lib/postboost/models/create_hashtag_group201_response.rb +1 -1
  114. data/lib/postboost/models/create_inbox_reply_draft201_response.rb +1 -1
  115. data/lib/postboost/models/create_media_folder_request.rb +1 -1
  116. data/lib/postboost/models/create_mention201_response.rb +1 -1
  117. data/lib/postboost/models/create_post201_response.rb +1 -1
  118. data/lib/postboost/models/create_recycling_rule201_response.rb +1 -1
  119. data/lib/postboost/models/create_report_export201_response.rb +1 -1
  120. data/lib/postboost/models/create_reseller_client201_response.rb +1 -1
  121. data/lib/postboost/models/create_rss_feed201_response.rb +1 -1
  122. data/lib/postboost/models/create_template201_response.rb +1 -1
  123. data/lib/postboost/models/create_webhook_subscription201_response.rb +1 -1
  124. data/lib/postboost/models/create_webhook_subscription201_response_data.rb +1 -1
  125. data/lib/postboost/models/delete_agent200_response.rb +1 -1
  126. data/lib/postboost/models/delete_media_bulk_request.rb +1 -1
  127. data/lib/postboost/models/delete_media_bulk_request_items_inner.rb +1 -1
  128. data/lib/postboost/models/delete_media_folder_request.rb +1 -1
  129. data/lib/postboost/models/delete_mode.rb +1 -1
  130. data/lib/postboost/models/delete_post_request.rb +1 -1
  131. data/lib/postboost/models/delete_posts_bulk_request.rb +1 -1
  132. data/lib/postboost/models/delete_receipts_bulk_request.rb +1 -1
  133. data/lib/postboost/models/delete_result.rb +1 -1
  134. data/lib/postboost/models/delete_user400_response.rb +1 -1
  135. data/lib/postboost/models/delete_users_bulk_request.rb +1 -1
  136. data/lib/postboost/models/delete_workspaces_bulk_request.rb +1 -1
  137. data/lib/postboost/models/free_tool_build_utm_url_request.rb +420 -0
  138. data/lib/postboost/models/free_tool_build_utm_url_response.rb +226 -0
  139. data/lib/postboost/models/free_tool_calculate_engagement_rate_request.rb +468 -0
  140. data/lib/postboost/models/free_tool_calculate_engagement_rate_response.rb +242 -0
  141. data/lib/postboost/models/free_tool_count_characters_request.rb +280 -0
  142. data/lib/postboost/models/free_tool_count_characters_response.rb +226 -0
  143. data/lib/postboost/models/free_tool_count_characters_response_networks_inner.rb +259 -0
  144. data/lib/postboost/models/free_tool_error.rb +221 -0
  145. data/lib/postboost/models/free_tool_format_linked_in_post_request.rb +306 -0
  146. data/lib/postboost/models/free_tool_format_linked_in_post_response.rb +251 -0
  147. data/lib/postboost/models/free_tool_generate_fancy_text_request.rb +284 -0
  148. data/lib/postboost/models/free_tool_generate_fancy_text_response.rb +216 -0
  149. data/lib/postboost/models/free_tool_generate_fancy_text_response_styles_inner.rb +233 -0
  150. data/lib/postboost/models/free_tool_list.rb +223 -0
  151. data/lib/postboost/models/free_tool_list_item.rb +344 -0
  152. data/lib/postboost/models/free_tool_split_thread_request.rb +293 -0
  153. data/lib/postboost/models/free_tool_split_thread_response.rb +225 -0
  154. data/lib/postboost/models/free_tool_split_thread_response_posts_inner.rb +224 -0
  155. data/lib/postboost/models/get_account_health200_response.rb +1 -1
  156. data/lib/postboost/models/get_brand_voice200_response.rb +1 -1
  157. data/lib/postboost/models/get_competitor200_response.rb +1 -1
  158. data/lib/postboost/models/get_inbox_conversation200_response.rb +1 -1
  159. data/lib/postboost/models/get_posting_schedule200_response.rb +1 -1
  160. data/lib/postboost/models/get_remote_upload_status200_response.rb +1 -1
  161. data/lib/postboost/models/get_report_branding200_response.rb +1 -1
  162. data/lib/postboost/models/get_repurpose_run200_response.rb +1 -1
  163. data/lib/postboost/models/guardrail_error.rb +1 -1
  164. data/lib/postboost/models/hashtag_group.rb +1 -1
  165. data/lib/postboost/models/hashtag_group_input.rb +1 -1
  166. data/lib/postboost/models/image_alt_text200_response.rb +1 -1
  167. data/lib/postboost/models/image_alt_text_input.rb +1 -1
  168. data/lib/postboost/models/image_alt_text_response.rb +1 -1
  169. data/lib/postboost/models/image_credit_balance.rb +1 -1
  170. data/lib/postboost/models/image_edit_input.rb +1 -1
  171. data/lib/postboost/models/image_generate200_response.rb +1 -1
  172. data/lib/postboost/models/image_generate429_response.rb +1 -1
  173. data/lib/postboost/models/image_generate_input.rb +1 -1
  174. data/lib/postboost/models/image_generation_response.rb +1 -1
  175. data/lib/postboost/models/image_prompt200_response.rb +1 -1
  176. data/lib/postboost/models/image_prompt429_response.rb +1 -1
  177. data/lib/postboost/models/image_prompt_input.rb +1 -1
  178. data/lib/postboost/models/image_prompt_response.rb +1 -1
  179. data/lib/postboost/models/image_variations200_response.rb +1 -1
  180. data/lib/postboost/models/image_variations_input.rb +1 -1
  181. data/lib/postboost/models/image_variations_response.rb +1 -1
  182. data/lib/postboost/models/inbox_author.rb +1 -1
  183. data/lib/postboost/models/inbox_conversation.rb +1 -1
  184. data/lib/postboost/models/inbox_conversation_account.rb +1 -1
  185. data/lib/postboost/models/inbox_conversation_update.rb +1 -1
  186. data/lib/postboost/models/inbox_message.rb +1 -1
  187. data/lib/postboost/models/inbox_message_author.rb +1 -1
  188. data/lib/postboost/models/inbox_reply_draft.rb +1 -1
  189. data/lib/postboost/models/inbox_reply_draft_approve.rb +1 -1
  190. data/lib/postboost/models/inbox_reply_draft_edit.rb +1 -1
  191. data/lib/postboost/models/inbox_reply_draft_input.rb +1 -1
  192. data/lib/postboost/models/initiate_chunked_upload201_response.rb +1 -1
  193. data/lib/postboost/models/initiate_chunked_upload_request.rb +1 -1
  194. data/lib/postboost/models/initiate_remote_upload201_response.rb +1 -1
  195. data/lib/postboost/models/initiate_remote_upload201_response_one_of.rb +1 -1
  196. data/lib/postboost/models/initiate_remote_upload_request.rb +1 -1
  197. data/lib/postboost/models/learn_brand_voice_input.rb +1 -1
  198. data/lib/postboost/models/learn_brand_voice_response.rb +1 -1
  199. data/lib/postboost/models/learn_brand_voice_response_meta.rb +1 -1
  200. data/lib/postboost/models/list_account_groups200_response.rb +1 -1
  201. data/lib/postboost/models/list_accounts200_response.rb +1 -1
  202. data/lib/postboost/models/list_agent_proposals200_response.rb +1 -1
  203. data/lib/postboost/models/list_agent_runs200_response.rb +1 -1
  204. data/lib/postboost/models/list_agents200_response.rb +1 -1
  205. data/lib/postboost/models/list_api_activity200_response.rb +1 -1
  206. data/lib/postboost/models/list_api_keys200_response.rb +1 -1
  207. data/lib/postboost/models/list_competitors200_response.rb +1 -1
  208. data/lib/postboost/models/list_hashtag_groups200_response.rb +1 -1
  209. data/lib/postboost/models/list_inbox_conversations200_response.rb +1 -1
  210. data/lib/postboost/models/list_inbox_reply_drafts200_response.rb +1 -1
  211. data/lib/postboost/models/list_media200_response.rb +1 -1
  212. data/lib/postboost/models/list_media_folders200_response.rb +1 -1
  213. data/lib/postboost/models/list_mentions200_response.rb +1 -1
  214. data/lib/postboost/models/list_my_workspaces200_response.rb +1 -1
  215. data/lib/postboost/models/list_posts200_response.rb +1 -1
  216. data/lib/postboost/models/list_receipts200_response.rb +1 -1
  217. data/lib/postboost/models/list_recycling_rules200_response.rb +1 -1
  218. data/lib/postboost/models/list_recycling_runs200_response.rb +1 -1
  219. data/lib/postboost/models/list_report_exports200_response.rb +1 -1
  220. data/lib/postboost/models/list_reseller_clients200_response.rb +1 -1
  221. data/lib/postboost/models/list_rss_feeds200_response.rb +1 -1
  222. data/lib/postboost/models/list_tags200_response.rb +1 -1
  223. data/lib/postboost/models/list_templates200_response.rb +1 -1
  224. data/lib/postboost/models/list_users200_response.rb +1 -1
  225. data/lib/postboost/models/list_webhook_subscriptions200_response.rb +1 -1
  226. data/lib/postboost/models/list_workspaces200_response.rb +1 -1
  227. data/lib/postboost/models/media.rb +1 -1
  228. data/lib/postboost/models/media_base64_input.rb +1 -1
  229. data/lib/postboost/models/media_folder.rb +1 -1
  230. data/lib/postboost/models/media_folder_input.rb +1 -1
  231. data/lib/postboost/models/media_folder_ref.rb +1 -1
  232. data/lib/postboost/models/mention.rb +1 -1
  233. data/lib/postboost/models/mention_identity.rb +1 -1
  234. data/lib/postboost/models/mention_identity_input.rb +1 -1
  235. data/lib/postboost/models/mention_input.rb +1 -1
  236. data/lib/postboost/models/message_only.rb +1 -1
  237. data/lib/postboost/models/pagination_meta.rb +1 -1
  238. data/lib/postboost/models/pagination_meta_links.rb +1 -1
  239. data/lib/postboost/models/pagination_meta_meta.rb +1 -1
  240. data/lib/postboost/models/poll_rss_feed200_response.rb +1 -1
  241. data/lib/postboost/models/post.rb +1 -1
  242. data/lib/postboost/models/post_analytics.rb +1 -1
  243. data/lib/postboost/models/post_content.rb +1 -1
  244. data/lib/postboost/models/post_input.rb +1 -1
  245. data/lib/postboost/models/post_options_instagram.rb +1 -1
  246. data/lib/postboost/models/post_options_tik_tok.rb +1 -1
  247. data/lib/postboost/models/post_options_youtube.rb +1 -1
  248. data/lib/postboost/models/post_status.rb +1 -1
  249. data/lib/postboost/models/post_version.rb +1 -1
  250. data/lib/postboost/models/post_version_options.rb +1 -1
  251. data/lib/postboost/models/post_warning.rb +1 -1
  252. data/lib/postboost/models/post_warnings.rb +1 -1
  253. data/lib/postboost/models/posting_schedule.rb +1 -1
  254. data/lib/postboost/models/posting_schedule_day.rb +1 -1
  255. data/lib/postboost/models/posting_schedule_day_times_inner.rb +1 -1
  256. data/lib/postboost/models/posting_schedule_input.rb +1 -1
  257. data/lib/postboost/models/posting_time_slot.rb +1 -1
  258. data/lib/postboost/models/posting_times.rb +1 -1
  259. data/lib/postboost/models/posting_times_best_inner.rb +1 -1
  260. data/lib/postboost/models/posting_times_day_intervals_inner_inner.rb +1 -1
  261. data/lib/postboost/models/posting_times_days_inner.rb +1 -1
  262. data/lib/postboost/models/preflight_result.rb +1 -1
  263. data/lib/postboost/models/public_workspace.rb +1 -1
  264. data/lib/postboost/models/public_workspace_pivot.rb +1 -1
  265. data/lib/postboost/models/publish_progress.rb +1 -1
  266. data/lib/postboost/models/queue_slots.rb +1 -1
  267. data/lib/postboost/models/receipt.rb +1 -1
  268. data/lib/postboost/models/receipt_input.rb +1 -1
  269. data/lib/postboost/models/receipt_update_input.rb +1 -1
  270. data/lib/postboost/models/recommended_posting_times.rb +1 -1
  271. data/lib/postboost/models/reconnect_link.rb +1 -1
  272. data/lib/postboost/models/recycling_rule.rb +1 -1
  273. data/lib/postboost/models/recycling_rule_input.rb +1 -1
  274. data/lib/postboost/models/recycling_rule_settings.rb +1 -1
  275. data/lib/postboost/models/recycling_rule_update.rb +1 -1
  276. data/lib/postboost/models/recycling_run.rb +1 -1
  277. data/lib/postboost/models/remove_generic_subscription422_response.rb +1 -1
  278. data/lib/postboost/models/remove_user_from_workspace_request.rb +1 -1
  279. data/lib/postboost/models/report_branding.rb +1 -1
  280. data/lib/postboost/models/report_branding_input.rb +1 -1
  281. data/lib/postboost/models/report_export.rb +1 -1
  282. data/lib/postboost/models/report_export_input.rb +1 -1
  283. data/lib/postboost/models/repurpose_content200_response.rb +1 -1
  284. data/lib/postboost/models/repurpose_content202_response.rb +1 -1
  285. data/lib/postboost/models/repurpose_content500_response.rb +1 -1
  286. data/lib/postboost/models/repurpose_input.rb +1 -1
  287. data/lib/postboost/models/repurpose_input_theme.rb +1 -1
  288. data/lib/postboost/models/repurpose_result.rb +1 -1
  289. data/lib/postboost/models/repurpose_result_media.rb +1 -1
  290. data/lib/postboost/models/repurpose_result_source.rb +1 -1
  291. data/lib/postboost/models/repurpose_run.rb +1 -1
  292. data/lib/postboost/models/repurpose_run_accepted.rb +1 -1
  293. data/lib/postboost/models/repurpose_slide.rb +1 -1
  294. data/lib/postboost/models/reseller_client.rb +1 -1
  295. data/lib/postboost/models/reseller_client_input.rb +1 -1
  296. data/lib/postboost/models/reseller_client_usage.rb +1 -1
  297. data/lib/postboost/models/retry_post_account_result.rb +1 -1
  298. data/lib/postboost/models/rss_feed.rb +1 -1
  299. data/lib/postboost/models/rss_feed_input.rb +1 -1
  300. data/lib/postboost/models/rss_feed_update.rb +1 -1
  301. data/lib/postboost/models/run_agent202_response.rb +1 -1
  302. data/lib/postboost/models/schedule_post_request.rb +1 -1
  303. data/lib/postboost/models/schedule_result.rb +1 -1
  304. data/lib/postboost/models/subscription.rb +1 -1
  305. data/lib/postboost/models/subscription_input.rb +1 -1
  306. data/lib/postboost/models/subscription_status.rb +1 -1
  307. data/lib/postboost/models/subscription_update_input.rb +1 -1
  308. data/lib/postboost/models/tag.rb +1 -1
  309. data/lib/postboost/models/tag_input.rb +1 -1
  310. data/lib/postboost/models/template.rb +1 -1
  311. data/lib/postboost/models/template_content_item.rb +1 -1
  312. data/lib/postboost/models/template_input.rb +1 -1
  313. data/lib/postboost/models/template_input_content_inner.rb +1 -1
  314. data/lib/postboost/models/update_media_request.rb +1 -1
  315. data/lib/postboost/models/update_post200_response.rb +1 -1
  316. data/lib/postboost/models/upload_chunk201_response.rb +1 -1
  317. data/lib/postboost/models/user.rb +1 -1
  318. data/lib/postboost/models/user_input.rb +1 -1
  319. data/lib/postboost/models/user_update_input.rb +1 -1
  320. data/lib/postboost/models/webhook_event_name.rb +1 -1
  321. data/lib/postboost/models/webhook_event_payload.rb +1 -1
  322. data/lib/postboost/models/webhook_subscription.rb +1 -1
  323. data/lib/postboost/models/webhook_subscription_input.rb +1 -1
  324. data/lib/postboost/models/workspace.rb +1 -1
  325. data/lib/postboost/models/workspace_agent.rb +3 -3
  326. data/lib/postboost/models/workspace_agent_input.rb +3 -3
  327. data/lib/postboost/models/workspace_agent_settings.rb +46 -6
  328. data/lib/postboost/models/workspace_agent_update.rb +1 -1
  329. data/lib/postboost/models/workspace_input.rb +1 -1
  330. data/lib/postboost/models/workspace_user_input.rb +1 -1
  331. data/lib/postboost/models/x_usage.rb +1 -1
  332. data/lib/postboost/models/x_usage_counter.rb +1 -1
  333. data/lib/postboost/version.rb +2 -2
  334. data/lib/postboost.rb +20 -1
  335. data/postboost.gemspec +1 -1
  336. data/spec/api/account_groups_api_spec.rb +1 -1
  337. data/spec/api/accounts_api_spec.rb +1 -1
  338. data/spec/api/activity_api_spec.rb +1 -1
  339. data/spec/api/agents_api_spec.rb +4 -4
  340. data/spec/api/ai_api_spec.rb +1 -1
  341. data/spec/api/analytics_api_spec.rb +1 -1
  342. data/spec/api/competitors_api_spec.rb +1 -1
  343. data/spec/api/free_tools_api_spec.rb +118 -0
  344. data/spec/api/hashtag_groups_api_spec.rb +1 -1
  345. data/spec/api/inbox_api_spec.rb +1 -1
  346. data/spec/api/media_api_spec.rb +1 -1
  347. data/spec/api/mentions_api_spec.rb +1 -1
  348. data/spec/api/posting_schedule_api_spec.rb +1 -1
  349. data/spec/api/posts_api_spec.rb +1 -1
  350. data/spec/api/receipts_api_spec.rb +1 -1
  351. data/spec/api/subscriptions_api_spec.rb +1 -1
  352. data/spec/api/tags_api_spec.rb +1 -1
  353. data/spec/api/templates_api_spec.rb +1 -1
  354. data/spec/api/users_api_spec.rb +1 -1
  355. data/spec/api/webhooks_api_spec.rb +1 -1
  356. data/spec/api/workspaces_api_spec.rb +1 -1
  357. data/spec/models/account_analytics_initial_sync_spec.rb +1 -1
  358. data/spec/models/account_analytics_spec.rb +1 -1
  359. data/spec/models/account_connection_health_spec.rb +1 -1
  360. data/spec/models/account_errors_inner_one_of_spec.rb +1 -1
  361. data/spec/models/account_errors_inner_spec.rb +1 -1
  362. data/spec/models/account_group_input_spec.rb +1 -1
  363. data/spec/models/account_group_spec.rb +1 -1
  364. data/spec/models/account_health_daily_cap_spec.rb +1 -1
  365. data/spec/models/account_health_spec.rb +1 -1
  366. data/spec/models/account_schedule_spec.rb +1 -1
  367. data/spec/models/account_spec.rb +1 -1
  368. data/spec/models/add_competitor202_response_spec.rb +1 -1
  369. data/spec/models/add_competitor409_response_spec.rb +1 -1
  370. data/spec/models/add_generic_subscription_request_spec.rb +1 -1
  371. data/spec/models/add_post_to_queue_request_spec.rb +1 -1
  372. data/spec/models/agent_page_meta_spec.rb +1 -1
  373. data/spec/models/agent_proposal_decision_spec.rb +1 -1
  374. data/spec/models/agent_proposal_spec.rb +2 -2
  375. data/spec/models/agent_run_spec.rb +1 -1
  376. data/spec/models/ai_credits_spec.rb +1 -1
  377. data/spec/models/ai_usage_spec.rb +1 -1
  378. data/spec/models/ai_usage_text_spec.rb +1 -1
  379. data/spec/models/analytics_period_spec.rb +1 -1
  380. data/spec/models/analytics_summary_data_spec.rb +1 -1
  381. data/spec/models/analytics_summary_spec.rb +1 -1
  382. data/spec/models/api_activity_outcome_spec.rb +1 -1
  383. data/spec/models/api_activity_spec.rb +1 -1
  384. data/spec/models/api_key_ability_spec.rb +1 -1
  385. data/spec/models/api_key_input_spec.rb +1 -1
  386. data/spec/models/api_key_spec.rb +1 -1
  387. data/spec/models/approve_agent_proposal200_response_spec.rb +1 -1
  388. data/spec/models/approve_agent_proposal409_response_spec.rb +1 -1
  389. data/spec/models/approve_inbox_reply_draft403_response_spec.rb +1 -1
  390. data/spec/models/approve_post_request_spec.rb +1 -1
  391. data/spec/models/best_posting_times_spec.rb +1 -1
  392. data/spec/models/best_posting_times_times_inner_spec.rb +1 -1
  393. data/spec/models/blog_to_social200_response_spec.rb +1 -1
  394. data/spec/models/blog_to_social429_response_spec.rb +1 -1
  395. data/spec/models/blog_to_social_caption_spec.rb +1 -1
  396. data/spec/models/blog_to_social_input_spec.rb +1 -1
  397. data/spec/models/blog_to_social_media_spec.rb +1 -1
  398. data/spec/models/blog_to_social_response_spec.rb +1 -1
  399. data/spec/models/brand_voice_input_spec.rb +1 -1
  400. data/spec/models/brand_voice_meta_spec.rb +1 -1
  401. data/spec/models/brand_voice_spec.rb +1 -1
  402. data/spec/models/cancel_subscription422_response_errors_spec.rb +1 -1
  403. data/spec/models/cancel_subscription422_response_spec.rb +1 -1
  404. data/spec/models/cancel_subscription_request_spec.rb +1 -1
  405. data/spec/models/change_subscription_plan_request_spec.rb +1 -1
  406. data/spec/models/channel_account_spec.rb +1 -1
  407. data/spec/models/checkout_subscription200_response_spec.rb +1 -1
  408. data/spec/models/checkout_subscription_request_spec.rb +1 -1
  409. data/spec/models/coded_error_spec.rb +1 -1
  410. data/spec/models/competitor_detail_spec.rb +1 -1
  411. data/spec/models/competitor_input_spec.rb +1 -1
  412. data/spec/models/competitor_media_spec.rb +1 -1
  413. data/spec/models/competitor_snapshot_spec.rb +1 -1
  414. data/spec/models/competitor_spec.rb +1 -1
  415. data/spec/models/complete_chunked_upload_request_spec.rb +1 -1
  416. data/spec/models/connect_channel_input_spec.rb +1 -1
  417. data/spec/models/create_account_group201_response_spec.rb +1 -1
  418. data/spec/models/create_agent201_response_spec.rb +1 -1
  419. data/spec/models/create_api_key201_response_data_spec.rb +1 -1
  420. data/spec/models/create_api_key201_response_spec.rb +1 -1
  421. data/spec/models/create_hashtag_group201_response_spec.rb +1 -1
  422. data/spec/models/create_inbox_reply_draft201_response_spec.rb +1 -1
  423. data/spec/models/create_media_folder_request_spec.rb +1 -1
  424. data/spec/models/create_mention201_response_spec.rb +1 -1
  425. data/spec/models/create_post201_response_spec.rb +1 -1
  426. data/spec/models/create_recycling_rule201_response_spec.rb +1 -1
  427. data/spec/models/create_report_export201_response_spec.rb +1 -1
  428. data/spec/models/create_reseller_client201_response_spec.rb +1 -1
  429. data/spec/models/create_rss_feed201_response_spec.rb +1 -1
  430. data/spec/models/create_template201_response_spec.rb +1 -1
  431. data/spec/models/create_webhook_subscription201_response_data_spec.rb +1 -1
  432. data/spec/models/create_webhook_subscription201_response_spec.rb +1 -1
  433. data/spec/models/delete_agent200_response_spec.rb +1 -1
  434. data/spec/models/delete_media_bulk_request_items_inner_spec.rb +1 -1
  435. data/spec/models/delete_media_bulk_request_spec.rb +1 -1
  436. data/spec/models/delete_media_folder_request_spec.rb +1 -1
  437. data/spec/models/delete_mode_spec.rb +1 -1
  438. data/spec/models/delete_post_request_spec.rb +1 -1
  439. data/spec/models/delete_posts_bulk_request_spec.rb +1 -1
  440. data/spec/models/delete_receipts_bulk_request_spec.rb +1 -1
  441. data/spec/models/delete_result_spec.rb +1 -1
  442. data/spec/models/delete_user400_response_spec.rb +1 -1
  443. data/spec/models/delete_users_bulk_request_spec.rb +1 -1
  444. data/spec/models/delete_workspaces_bulk_request_spec.rb +1 -1
  445. data/spec/models/free_tool_build_utm_url_request_spec.rb +72 -0
  446. data/spec/models/free_tool_build_utm_url_response_spec.rb +42 -0
  447. data/spec/models/free_tool_calculate_engagement_rate_request_spec.rb +82 -0
  448. data/spec/models/free_tool_calculate_engagement_rate_response_spec.rb +54 -0
  449. data/spec/models/free_tool_count_characters_request_spec.rb +46 -0
  450. data/spec/models/free_tool_count_characters_response_networks_inner_spec.rb +66 -0
  451. data/spec/models/free_tool_count_characters_response_spec.rb +42 -0
  452. data/spec/models/free_tool_error_spec.rb +36 -0
  453. data/spec/models/free_tool_format_linked_in_post_request_spec.rb +56 -0
  454. data/spec/models/free_tool_format_linked_in_post_response_spec.rb +60 -0
  455. data/spec/models/free_tool_generate_fancy_text_request_spec.rb +46 -0
  456. data/spec/models/free_tool_generate_fancy_text_response_spec.rb +36 -0
  457. data/spec/models/free_tool_generate_fancy_text_response_styles_inner_spec.rb +48 -0
  458. data/spec/models/free_tool_list_item_spec.rb +76 -0
  459. data/spec/models/free_tool_list_spec.rb +36 -0
  460. data/spec/models/free_tool_split_thread_request_spec.rb +52 -0
  461. data/spec/models/free_tool_split_thread_response_posts_inner_spec.rb +42 -0
  462. data/spec/models/free_tool_split_thread_response_spec.rb +42 -0
  463. data/spec/models/get_account_health200_response_spec.rb +1 -1
  464. data/spec/models/get_brand_voice200_response_spec.rb +1 -1
  465. data/spec/models/get_competitor200_response_spec.rb +1 -1
  466. data/spec/models/get_inbox_conversation200_response_spec.rb +1 -1
  467. data/spec/models/get_posting_schedule200_response_spec.rb +1 -1
  468. data/spec/models/get_remote_upload_status200_response_spec.rb +1 -1
  469. data/spec/models/get_report_branding200_response_spec.rb +1 -1
  470. data/spec/models/get_repurpose_run200_response_spec.rb +1 -1
  471. data/spec/models/guardrail_error_spec.rb +1 -1
  472. data/spec/models/hashtag_group_input_spec.rb +1 -1
  473. data/spec/models/hashtag_group_spec.rb +1 -1
  474. data/spec/models/image_alt_text200_response_spec.rb +1 -1
  475. data/spec/models/image_alt_text_input_spec.rb +1 -1
  476. data/spec/models/image_alt_text_response_spec.rb +1 -1
  477. data/spec/models/image_credit_balance_spec.rb +1 -1
  478. data/spec/models/image_edit_input_spec.rb +1 -1
  479. data/spec/models/image_generate200_response_spec.rb +1 -1
  480. data/spec/models/image_generate429_response_spec.rb +1 -1
  481. data/spec/models/image_generate_input_spec.rb +1 -1
  482. data/spec/models/image_generation_response_spec.rb +1 -1
  483. data/spec/models/image_prompt200_response_spec.rb +1 -1
  484. data/spec/models/image_prompt429_response_spec.rb +1 -1
  485. data/spec/models/image_prompt_input_spec.rb +1 -1
  486. data/spec/models/image_prompt_response_spec.rb +1 -1
  487. data/spec/models/image_variations200_response_spec.rb +1 -1
  488. data/spec/models/image_variations_input_spec.rb +1 -1
  489. data/spec/models/image_variations_response_spec.rb +1 -1
  490. data/spec/models/inbox_author_spec.rb +1 -1
  491. data/spec/models/inbox_conversation_account_spec.rb +1 -1
  492. data/spec/models/inbox_conversation_spec.rb +1 -1
  493. data/spec/models/inbox_conversation_update_spec.rb +1 -1
  494. data/spec/models/inbox_message_author_spec.rb +1 -1
  495. data/spec/models/inbox_message_spec.rb +1 -1
  496. data/spec/models/inbox_reply_draft_approve_spec.rb +1 -1
  497. data/spec/models/inbox_reply_draft_edit_spec.rb +1 -1
  498. data/spec/models/inbox_reply_draft_input_spec.rb +1 -1
  499. data/spec/models/inbox_reply_draft_spec.rb +1 -1
  500. data/spec/models/initiate_chunked_upload201_response_spec.rb +1 -1
  501. data/spec/models/initiate_chunked_upload_request_spec.rb +1 -1
  502. data/spec/models/initiate_remote_upload201_response_one_of_spec.rb +1 -1
  503. data/spec/models/initiate_remote_upload201_response_spec.rb +1 -1
  504. data/spec/models/initiate_remote_upload_request_spec.rb +1 -1
  505. data/spec/models/learn_brand_voice_input_spec.rb +1 -1
  506. data/spec/models/learn_brand_voice_response_meta_spec.rb +1 -1
  507. data/spec/models/learn_brand_voice_response_spec.rb +1 -1
  508. data/spec/models/list_account_groups200_response_spec.rb +1 -1
  509. data/spec/models/list_accounts200_response_spec.rb +1 -1
  510. data/spec/models/list_agent_proposals200_response_spec.rb +1 -1
  511. data/spec/models/list_agent_runs200_response_spec.rb +1 -1
  512. data/spec/models/list_agents200_response_spec.rb +1 -1
  513. data/spec/models/list_api_activity200_response_spec.rb +1 -1
  514. data/spec/models/list_api_keys200_response_spec.rb +1 -1
  515. data/spec/models/list_competitors200_response_spec.rb +1 -1
  516. data/spec/models/list_hashtag_groups200_response_spec.rb +1 -1
  517. data/spec/models/list_inbox_conversations200_response_spec.rb +1 -1
  518. data/spec/models/list_inbox_reply_drafts200_response_spec.rb +1 -1
  519. data/spec/models/list_media200_response_spec.rb +1 -1
  520. data/spec/models/list_media_folders200_response_spec.rb +1 -1
  521. data/spec/models/list_mentions200_response_spec.rb +1 -1
  522. data/spec/models/list_my_workspaces200_response_spec.rb +1 -1
  523. data/spec/models/list_posts200_response_spec.rb +1 -1
  524. data/spec/models/list_receipts200_response_spec.rb +1 -1
  525. data/spec/models/list_recycling_rules200_response_spec.rb +1 -1
  526. data/spec/models/list_recycling_runs200_response_spec.rb +1 -1
  527. data/spec/models/list_report_exports200_response_spec.rb +1 -1
  528. data/spec/models/list_reseller_clients200_response_spec.rb +1 -1
  529. data/spec/models/list_rss_feeds200_response_spec.rb +1 -1
  530. data/spec/models/list_tags200_response_spec.rb +1 -1
  531. data/spec/models/list_templates200_response_spec.rb +1 -1
  532. data/spec/models/list_users200_response_spec.rb +1 -1
  533. data/spec/models/list_webhook_subscriptions200_response_spec.rb +1 -1
  534. data/spec/models/list_workspaces200_response_spec.rb +1 -1
  535. data/spec/models/media_base64_input_spec.rb +1 -1
  536. data/spec/models/media_folder_input_spec.rb +1 -1
  537. data/spec/models/media_folder_ref_spec.rb +1 -1
  538. data/spec/models/media_folder_spec.rb +1 -1
  539. data/spec/models/media_spec.rb +1 -1
  540. data/spec/models/mention_identity_input_spec.rb +1 -1
  541. data/spec/models/mention_identity_spec.rb +1 -1
  542. data/spec/models/mention_input_spec.rb +1 -1
  543. data/spec/models/mention_spec.rb +1 -1
  544. data/spec/models/message_only_spec.rb +1 -1
  545. data/spec/models/pagination_meta_links_spec.rb +1 -1
  546. data/spec/models/pagination_meta_meta_spec.rb +1 -1
  547. data/spec/models/pagination_meta_spec.rb +1 -1
  548. data/spec/models/poll_rss_feed200_response_spec.rb +1 -1
  549. data/spec/models/post_analytics_spec.rb +1 -1
  550. data/spec/models/post_content_spec.rb +1 -1
  551. data/spec/models/post_input_spec.rb +1 -1
  552. data/spec/models/post_options_instagram_spec.rb +1 -1
  553. data/spec/models/post_options_tik_tok_spec.rb +1 -1
  554. data/spec/models/post_options_youtube_spec.rb +1 -1
  555. data/spec/models/post_spec.rb +1 -1
  556. data/spec/models/post_status_spec.rb +1 -1
  557. data/spec/models/post_version_options_spec.rb +1 -1
  558. data/spec/models/post_version_spec.rb +1 -1
  559. data/spec/models/post_warning_spec.rb +1 -1
  560. data/spec/models/post_warnings_spec.rb +1 -1
  561. data/spec/models/posting_schedule_day_spec.rb +1 -1
  562. data/spec/models/posting_schedule_day_times_inner_spec.rb +1 -1
  563. data/spec/models/posting_schedule_input_spec.rb +1 -1
  564. data/spec/models/posting_schedule_spec.rb +1 -1
  565. data/spec/models/posting_time_slot_spec.rb +1 -1
  566. data/spec/models/posting_times_best_inner_spec.rb +1 -1
  567. data/spec/models/posting_times_day_intervals_inner_inner_spec.rb +1 -1
  568. data/spec/models/posting_times_days_inner_spec.rb +1 -1
  569. data/spec/models/posting_times_spec.rb +1 -1
  570. data/spec/models/preflight_result_spec.rb +1 -1
  571. data/spec/models/public_workspace_pivot_spec.rb +1 -1
  572. data/spec/models/public_workspace_spec.rb +1 -1
  573. data/spec/models/publish_progress_spec.rb +1 -1
  574. data/spec/models/queue_slots_spec.rb +1 -1
  575. data/spec/models/receipt_input_spec.rb +1 -1
  576. data/spec/models/receipt_spec.rb +1 -1
  577. data/spec/models/receipt_update_input_spec.rb +1 -1
  578. data/spec/models/recommended_posting_times_spec.rb +1 -1
  579. data/spec/models/reconnect_link_spec.rb +1 -1
  580. data/spec/models/recycling_rule_input_spec.rb +1 -1
  581. data/spec/models/recycling_rule_settings_spec.rb +1 -1
  582. data/spec/models/recycling_rule_spec.rb +1 -1
  583. data/spec/models/recycling_rule_update_spec.rb +1 -1
  584. data/spec/models/recycling_run_spec.rb +1 -1
  585. data/spec/models/remove_generic_subscription422_response_spec.rb +1 -1
  586. data/spec/models/remove_user_from_workspace_request_spec.rb +1 -1
  587. data/spec/models/report_branding_input_spec.rb +1 -1
  588. data/spec/models/report_branding_spec.rb +1 -1
  589. data/spec/models/report_export_input_spec.rb +1 -1
  590. data/spec/models/report_export_spec.rb +1 -1
  591. data/spec/models/repurpose_content200_response_spec.rb +1 -1
  592. data/spec/models/repurpose_content202_response_spec.rb +1 -1
  593. data/spec/models/repurpose_content500_response_spec.rb +1 -1
  594. data/spec/models/repurpose_input_spec.rb +1 -1
  595. data/spec/models/repurpose_input_theme_spec.rb +1 -1
  596. data/spec/models/repurpose_result_media_spec.rb +1 -1
  597. data/spec/models/repurpose_result_source_spec.rb +1 -1
  598. data/spec/models/repurpose_result_spec.rb +1 -1
  599. data/spec/models/repurpose_run_accepted_spec.rb +1 -1
  600. data/spec/models/repurpose_run_spec.rb +1 -1
  601. data/spec/models/repurpose_slide_spec.rb +1 -1
  602. data/spec/models/reseller_client_input_spec.rb +1 -1
  603. data/spec/models/reseller_client_spec.rb +1 -1
  604. data/spec/models/reseller_client_usage_spec.rb +1 -1
  605. data/spec/models/retry_post_account_result_spec.rb +1 -1
  606. data/spec/models/rss_feed_input_spec.rb +1 -1
  607. data/spec/models/rss_feed_spec.rb +1 -1
  608. data/spec/models/rss_feed_update_spec.rb +1 -1
  609. data/spec/models/run_agent202_response_spec.rb +1 -1
  610. data/spec/models/schedule_post_request_spec.rb +1 -1
  611. data/spec/models/schedule_result_spec.rb +1 -1
  612. data/spec/models/subscription_input_spec.rb +1 -1
  613. data/spec/models/subscription_spec.rb +1 -1
  614. data/spec/models/subscription_status_spec.rb +1 -1
  615. data/spec/models/subscription_update_input_spec.rb +1 -1
  616. data/spec/models/tag_input_spec.rb +1 -1
  617. data/spec/models/tag_spec.rb +1 -1
  618. data/spec/models/template_content_item_spec.rb +1 -1
  619. data/spec/models/template_input_content_inner_spec.rb +1 -1
  620. data/spec/models/template_input_spec.rb +1 -1
  621. data/spec/models/template_spec.rb +1 -1
  622. data/spec/models/update_media_request_spec.rb +1 -1
  623. data/spec/models/update_post200_response_spec.rb +1 -1
  624. data/spec/models/upload_chunk201_response_spec.rb +1 -1
  625. data/spec/models/user_input_spec.rb +1 -1
  626. data/spec/models/user_spec.rb +1 -1
  627. data/spec/models/user_update_input_spec.rb +1 -1
  628. data/spec/models/webhook_event_name_spec.rb +1 -1
  629. data/spec/models/webhook_event_payload_spec.rb +1 -1
  630. data/spec/models/webhook_subscription_input_spec.rb +1 -1
  631. data/spec/models/webhook_subscription_spec.rb +1 -1
  632. data/spec/models/workspace_agent_input_spec.rb +2 -2
  633. data/spec/models/workspace_agent_settings_spec.rb +7 -1
  634. data/spec/models/workspace_agent_spec.rb +2 -2
  635. data/spec/models/workspace_agent_update_spec.rb +1 -1
  636. data/spec/models/workspace_input_spec.rb +1 -1
  637. data/spec/models/workspace_spec.rb +1 -1
  638. data/spec/models/workspace_user_input_spec.rb +1 -1
  639. data/spec/models/x_usage_counter_spec.rb +1 -1
  640. data/spec/models/x_usage_spec.rb +1 -1
  641. data/spec/spec_helper.rb +1 -1
  642. metadata +77 -1
@@ -0,0 +1,487 @@
1
+ =begin
2
+ #PostBoost API
3
+
4
+ #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
+
6
+ The version of the OpenAPI document: 1.22.0
7
+ Contact: hi@postboost.co
8
+ Generated by: https://openapi-generator.tech
9
+ Generator version: 7.9.0
10
+
11
+ =end
12
+
13
+ require 'cgi'
14
+
15
+ module PostBoost
16
+ class FreeToolsApi
17
+ attr_accessor :api_client
18
+
19
+ def initialize(api_client = ApiClient.default)
20
+ @api_client = api_client
21
+ end
22
+ # Build a UTM-tagged campaign URL
23
+ # Build a UTM-tagged campaign URL. The same logic as the free web tool at https://postboost.co/tools/utm-builder. No account needed: call it without a token, or with any API token.
24
+ # @param free_tool_build_utm_url_request [FreeToolBuildUtmUrlRequest]
25
+ # @param [Hash] opts the optional parameters
26
+ # @return [FreeToolBuildUtmUrlResponse]
27
+ def build_utm_url(free_tool_build_utm_url_request, opts = {})
28
+ data, _status_code, _headers = build_utm_url_with_http_info(free_tool_build_utm_url_request, opts)
29
+ data
30
+ end
31
+
32
+ # Build a UTM-tagged campaign URL
33
+ # Build a UTM-tagged campaign URL. The same logic as the free web tool at https://postboost.co/tools/utm-builder. No account needed: call it without a token, or with any API token.
34
+ # @param free_tool_build_utm_url_request [FreeToolBuildUtmUrlRequest]
35
+ # @param [Hash] opts the optional parameters
36
+ # @return [Array<(FreeToolBuildUtmUrlResponse, Integer, Hash)>] FreeToolBuildUtmUrlResponse data, response status code and response headers
37
+ def build_utm_url_with_http_info(free_tool_build_utm_url_request, opts = {})
38
+ if @api_client.config.debugging
39
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.build_utm_url ...'
40
+ end
41
+ # verify the required parameter 'free_tool_build_utm_url_request' is set
42
+ if @api_client.config.client_side_validation && free_tool_build_utm_url_request.nil?
43
+ fail ArgumentError, "Missing the required parameter 'free_tool_build_utm_url_request' when calling FreeToolsApi.build_utm_url"
44
+ end
45
+ # resource path
46
+ local_var_path = '/tools/utm-builder'
47
+
48
+ # query parameters
49
+ query_params = opts[:query_params] || {}
50
+
51
+ # header parameters
52
+ header_params = opts[:header_params] || {}
53
+ # HTTP header 'Accept' (if needed)
54
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
55
+ # HTTP header 'Content-Type'
56
+ content_type = @api_client.select_header_content_type(['application/json'])
57
+ if !content_type.nil?
58
+ header_params['Content-Type'] = content_type
59
+ end
60
+
61
+ # form parameters
62
+ form_params = opts[:form_params] || {}
63
+
64
+ # http body (model)
65
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(free_tool_build_utm_url_request)
66
+
67
+ # return_type
68
+ return_type = opts[:debug_return_type] || 'FreeToolBuildUtmUrlResponse'
69
+
70
+ # auth_names
71
+ auth_names = opts[:debug_auth_names] || []
72
+
73
+ new_options = opts.merge(
74
+ :operation => :"FreeToolsApi.build_utm_url",
75
+ :header_params => header_params,
76
+ :query_params => query_params,
77
+ :form_params => form_params,
78
+ :body => post_body,
79
+ :auth_names => auth_names,
80
+ :return_type => return_type
81
+ )
82
+
83
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
84
+ if @api_client.config.debugging
85
+ @api_client.config.logger.debug "API called: FreeToolsApi#build_utm_url\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
86
+ end
87
+ return data, status_code, headers
88
+ end
89
+
90
+ # Calculate an engagement rate
91
+ # Calculate an engagement rate. The same logic as the free web tool at https://postboost.co/tools/engagement-rate-calculator. No account needed: call it without a token, or with any API token.
92
+ # @param free_tool_calculate_engagement_rate_request [FreeToolCalculateEngagementRateRequest]
93
+ # @param [Hash] opts the optional parameters
94
+ # @return [FreeToolCalculateEngagementRateResponse]
95
+ def calculate_engagement_rate(free_tool_calculate_engagement_rate_request, opts = {})
96
+ data, _status_code, _headers = calculate_engagement_rate_with_http_info(free_tool_calculate_engagement_rate_request, opts)
97
+ data
98
+ end
99
+
100
+ # Calculate an engagement rate
101
+ # Calculate an engagement rate. The same logic as the free web tool at https://postboost.co/tools/engagement-rate-calculator. No account needed: call it without a token, or with any API token.
102
+ # @param free_tool_calculate_engagement_rate_request [FreeToolCalculateEngagementRateRequest]
103
+ # @param [Hash] opts the optional parameters
104
+ # @return [Array<(FreeToolCalculateEngagementRateResponse, Integer, Hash)>] FreeToolCalculateEngagementRateResponse data, response status code and response headers
105
+ def calculate_engagement_rate_with_http_info(free_tool_calculate_engagement_rate_request, opts = {})
106
+ if @api_client.config.debugging
107
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.calculate_engagement_rate ...'
108
+ end
109
+ # verify the required parameter 'free_tool_calculate_engagement_rate_request' is set
110
+ if @api_client.config.client_side_validation && free_tool_calculate_engagement_rate_request.nil?
111
+ fail ArgumentError, "Missing the required parameter 'free_tool_calculate_engagement_rate_request' when calling FreeToolsApi.calculate_engagement_rate"
112
+ end
113
+ # resource path
114
+ local_var_path = '/tools/engagement-rate-calculator'
115
+
116
+ # query parameters
117
+ query_params = opts[:query_params] || {}
118
+
119
+ # header parameters
120
+ header_params = opts[:header_params] || {}
121
+ # HTTP header 'Accept' (if needed)
122
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
123
+ # HTTP header 'Content-Type'
124
+ content_type = @api_client.select_header_content_type(['application/json'])
125
+ if !content_type.nil?
126
+ header_params['Content-Type'] = content_type
127
+ end
128
+
129
+ # form parameters
130
+ form_params = opts[:form_params] || {}
131
+
132
+ # http body (model)
133
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(free_tool_calculate_engagement_rate_request)
134
+
135
+ # return_type
136
+ return_type = opts[:debug_return_type] || 'FreeToolCalculateEngagementRateResponse'
137
+
138
+ # auth_names
139
+ auth_names = opts[:debug_auth_names] || []
140
+
141
+ new_options = opts.merge(
142
+ :operation => :"FreeToolsApi.calculate_engagement_rate",
143
+ :header_params => header_params,
144
+ :query_params => query_params,
145
+ :form_params => form_params,
146
+ :body => post_body,
147
+ :auth_names => auth_names,
148
+ :return_type => return_type
149
+ )
150
+
151
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
152
+ if @api_client.config.debugging
153
+ @api_client.config.logger.debug "API called: FreeToolsApi#calculate_engagement_rate\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
154
+ end
155
+ return data, status_code, headers
156
+ end
157
+
158
+ # Count characters as each network counts them
159
+ # Count characters as each network counts them. The same logic as the free web tool at https://postboost.co/tools/social-media-character-counter. No account needed: call it without a token, or with any API token.
160
+ # @param free_tool_count_characters_request [FreeToolCountCharactersRequest]
161
+ # @param [Hash] opts the optional parameters
162
+ # @return [FreeToolCountCharactersResponse]
163
+ def count_characters(free_tool_count_characters_request, opts = {})
164
+ data, _status_code, _headers = count_characters_with_http_info(free_tool_count_characters_request, opts)
165
+ data
166
+ end
167
+
168
+ # Count characters as each network counts them
169
+ # Count characters as each network counts them. The same logic as the free web tool at https://postboost.co/tools/social-media-character-counter. No account needed: call it without a token, or with any API token.
170
+ # @param free_tool_count_characters_request [FreeToolCountCharactersRequest]
171
+ # @param [Hash] opts the optional parameters
172
+ # @return [Array<(FreeToolCountCharactersResponse, Integer, Hash)>] FreeToolCountCharactersResponse data, response status code and response headers
173
+ def count_characters_with_http_info(free_tool_count_characters_request, opts = {})
174
+ if @api_client.config.debugging
175
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.count_characters ...'
176
+ end
177
+ # verify the required parameter 'free_tool_count_characters_request' is set
178
+ if @api_client.config.client_side_validation && free_tool_count_characters_request.nil?
179
+ fail ArgumentError, "Missing the required parameter 'free_tool_count_characters_request' when calling FreeToolsApi.count_characters"
180
+ end
181
+ # resource path
182
+ local_var_path = '/tools/social-media-character-counter'
183
+
184
+ # query parameters
185
+ query_params = opts[:query_params] || {}
186
+
187
+ # header parameters
188
+ header_params = opts[:header_params] || {}
189
+ # HTTP header 'Accept' (if needed)
190
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
191
+ # HTTP header 'Content-Type'
192
+ content_type = @api_client.select_header_content_type(['application/json'])
193
+ if !content_type.nil?
194
+ header_params['Content-Type'] = content_type
195
+ end
196
+
197
+ # form parameters
198
+ form_params = opts[:form_params] || {}
199
+
200
+ # http body (model)
201
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(free_tool_count_characters_request)
202
+
203
+ # return_type
204
+ return_type = opts[:debug_return_type] || 'FreeToolCountCharactersResponse'
205
+
206
+ # auth_names
207
+ auth_names = opts[:debug_auth_names] || []
208
+
209
+ new_options = opts.merge(
210
+ :operation => :"FreeToolsApi.count_characters",
211
+ :header_params => header_params,
212
+ :query_params => query_params,
213
+ :form_params => form_params,
214
+ :body => post_body,
215
+ :auth_names => auth_names,
216
+ :return_type => return_type
217
+ )
218
+
219
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
220
+ if @api_client.config.debugging
221
+ @api_client.config.logger.debug "API called: FreeToolsApi#count_characters\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
222
+ end
223
+ return data, status_code, headers
224
+ end
225
+
226
+ # Format a LinkedIn post with bold, italic and lists
227
+ # Format a LinkedIn post with bold, italic and lists. The same logic as the free web tool at https://postboost.co/tools/linkedin-post-formatter. No account needed: call it without a token, or with any API token.
228
+ # @param free_tool_format_linked_in_post_request [FreeToolFormatLinkedInPostRequest]
229
+ # @param [Hash] opts the optional parameters
230
+ # @return [FreeToolFormatLinkedInPostResponse]
231
+ def format_linked_in_post(free_tool_format_linked_in_post_request, opts = {})
232
+ data, _status_code, _headers = format_linked_in_post_with_http_info(free_tool_format_linked_in_post_request, opts)
233
+ data
234
+ end
235
+
236
+ # Format a LinkedIn post with bold, italic and lists
237
+ # Format a LinkedIn post with bold, italic and lists. The same logic as the free web tool at https://postboost.co/tools/linkedin-post-formatter. No account needed: call it without a token, or with any API token.
238
+ # @param free_tool_format_linked_in_post_request [FreeToolFormatLinkedInPostRequest]
239
+ # @param [Hash] opts the optional parameters
240
+ # @return [Array<(FreeToolFormatLinkedInPostResponse, Integer, Hash)>] FreeToolFormatLinkedInPostResponse data, response status code and response headers
241
+ def format_linked_in_post_with_http_info(free_tool_format_linked_in_post_request, opts = {})
242
+ if @api_client.config.debugging
243
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.format_linked_in_post ...'
244
+ end
245
+ # verify the required parameter 'free_tool_format_linked_in_post_request' is set
246
+ if @api_client.config.client_side_validation && free_tool_format_linked_in_post_request.nil?
247
+ fail ArgumentError, "Missing the required parameter 'free_tool_format_linked_in_post_request' when calling FreeToolsApi.format_linked_in_post"
248
+ end
249
+ # resource path
250
+ local_var_path = '/tools/linkedin-post-formatter'
251
+
252
+ # query parameters
253
+ query_params = opts[:query_params] || {}
254
+
255
+ # header parameters
256
+ header_params = opts[:header_params] || {}
257
+ # HTTP header 'Accept' (if needed)
258
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
259
+ # HTTP header 'Content-Type'
260
+ content_type = @api_client.select_header_content_type(['application/json'])
261
+ if !content_type.nil?
262
+ header_params['Content-Type'] = content_type
263
+ end
264
+
265
+ # form parameters
266
+ form_params = opts[:form_params] || {}
267
+
268
+ # http body (model)
269
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(free_tool_format_linked_in_post_request)
270
+
271
+ # return_type
272
+ return_type = opts[:debug_return_type] || 'FreeToolFormatLinkedInPostResponse'
273
+
274
+ # auth_names
275
+ auth_names = opts[:debug_auth_names] || []
276
+
277
+ new_options = opts.merge(
278
+ :operation => :"FreeToolsApi.format_linked_in_post",
279
+ :header_params => header_params,
280
+ :query_params => query_params,
281
+ :form_params => form_params,
282
+ :body => post_body,
283
+ :auth_names => auth_names,
284
+ :return_type => return_type
285
+ )
286
+
287
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
288
+ if @api_client.config.debugging
289
+ @api_client.config.logger.debug "API called: FreeToolsApi#format_linked_in_post\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
290
+ end
291
+ return data, status_code, headers
292
+ end
293
+
294
+ # Convert text to fancy Unicode styles
295
+ # Convert text to fancy Unicode styles. The same logic as the free web tool at https://postboost.co/tools/fancy-text-generator. No account needed: call it without a token, or with any API token.
296
+ # @param free_tool_generate_fancy_text_request [FreeToolGenerateFancyTextRequest]
297
+ # @param [Hash] opts the optional parameters
298
+ # @return [FreeToolGenerateFancyTextResponse]
299
+ def generate_fancy_text(free_tool_generate_fancy_text_request, opts = {})
300
+ data, _status_code, _headers = generate_fancy_text_with_http_info(free_tool_generate_fancy_text_request, opts)
301
+ data
302
+ end
303
+
304
+ # Convert text to fancy Unicode styles
305
+ # Convert text to fancy Unicode styles. The same logic as the free web tool at https://postboost.co/tools/fancy-text-generator. No account needed: call it without a token, or with any API token.
306
+ # @param free_tool_generate_fancy_text_request [FreeToolGenerateFancyTextRequest]
307
+ # @param [Hash] opts the optional parameters
308
+ # @return [Array<(FreeToolGenerateFancyTextResponse, Integer, Hash)>] FreeToolGenerateFancyTextResponse data, response status code and response headers
309
+ def generate_fancy_text_with_http_info(free_tool_generate_fancy_text_request, opts = {})
310
+ if @api_client.config.debugging
311
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.generate_fancy_text ...'
312
+ end
313
+ # verify the required parameter 'free_tool_generate_fancy_text_request' is set
314
+ if @api_client.config.client_side_validation && free_tool_generate_fancy_text_request.nil?
315
+ fail ArgumentError, "Missing the required parameter 'free_tool_generate_fancy_text_request' when calling FreeToolsApi.generate_fancy_text"
316
+ end
317
+ # resource path
318
+ local_var_path = '/tools/fancy-text-generator'
319
+
320
+ # query parameters
321
+ query_params = opts[:query_params] || {}
322
+
323
+ # header parameters
324
+ header_params = opts[:header_params] || {}
325
+ # HTTP header 'Accept' (if needed)
326
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
327
+ # HTTP header 'Content-Type'
328
+ content_type = @api_client.select_header_content_type(['application/json'])
329
+ if !content_type.nil?
330
+ header_params['Content-Type'] = content_type
331
+ end
332
+
333
+ # form parameters
334
+ form_params = opts[:form_params] || {}
335
+
336
+ # http body (model)
337
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(free_tool_generate_fancy_text_request)
338
+
339
+ # return_type
340
+ return_type = opts[:debug_return_type] || 'FreeToolGenerateFancyTextResponse'
341
+
342
+ # auth_names
343
+ auth_names = opts[:debug_auth_names] || []
344
+
345
+ new_options = opts.merge(
346
+ :operation => :"FreeToolsApi.generate_fancy_text",
347
+ :header_params => header_params,
348
+ :query_params => query_params,
349
+ :form_params => form_params,
350
+ :body => post_body,
351
+ :auth_names => auth_names,
352
+ :return_type => return_type
353
+ )
354
+
355
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
356
+ if @api_client.config.debugging
357
+ @api_client.config.logger.debug "API called: FreeToolsApi#generate_fancy_text\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
358
+ end
359
+ return data, status_code, headers
360
+ end
361
+
362
+ # List the free tools
363
+ # Every free tool the API serves, with its operationId and web page. No token needed.
364
+ # @param [Hash] opts the optional parameters
365
+ # @return [FreeToolList]
366
+ def list_free_tools(opts = {})
367
+ data, _status_code, _headers = list_free_tools_with_http_info(opts)
368
+ data
369
+ end
370
+
371
+ # List the free tools
372
+ # Every free tool the API serves, with its operationId and web page. No token needed.
373
+ # @param [Hash] opts the optional parameters
374
+ # @return [Array<(FreeToolList, Integer, Hash)>] FreeToolList data, response status code and response headers
375
+ def list_free_tools_with_http_info(opts = {})
376
+ if @api_client.config.debugging
377
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.list_free_tools ...'
378
+ end
379
+ # resource path
380
+ local_var_path = '/tools'
381
+
382
+ # query parameters
383
+ query_params = opts[:query_params] || {}
384
+
385
+ # header parameters
386
+ header_params = opts[:header_params] || {}
387
+ # HTTP header 'Accept' (if needed)
388
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
389
+
390
+ # form parameters
391
+ form_params = opts[:form_params] || {}
392
+
393
+ # http body (model)
394
+ post_body = opts[:debug_body]
395
+
396
+ # return_type
397
+ return_type = opts[:debug_return_type] || 'FreeToolList'
398
+
399
+ # auth_names
400
+ auth_names = opts[:debug_auth_names] || []
401
+
402
+ new_options = opts.merge(
403
+ :operation => :"FreeToolsApi.list_free_tools",
404
+ :header_params => header_params,
405
+ :query_params => query_params,
406
+ :form_params => form_params,
407
+ :body => post_body,
408
+ :auth_names => auth_names,
409
+ :return_type => return_type
410
+ )
411
+
412
+ data, status_code, headers = @api_client.call_api(:GET, local_var_path, new_options)
413
+ if @api_client.config.debugging
414
+ @api_client.config.logger.debug "API called: FreeToolsApi#list_free_tools\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
415
+ end
416
+ return data, status_code, headers
417
+ end
418
+
419
+ # Split long text into a thread
420
+ # Split long text into a thread. The same logic as the free web tool at https://postboost.co/tools/x-thread-maker. No account needed: call it without a token, or with any API token.
421
+ # @param free_tool_split_thread_request [FreeToolSplitThreadRequest]
422
+ # @param [Hash] opts the optional parameters
423
+ # @return [FreeToolSplitThreadResponse]
424
+ def split_thread(free_tool_split_thread_request, opts = {})
425
+ data, _status_code, _headers = split_thread_with_http_info(free_tool_split_thread_request, opts)
426
+ data
427
+ end
428
+
429
+ # Split long text into a thread
430
+ # Split long text into a thread. The same logic as the free web tool at https://postboost.co/tools/x-thread-maker. No account needed: call it without a token, or with any API token.
431
+ # @param free_tool_split_thread_request [FreeToolSplitThreadRequest]
432
+ # @param [Hash] opts the optional parameters
433
+ # @return [Array<(FreeToolSplitThreadResponse, Integer, Hash)>] FreeToolSplitThreadResponse data, response status code and response headers
434
+ def split_thread_with_http_info(free_tool_split_thread_request, opts = {})
435
+ if @api_client.config.debugging
436
+ @api_client.config.logger.debug 'Calling API: FreeToolsApi.split_thread ...'
437
+ end
438
+ # verify the required parameter 'free_tool_split_thread_request' is set
439
+ if @api_client.config.client_side_validation && free_tool_split_thread_request.nil?
440
+ fail ArgumentError, "Missing the required parameter 'free_tool_split_thread_request' when calling FreeToolsApi.split_thread"
441
+ end
442
+ # resource path
443
+ local_var_path = '/tools/x-thread-maker'
444
+
445
+ # query parameters
446
+ query_params = opts[:query_params] || {}
447
+
448
+ # header parameters
449
+ header_params = opts[:header_params] || {}
450
+ # HTTP header 'Accept' (if needed)
451
+ header_params['Accept'] = @api_client.select_header_accept(['application/json']) unless header_params['Accept']
452
+ # HTTP header 'Content-Type'
453
+ content_type = @api_client.select_header_content_type(['application/json'])
454
+ if !content_type.nil?
455
+ header_params['Content-Type'] = content_type
456
+ end
457
+
458
+ # form parameters
459
+ form_params = opts[:form_params] || {}
460
+
461
+ # http body (model)
462
+ post_body = opts[:debug_body] || @api_client.object_to_http_body(free_tool_split_thread_request)
463
+
464
+ # return_type
465
+ return_type = opts[:debug_return_type] || 'FreeToolSplitThreadResponse'
466
+
467
+ # auth_names
468
+ auth_names = opts[:debug_auth_names] || []
469
+
470
+ new_options = opts.merge(
471
+ :operation => :"FreeToolsApi.split_thread",
472
+ :header_params => header_params,
473
+ :query_params => query_params,
474
+ :form_params => form_params,
475
+ :body => post_body,
476
+ :auth_names => auth_names,
477
+ :return_type => return_type
478
+ )
479
+
480
+ data, status_code, headers = @api_client.call_api(:POST, local_var_path, new_options)
481
+ if @api_client.config.debugging
482
+ @api_client.config.logger.debug "API called: FreeToolsApi#split_thread\nData: #{data.inspect}\nStatus code: #{status_code}\nHeaders: #{headers}"
483
+ end
484
+ return data, status_code, headers
485
+ end
486
+ end
487
+ end
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0
@@ -3,7 +3,7 @@
3
3
 
4
4
  #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`. ## Plan access Every workspace-scoped endpoint returns `403` when the workspace's plan does not include API access (capability `api`). ## Dates and times Post dates and times (`date`, `time`, `accounts_schedule`) are read in the request's `timezone` when one is given, otherwise in the workspace timezone. ## Idempotent requests Send an `Idempotency-Key` header (any unique string, for example a UUID) with a `POST`. Repeating the request with the same key within 24 hours returns the stored response with `Idempotent-Replayed: true` and creates nothing new. Reusing a key with a different body returns `422`; a request still in progress with the same key returns `409`. `5xx` and `429` responses are not stored, so they can be retried with the same key. ## Guardrails for automated clients Create and update requests are checked before anything is written: a post whose content matches one created for the same account in the last 24 hours returns `409` (`code: duplicate_post`, override with `allow_duplicate: true`), scheduling past an account's daily cap returns `429` (`code: account_daily_cap_reached`), and scheduling to an account that must be reconnected returns `422` (`code: account_unauthorized` or `account_token_missing`). Use `POST /{workspaceUuid}/posts/validate` for a dry run and `GET /{workspaceUuid}/activity` to review what API clients did. ## 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 ```
5
5
 
6
- The version of the OpenAPI document: 1.20.0
6
+ The version of the OpenAPI document: 1.22.0
7
7
  Contact: hi@postboost.co
8
8
  Generated by: https://openapi-generator.tech
9
9
  Generator version: 7.9.0