Ghost blog poster 🔥 avatar
Ghost blog poster 🔥

Pricing

Pay per event

Go to Store
Ghost blog poster 🔥

Ghost blog poster 🔥

Developed by

Azzouzana

Maintained by Community

🚀 Ghost Blog Poster: Easily publish articles to your Ghost blog using this tool! Just provide your blog's API URL, admin API key, and inputs like title, HTML content, tags, slug, excerpt, and status (published or draft). Great for building advanced Ghost API integrations! 📝✨

5.0 (1)

Pricing

Pay per event

2

Monthly users

3

Runs succeeded

>99%

Last modified

a month ago

Ghost blog poster

This actor is a tool that allows you to post articles to your Ghost blog. It is a simple actor that uses the Ghost API to post articles to your blog. It is a good starting point for building more complex actors that interact with the Ghost API and could be used in your ai agents.

(Please note that the actor uses the Ghost API V4. Support for V5 is coming soon.)

Input

The actor expects the following inputs:

  • title - the title of the article (required!)
  • html - the content of the article in HTML format
  • tags - an array of tags for the article: ["tag1", "tag2", "tag3"]
  • slug - the slug of the article (Example: my-article-slug, leave empty to generate automatically)
  • custom_excerpt - a custom excerpt for the article
  • status - the status of the article (published or draft, default is draft)
  • GHOST_BASE_API_URL - the base API URL of your Ghost blog
  • GHOST_ADMIN_API_KEY - the API key of your Ghost blog

Output

Successful post creation will return the following output:

1{
2  "posts": [
3    {
4      "id": "<post_id>",
5      "uuid": "<post_uuid>",
6      "title": "<post_title>",
7      "slug": "<post_slug>",
8      "mobiledoc": "{ \"version\": \"0.3.1\", \"atoms\": [], \"cards\": [], \"markups\": [], \"sections\": [[1, \"p\", [[0, [], 0, \"<post_content>\"]]]] }",
9      "comment_id": "<comment_id>",
10      "feature_image": null,
11      "featured": false,
12      "status": "<post_status>",
13      "visibility": "<post_visibility>",
14      "email_recipient_filter": "<email_filter>",
15      "created_at": "<created_timestamp>",
16      "updated_at": "<updated_timestamp>",
17      "published_at": null,
18      "custom_excerpt": "<custom_excerpt>",
19      "codeinjection_head": null,
20      "codeinjection_foot": null,
21      "custom_template": null,
22      "canonical_url": null,
23      "tags": [
24        {
25          "id": "<tag_id>",
26          "name": "<tag_name>",
27          "slug": "<tag_slug>",
28          "description": null,
29          "feature_image": null,
30          "visibility": "<tag_visibility>",
31          "og_image": null,
32          "og_title": null,
33          "og_description": null,
34          "twitter_image": null,
35          "twitter_title": null,
36          "twitter_description": null,
37          "meta_title": null,
38          "meta_description": null,
39          "codeinjection_head": null,
40          "codeinjection_foot": null,
41          "canonical_url": null,
42          "accent_color": null,
43          "created_at": "<tag_created_timestamp>",
44          "updated_at": "<tag_updated_timestamp>",
45          "url": "<tag_url>"
46        }
47      ],
48      "authors": [
49        {
50          "id": "<author_id>",
51          "name": "<author_name>",
52          "slug": "<author_slug>",
53          "email": "<author_email>",
54          "profile_image": "<author_profile_image_url>",
55          "cover_image": null,
56          "bio": null,
57          "website": null,
58          "location": null,
59          "facebook": null,
60          "twitter": null,
61          "accessibility": "{ \"nightShift\": true, \"whatsNew\": { \"lastSeenDate\": \"<last_seen_date>\" } }",
62          "status": "<author_status>",
63          "meta_title": null,
64          "meta_description": null,
65          "tour": null,
66          "last_seen": "<author_last_seen>",
67          "created_at": "<author_created_timestamp>",
68          "updated_at": "<author_updated_timestamp>",
69          "roles": [
70            {
71              "id": "<role_id>",
72              "name": "<role_name>",
73              "description": "<role_description>",
74              "created_at": "<role_created_timestamp>",
75              "updated_at": "<role_updated_timestamp>"
76            }
77          ],
78          "url": "<author_url>"
79        }
80      ],
81      "tiers": [],
82      "primary_author": {
83        "id": "<primary_author_id>",
84        "name": "<primary_author_name>",
85        "slug": "<primary_author_slug>",
86        "email": "<primary_author_email>",
87        "profile_image": "<primary_author_profile_image_url>",
88        "cover_image": null,
89        "bio": null,
90        "website": null,
91        "location": null,
92        "facebook": null,
93        "twitter": null,
94        "accessibility": "{ \"nightShift\": true, \"whatsNew\": { \"lastSeenDate\": \"<last_seen_date>\" } }",
95        "status": "<primary_author_status>",
96        "meta_title": null,
97        "meta_description": null,
98        "tour": null,
99        "last_seen": "<primary_author_last_seen>",
100        "created_at": "<primary_author_created_timestamp>",
101        "updated_at": "<primary_author_updated_timestamp>",
102        "roles": [
103          {
104            "id": "<role_id>",
105            "name": "<role_name>",
106            "description": "<role_description>",
107            "created_at": "<role_created_timestamp>",
108            "updated_at": "<role_updated_timestamp>"
109          }
110        ],
111        "url": "<primary_author_url>"
112      },
113      "primary_tag": {
114        "id": "<primary_tag_id>",
115        "name": "<primary_tag_name>",
116        "slug": "<primary_tag_slug>",
117        "description": null,
118        "feature_image": null,
119        "visibility": "<primary_tag_visibility>",
120        "og_image": null,
121        "og_title": null,
122        "og_description": null,
123        "twitter_image": null,
124        "twitter_title": null,
125        "twitter_description": null,
126        "meta_title": null,
127        "meta_description": null,
128        "codeinjection_head": null,
129        "codeinjection_foot": null,
130        "canonical_url": null,
131        "accent_color": null,
132        "created_at": "<primary_tag_created_timestamp>",
133        "updated_at": "<primary_tag_updated_timestamp>",
134        "url": "<primary_tag_url>"
135      },
136      "url": "<post_url>",
137      "excerpt": "<post_excerpt>",
138      "og_image": null,
139      "og_title": null,
140      "og_description": null,
141      "twitter_image": null,
142      "twitter_title": null,
143      "twitter_description": null,
144      "meta_title": null,
145      "meta_description": null,
146      "email_subject": null,
147      "frontmatter": null,
148      "feature_image_alt": null,
149      "feature_image_caption": null,
150      "email_only": false,
151      "email": null
152    }
153  ]
154}

Pricing

The actor uses the Pay-Per-Event pricing model, detailed below:

  • actor-start - Price for Actor start: $0.02
  • token-generation - Price for generating a signed token: $0.01
  • actor-dataset-push - Price for pushing to the dataset: $0.01
  • ghost-api-call - Price for making a Ghost API call: $0.03

Updates

Please note that this toll is in its early stages and might not cover all the features of the Ghost API. If you need more features, please contact us or create an issue. Thank you & happy blogging :)

Pricing

Pricing model

Pay per event 

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Price for Actor start

$0.020

Flat fee for starting an Actor run.

Price for generating a short-lived (5m) signed token

$0.010

Flat fee for generating a signed token.

Price for pushing to the dataset

$0.010

Flat fee for pushing to the dataset.

Price for making a Ghost API call

$0.030

Flat fee for making a Ghost API call.