SEO Content Machine

API

API Docs for SCM.
The default port is 8008


Check out samples @ Postman

GET /test

Send a get to the url above to see if the api server is ready and available. 


JSON result
{ "success": true, "message": null, "result": null }


POST /spin

Post a JSON with the following parameters to spin content using the soft spinner.


{"text": "hello world","csvprotectedwords": ""}


JSON fail result

{"success": false,"message": 'You must post an application/json eg {"text": "hello world", "csvprotectedwords": ""}',"result": null}


JSON ok result

{"success": true, "message": null, "result": "{hi|hello} world"}


POST /paraphrase

Post a JSON with the following parameters to paraphrase content. The AI paraphraser expects english input by default. 


{"text": "hello world", "login":"[email protected]", "sourcelanguage":"", "finallanguage":""}


text - Send small sentences or one paragraph at a time to avoid timeout errors

login - You must include the SCM login email to access this paid API

sourcelanguage - (optional) Pass a language code of your content if it is not in english. eg "de" for german

finallanguage - (optional) You can translate paraphrased content into another language. eg "zh" for chinese


Language Codes

"en": "English",
"ar": "Arabic",
"az": "Azerbaijani",
"zh": "Chinese",
"nl": "Dutch",
"fi": "Finnish",
"fr": "French",
"de": "German",
"hi": "Hindi",
"hu": "Hungarian",
"id": "Indonesian",
"ga": "Irish",
"it": "Italian",
"ja": "Japanese",
"ko": "Korean",
"pl": "Polish",
"pt": "Portuguese",
"ru": "Russian",
"es": "Spanish",
"sv": "Swedish",
"tr": "Turkish",
"uk": "Ukranian",
"vi": "Vietnamese"


JSON fail result

{"success": false,"message": 'You must post an application/json eg {"text": "hello world"}',"result": null}


JSON ok result

{"success": true, "message": null, "result": "{hi|hello} world"}


POST /aboutme

Generate an aboutme. Post a JSON with the following parameters.

{"keyword": "dog training"}


JSON fail result

{"success": false,"message": 'You must post an application/json eg {"keyword": "dog training"}',"result": null}


JSON ok result

{"success": true,"message": null,"result": "#your about me#"}


GET /projects

Article Creator

Retrieve a list of only article creator projects together with the keywords that have content available for retrieval.


JSON result
{"success":true,"message":null,"result":[{"keywords":["body wash"],"group":"wash group","name":"natural body wash article","type":"Article Creator","id":"5e3bf43a32cf7c6a583e1085"}]}


GET /project/:id/:keyword

Article Creator

Get content from an article creator task. You must send a get with the project id and the keyword you want to retrieve content for. Use the '/projects' call above to retrieve both the id and a list of available keywords with content.

The :keyword section is optional, if you leave it out it will just return content for the first available keyword.


Will return all the content located in the keyword/cache folder.


JSON fail result

{"success": false,"message": 'Unable to find any content for keyword in project with id ' + id,"result": null}


JSON result

{"success":true,"message":null,"result":{"keywords":["natural body wash"],"sentences":["...etc..."]}}


GET /all-projects

Returns a list of ALL projects inside SCM. You can use this to manage all tasks.

You can filter the results by adding the following parameters to the end of the url.

  1. group
  2. name
  3. type
  4. status

eg: http://localhost:8008/all-projects?type=article%20downloader
will return a list of all article downloader tasks.


JSON result
{"success":true,"message":null,"result":[{"group":"","name":"ad test","type":"article downloader","status":"complete","id":"5fa48668a1133c0890b64719"}]}


GET /project/status/:id

Retrieve the status of a single task .


JSON result
{"success":true, "message":null, "result":[{"group":"", "name":"bing test", "type":"article creator", "status":"complete", "id":"612df54a861fce413871b6c0"}]}


GET /project/delete/:id

Delete an the article creator task with the :id specified in the url.

Will always return true even if the task doesn't exist anymore.


JSON result

{"success": true, "message": null, "result": null}


GET /project/data/:id

Returns the configuration data used by NEXT when a task is run.

Download the data JSON, then edit it and make a POST to the same URL to upload your changes.


JSON fail result

{"success": false, "message": 'Was unable to find task of id 007', "result": null}


JSON result

{"success": true, "message": null, "result": {"jobName":"example job"[...etc]}}


POST /project/data/:id

Upload a modified json data object retrieved from GET /project/data/:id to customize the settings of a task. 

Only upload parameters from the "result" property of the GET call.


Eg: to change keywords send post with JSON data:

{"articleKeywordsFile":["dog training tips"]}


You don't need to upload every property, you can just upload the properties you want to update.


JSON fail result

{"success": false, "message": 'Was unable to find task of id 007', "result": null}


JSON result

{"success": true, "message": null, "result": null}


Postman example

1. Use GET to retrieve task properties. You need ID of task first.

2. Upload only the edited results properties to update a task. (Don't include success and message)

GET /project/duplicate/:id

Duplicates an existing project.  If the call succeeded it will return the id of the newly created project.

Use this id to retreive the project data, then upload changes via a data post.


Issue a GET /project/run to schedule the task to run.


JSON fail result

{"success": false, "message": 'Was unable to find task of id 007', "result": null}


JSON ok result

{"success": true, "message": null, "result":"39390dsfv9021121x"}


GET /project/run/:id

You can schedule a task to run by issuing this get request.


JSON result

{"success": true, "message": null, "result": null}


GET /create/articlecreator

Instead of duplicating an existing task, creates a blank article creator task with status 'draft'.

Returns the data JSON, which you can edit and re-upload using the 'POST /project/data/:id' call. 

Task ID is contained inside data JSON.


JSON result

{"success": true, "message": null, "result": {"id":"43454de22d", "data":{"jobName":"example job etc..."}}}


GET /create/:taskname

Create any SCM task using this get.

Valid list of get urls are as follows: (NB: internal API name of task may not be the same as displayed on the UI)

  • /create/articlecreator
  • /create/writingassistant (ie: ai writer)
  • /create/articledownloader (ie: static page)
  • /create/urlfinder
  • /create/postuploader
  • /create/googlescraper (ie: search & news)
  • /create/webscraper (ie: dynamic page)
  • /create/webcrawler
  • /create/waybackscraper
  • /create/bulktranslator (ie: spin & translate)
  • /create/mailmerge (ie: csv template merge)
  • /create/postemailer
  • /create/rssscraper
  • /create/paraphraser
  • /create/youtubesubscraper
  • /create/googlemapsscraper
  • /create/wpxmlgenerator

Calling the create url returns a data JSON with task default properties and status set to 'draft'.

Edit the JSON and re-upload using the 'POST /project/data/:id' call. Task ID is contained inside data JSON.


Call 'GET /project/run/:id/' to have the created task run immediately.


JSON result

{"success": true, "message": null, "result": {"id":"43454de22d", "data":{"jobName":"example job etc..."}}}


Sample Javascript Code


The following javascript code shows you how to make a simple get request.

const request = require('request');
request({
method: 'get',
url: 'http://127.0.0.1:8008/test',
json: true,
}, function (error, response, body) {
//Print the Response
console.log(body);
});


The following javascript code shows how you can make a json post to the API server.

const request = require('request');
request({
method: 'post',
url: 'http://127.0.0.1:8008/aboutme',
headers: {"content-type": "application/json",},
json: {keyword: 'cat'},
},function (error, response, body) {
//Print the Response
console.log(body);
});

Get A Free Trial

No Payment Details Required