Strapi Programmatic Pages Generator avatar

Strapi Programmatic Pages Generator

Pricing

Pay per usage

Go to Apify Store
Strapi Programmatic Pages Generator

Strapi Programmatic Pages Generator

Automate bulk programmatic page creation in Strapi CMS using JSON definitions stored in Apify Key-Value Store. Configure your Strapi credentials, point to your Key-Value Store, and let the Actor handle the rest.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Aleš Wilk

Aleš Wilk

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

2 months ago

Last modified

Share

This Strapi Programmatic Pages Generator Apify Actor enables bulk programmatic creation of pages in Strapi CMS from JSON files. Simply upload your JSON page definitions to an Apify Key-Value Store, provide the store ID, and the Actor will automatically process all files and create the corresponding pages via the Strapi API. It's ideal for migrating content, automating page creation workflows, or programmatically managing large numbers of CMS pages.

How to run the Actor

  1. Prepare your JSON files - Create JSON files containing your page data (see format below)
  2. Upload files to a Key-Value Store - Upload all JSON files to an Apify Key-Value Store
  3. Configure the Actor input - Provide your Strapi credentials and the Key-Value Store ID
  4. Run the Actor - The Actor will process all files and create pages in Strapi

How to upload JSON files

  1. Go to Apify ConsoleStorageKey-Value Stores
  2. Click Create new to create a new store (or use an existing one)
  3. Once inside the store, upload all your JSON files
  4. Copy the Store ID from the URL or the store details panel (e.g., orp55arA55Iqh3552)

Input configuration

FieldRequiredDescription
strapiBaseUrlYesYour Strapi instance URL (e.g., https://cms.example.com)
strapiApiTokenYesBearer token for Strapi API authentication
keyValueStoreIdNoID of the Key-Value Store containing your JSON files. When provided, ALL files in the store are processed automatically
apiEndpointNoAPI endpoint path (default: /api/custom-pages)
jsonFileKeysNoOptional filter - specify which keys to process. Leave empty to process all files
statusQueryParamNoStatus parameter for the API request (default: draft)
wrapInDataObjectNoWrap payload in { data: ... } object (default: false)
continueOnErrorNoContinue processing if a file fails (default: true)
requestDelayMsNoDelay between API requests in ms (default: 100)

Example input

{
"apiEndpoint": "/api/custom-pages",
"continueOnError": true,
"keyValueStoreId": "orp55arA55Iqh3552",
"statusQueryParam": "draft",
"strapiApiToken": "ENCRYPTED_VALUE",
"strapiBaseUrl": "https://strapi.domain.com",
"wrapInDataObject": false
}

Input JSON file format

Each JSON file should contain the page data structure expected by your Strapi custom-pages endpoint. Below is an example of a typical page structure:

{
"data": {
"path": "/api/product-catalog-demo",
"experimentPage": null,
"seo": {
"description": "Explore our Product Catalog API for accessing comprehensive product information including pricing, availability, specifications, and inventory data.",
"title": "Product Catalog API",
"noIndexPage": null,
"ogImage": null
},
"heroSection": {
"title": "Product Catalog API",
"description": "Access real-time product data from major e-commerce platforms. Our API provides detailed information on pricing, stock levels, product specifications, customer reviews, and more.",
"enhancedTitleSubstring": null,
"layout": "horizontal",
"primaryAction": {
"href": "https://example.com/try-api",
"text": "Try Product API",
"isExternal": false,
"asButton": true,
"opensIntercom": null,
"modalParam": null,
"buttonType": "primary",
"nofollow": false,
"isTracked": null
},
"secondaryAction": null,
"images": {
"lightImage": 2048,
"darkImage": null
},
"backButton": null,
"video": null,
"promotion": null
},
"sections": [
{
"__component": "section.bullet-list-section",
"meta": null,
"content": [
{
"text": "Product API in Python",
"href": "https://example.com/docs/python",
"isTracked": null,
"opensIntercom": null,
"modalParam": null
},
{
"text": "Product API in JavaScript",
"href": "https://example.com/docs/javascript",
"isTracked": null,
"opensIntercom": null,
"modalParam": null
},
{
"text": "Product API Reference",
"href": "https://example.com/docs/reference",
"isTracked": null,
"opensIntercom": null,
"modalParam": null
}
]
},
{
"__component": "section.features-section",
"meta": null,
"content": {
"title": "Key Features",
"description": null,
"eyebrow": null,
"layout": "VERTICAL",
"features": [
{
"title": "Real-time Data",
"description": "Get up-to-date product information with automatic synchronization from source platforms every hour.",
"icon": 3001
},
{
"title": "Comprehensive Coverage",
"description": "Access data from thousands of online stores and marketplaces with a single unified API.",
"icon": 3002
},
{
"title": "Flexible Filtering",
"description": "Filter products by category, price range, availability, brand, and dozens of other attributes.",
"icon": 3003
},
{
"title": "Multiple Export Formats",
"description": "Export your data in JSON, CSV, Excel, XML, or integrate directly via webhooks and streaming.",
"icon": 3004
},
{
"title": "Scalable Infrastructure",
"description": "Handle millions of requests per day with our enterprise-grade infrastructure and 99.9% uptime SLA.",
"icon": 3005
},
{
"title": "Developer Friendly",
"description": "Comprehensive documentation, SDKs for major languages, and responsive technical support.",
"icon": 3006
}
]
}
}
]
}
}

Output

The Actor outputs a summary of the processing results:

{
"summary": {
"total": 5,
"success": 4,
"failed": 1
},
"results": [
{
"success": true,
"index": 0,
"source": "kv-store:homepage.json",
"response": { ... }
}
]
}

Alternative input methods

Besides Key-Value Store, you can also provide JSON data via:

  • Direct JSON input (jsonData) - Paste JSON objects directly in the input
  • URLs (jsonUrls) - Provide URLs to JSON files hosted online
  • Dataset (datasetId) - Reference an Apify Dataset containing page data