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#"}


POST /projects/find

Upload a json object with query and projection parameters to do an advanced search for projects


Example: Find all tasks

{"query": {}, "projection": {}}


Example: Find all article creator tasks
{"query": {"name": "article creator"}, "projection": {}}


Projection allows you to filter the return result to only return fields you want

Read more about projection in mongod find() documents


Example: Find all article creator tasks and return just job name

{"query": {"name": "article creator"}, "projection": {"data.jobName": 1}}


Example: Find all tasks and return just status and id
{"query": {}, "projection": {"_id": 1,"status":1}}


Example: Find all tasks but don't return status
{"query": {}, "projection": {"status":0}}


JSON fail result

{"success": false, "message": "error message", "result": null}


JSON result

{"success": true, "message": null, "result": <array of tasks>}



GET /all-projects

Use POST /projects/find for all advanced searches.  If you need a simpler GET alternative you can use this end point.


Returns a list of ALL projects inside SCM.


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/data/:id

Returns the data object of a task


You can use this data object to make changes to a task.


You can upload the edited data object by making a POST to the same URL and uploading your edited data object


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. 


This endpoint expects a simple JSON object with the data parameters of the task.


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 projects to retrieve list of task IDs

2. Call /project/data/:id to download the data object of the task


The data object is returned in the "result" property of the call

3. Make changes to the result data object, POST the data object only to make changes to the task


Don't post parameters like success, message, result. Just a root data object.


You can upload only the fields that you edited, no need to re-upload every parameter.


Example: Change article creator keywords

Example: Enable heading insert

GET /project/cache/:id/:keyword

Article Creator

Gets the content content from an article creator task. You must send a get with the project id and the keyword you want to retrieve content for. 


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 /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/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 /project/abort/:id

Aborts a task by Id


JSON result

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


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/keywordfinder
  • /create/bulktranslator (ie: spin & translate)
  • /create/mailmerge (ie: csv template merge)
  • /create/postemailer
  • /create/rssscraper
  • /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