Spinbot API Documentation

Swagger version

Introduction

Spinbot.net propose a new solution based on high technologies for faster article spinner and extractor that you will love to use it.
Our main services:
- Article rewriter (article spinner): rewrite your original article by replacing every terms/words to their synonyms. Our program will try its best to detect as many words that can be replaced as possible. So that you will never care about the plagiarism checkers.
- Article rewriter with machine learning based algorithm: an AI program to be used to rewrite your article, guarantee to keep the meaning, also the spells of your article. The machine learning based algorithm has been trained with more than 40 million articles to provide the best tool ever in this field.
- Article extractor: a lot of techniques and mordern algorithms like machine learning based are used to detect the main article content in your given url. It's an automated tool to scrape and collect articles. It will reduce your time to collect data and keywords for you websites to improve their ranks.
- A lot of other services are being developed that will make you fall in love.


Account Info API

Return the user credit information. See the API details below:
End Point
GET https://api.spinbot.net/api/acc?key=YOUR_API_KEY

Cost
FREE (Load Credits)

Parameters
Name Example Description
key f05144a02c875b018420c5b5e7479540 Your api key (You can get it here)
Response200
Name Description
key Your API key
credit Number of credits are currently available on your account.
expire Expired date of your credits.


Pretty Article Spinner API

Rewriting (spinning) you input article. The response is in JSON format.
This API uses the best machine learning based algorithm to rewrite your input article. The algorithm provides human readable results for you to use right away in your website, blogs, or reports.
See the API details below:
End Point
POST https://api.spinbot.net/api/pretty-spinner

Cost
50 credit per request (original article with maximum 10.000 characters in length) (Load Credits)
For example: fixed 50 credit per request

Parameters
Name Example Description
key f05144a02c875b018420c5b5e7479540 Your API key (You can get it here)
text your input article... Input article that need to be rewritten.
keep one phrase \n another phrase List of keywords/phrases you want to keep unchanged during the rewrite process, keep keywords/phrases are separated by newline character (\n). Note that capitalized words in the input article will be in this list by default.
accuracy medium The accuracy profile that will be used in the algorithm, there are 5 pre-defined accuracy profile:
  1. very-low : fastest, but lowest accuracy, the most words/phrases will be rewritten
  2. low : faster than very-low profile, and the accuracy will be better
  3. medium : medium speed and accuracy (recommended)
  4. high : slower than very-high profile, more accuracy than medium profile
  5. very-high : slowest, highest accuracy, the least words/phrases will be rewritten
Different profiles may lead the difference of the accuracy when choosing words/phrases for replacement and the computation time.
conversion_rate_profile medium The conversion rate profile, which has available options:
  1. low
  2. medium
  3. high
Response200
(Click here to use graphical tool)
Name Description
original Original article you submitted
final The rewritten article generated by the algorithm.
stats Statistics of the rewrite process, includes some information from the process:
  • level: name of the accuracy profile
  • phrases: number of phrases was detected in your original article
  • conversion: number of phrases was replaced by the algorithm
  • conversion_rate: conversion rate = number of replaced phrases / total phrases
  • num_words_before: number of words in your original article
  • num_words_after: number of words in the rewritten article
  • conversion_detail: detail of the phrase replacements
  • process_time: the computation time takes when rewriting the article

Response Example
{
    "original": "To rewrite an article, simply paste your text into the box above and follow the given instructions.",
    "final": "To rewrite an article, simply paste a text into the box above and watch the prescribed instructions.",
    "stats": {
        "level": "medium",
        "phrases": 17,
        "conversion": 3,
        "conversion_rate": "0.18",
        "num_words_before": 17,
        "num_words_after": 17,
        "conversion_detail": {
            "your": "a",
            "follow": "watch",
            "given": "prescribed"
        },
        "process_time": 1812
    }
}
Integration Example
package main
import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)
func main() {
    url := "https://api.spinbot.net/api/pretty-spinner"
    payload := strings.NewReader("{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\",\"keep\":\"KEEP_KEYWORDS\",\"accuracy\":\"ACCURACY_VALUE\"}")
    req, _ := http.NewRequest("POST", url, payload)
    req.Header.Add("content-type", "application/json")
    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)
    fmt.Println(res)
    fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\",\"keep\":\"KEEP_KEYWORDS\",\"accuracy\":\"ACCURACY_VALUE\"}");
Request request = new Request.Builder()
  .url("https://api.spinbot.net/api/pretty-spinner")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
var request = require("request");
var options = { method: 'POST',
  url: 'https://api.spinbot.net/api/pretty-spinner',
  headers: 
   { 'content-type': 'application/json' },
  body: 
    { key: 'YOUR_API_KEY',
      text: 'YOUR_ARTICLE_HERE',
      keep: 'KEEP_KEYWORDS',
      accuracy: 'ACCURACY_VALUE'
    },
  json: true };
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.spinbot.net/api/pretty-spinner",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\",\"keep\":\"KEEP_KEYWORDS\",\"accuracy\":\"ACCURACY_VALUE\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests
url = "https://api.spinbot.net/api/pretty-spinner"
payload = "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\",\"keep\":\"KEEP_KEYWORDS\",\"accuracy\":\"ACCURACY_VALUE\"}"
headers = {
    'content-type': "application/json"
    }
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
require 'uri'
require 'net/http'
url = URI("https://api.spinbot.net/api/pretty-spinner")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\",\"keep\":\"KEEP_KEYWORDS\",\"accuracy\":\"ACCURACY_VALUE\"}"
response = http.request(request)
puts response.read_body
curl --request POST \
  --url https://api.spinbot.net/api/pretty-spinner \
  --header 'content-type: application/json' \
  --data "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\",\"keep\":\"KEEP_KEYWORDS\",\"accuracy\":\"ACCURACY_VALUE\"}"


Article Spinner API

Rewriting (spinning) you input article. The response is in JSON format.
This API uses simple algorithm that replace the matched phrases randomly. For more accuracy and human-readable output result, please use the new rewrite API with machine learning based algorithm. See the API details below:
End Point
POST https://api.spinbot.net/api/spinner

Cost
01 credit per 250 words (Load Credits)
For example: the API consume 03 credits when rewrite an article that have 520 words in length.

Parameters
Name Example Description
key f05144a02c875b018420c5b5e7479540 Your API key (You can get it here)
text your input text... Input article that need to be rewritten.
Response200
(Click here to use graphical tool)
Name Description
spun_text Spun article
word_count Number of words found in your origin article.
replace_terms Number of terms/words had been replaced in the spun article.

Response Example
{
    "spun_text": "To rewrite an article, simply paste your text into the box below and attend the addicted instructions.",
    "word_count": 17,
    "replace_terms": 4
}
Integration Example
package main
import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)
func main() {
    url := "https://api.spinbot.net/api/spinner"
    payload := strings.NewReader("{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}")
    req, _ := http.NewRequest("POST", url, payload)
    req.Header.Add("content-type", "application/json")
    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)
    fmt.Println(res)
    fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}");
Request request = new Request.Builder()
  .url("https://api.spinbot.net/api/spinner")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
var request = require("request");
var options = { method: 'POST',
  url: 'https://api.spinbot.net/api/spinner',
  headers: 
   { 'content-type': 'application/json' },
  body: 
    { key: 'YOUR_API_KEY',
      text: 'YOUR_ARTICLE_HERE'
    },
  json: true };
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.spinbot.net/api/spinner",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests
url = "https://api.spinbot.net/api/spinner"
payload = "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}"
headers = {
    'content-type': "application/json"
    }
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
require 'uri'
require 'net/http'
url = URI("https://api.spinbot.net/api/spinner")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}"
response = http.request(request)
puts response.read_body
curl --request POST \
  --url https://api.spinbot.net/api/spinner \
  --header 'content-type: application/json' \
  --data "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}"


Article Spintax API

Generate Spintax format for the input article, so you can rewrite it yourself. The response is in JSON format. See the API details below:
End Point
POST https://api.spinbot.net/api/spintax

Cost
01 credit per 250 words in normal mode (default)(Load Credits)
02 credit per 250 words in full mode (maximum term/word suggestions)
For example:
* the API consume 03 credits when rewrite an article that have 520 words in length (normal mode).
* the API consume 06 credits when rewrite an article that have 520 words in length (full mode).

Parameters
Name Example Description
key f05144a02c875b018420c5b5e7479540 Your API key (You can get it here)
text your input text... Input article that need to be rewritten.
full_mode 1: On
Other values: Off
Full mode option.
Response200
(Click here to use graphical tool)
Name Description
spintax Spintax of your input article
word_count Number of words found in your origin article.
replace_terms Number of terms/words had been replaced in the spun article.

Response Example
{
    "spintax": "To rewrite an {piece|provision|commentary|editorial|paper}, simply paste your text into the box {exceeding|exceeding|raised|over|overhead} and {keep|watch|reflect|attend|seek} the {habituated|inured|obsessed|addicted|inclined} instructions.",
    "word_count": 17,
    "replace_terms": 4
}
Integration Example
package main
import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)
func main() {
    url := "https://api.spinbot.net/api/spintax"
    payload := strings.NewReader("{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}")
    req, _ := http.NewRequest("POST", url, payload)
    req.Header.Add("content-type", "application/json")
    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()
    body, _ := ioutil.ReadAll(res.Body)
    fmt.Println(res)
    fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}");
Request request = new Request.Builder()
  .url("https://api.spinbot.net/api/spintax")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
var request = require("request");
var options = { method: 'POST',
  url: 'https://api.spinbot.net/api/spintax',
  headers: 
   { 'content-type': 'application/json' },
  body: 
    { key: 'YOUR_API_KEY',
      text: 'YOUR_ARTICLE_HERE'
    },
  json: true };
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.spinbot.net/api/spintax",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests
url = "https://api.spinbot.net/api/spintax"
payload = "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}"
headers = {
    'content-type': "application/json"
    }
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
require 'uri'
require 'net/http'
url = URI("https://api.spinbot.net/api/spintax")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}"
response = http.request(request)
puts response.read_body
curl --request POST \
  --url https://api.spinbot.net/api/spintax \
  --header 'content-type: application/json' \
  --data "{\"key\":\"YOUR_API_KEY\",\"text\":\"YOUR_ARTICLE_HERE\"}"


Article Extractor API

Extracting the main article of the given URL. The response is in JSON format. See the API details below:
End Point
POST https://api.spinbot.net/api/article

Cost
01 credit per CALL (Load Credits)

Parameters
Name Example Description
key f05144a02c875b018420c5b5e7479540 Your API key (You can get it here)
url https://page.domain/article-url The url of target article
faster_mode 1: On
Other values: Off
you can set this input value to 1 to skip detecting the size (width and height in pixel) of all the images inside the extracted article. The response time of your request will be shortened if you set this input value to 1.
Response200
(Click here to use graphical tool)
Name Description
o_url Original Input URL
title Title of the article in the target webpage
description Short description of extracted article
content Raw content of the extracted article (no format)
contentHTML HTML content of the extracted article. All HTML elements are clean and processed by a smart algorithm
meta Array of all meta informations found in the header of the target webpage. You may need it for private purposes.
images Array of all image URLs found in the extracted article.
images_detail Array of all image URLs found in the extracted article and their dimensions ( width and height) in pixel. This field will empty if you use faster_mode
videos array of all video URLs found in the extracted article.
Response Example
{
    "o_url": "https://www.marketwatch.com/story/iphone-8-reviews-good-but-nothing-to-get-too-excited-about-2017-09-19",
    "title": "iPhone 8 reviews: Good, but nothing to get too excited about - MarketWatch",
    "description": "Apple Inc. recently kicked off pre-orders for its iPhone 8 and iPhone 8 Plus with shipping to start on Friday, but reviews for the smartphone are tepid given that the slight upgrade is getting eclipsed by features touted on the more advanced, and more expensive, iPhone X.",
    "content": "MarketWatch photo illustration/Reuters By WallaceWitkowski Apple Inc. recently kicked off pre-orders for its iPhone 8 and iPhone 8 Plus with shipping to start on Friday, but reviews for the smartphone are tepid given that the slight upgrade is getting eclipsed by features touted on the more advanced, and more expensive, iPhone X. Last week, Apple announced its iPhone 8 and iPhone 8 Plus, along with the iPhone X, or 10, model, but while consumers can get the former in their hands at the end of the week, they’ll have to wait until Nov. 3 to get the iPhone X. The recurring theme that appears in many prominent iPhone 8 reviews is that it is a solid phone, probably good if you have an iPhone older than a 7, but otherwise, it’s a minor upgrade over the 7. Apple AAPL, +0.37% shares closed up less than 0.1% at $158.73, and are up 37% for the year. For the month of September, however, shares are down 3.2% so far. In comparison, the Dow Jones Industrial Average DJIA, +0.18% closed up 0.2%, and both the S&P 500 Index SPX, +0.07% and the Nasdaq Composite Index COMP, -0.01% gained 0.1% Tuesday. For the year and September-to-date, respectively, the Dow is up 13% and 1.9%; the S&P 500 is up 12% and 1.4%; and the Nasdaq has gained 20% and 0.5%. Read: Apple may not be the unstoppable force behind stock-market records it once was Here’s a roundup of what reviewers are saying: Over at The Wall Street Journal, MarketWatch’s sister publication, Geoffrey Fowler said the iPhone 8 reminded him of the fifth “Transformers” movie: “You know it’s new, though you can’t for the life of you figure out how it’s different.” Fowler recommended that if you want the latest and greatest, hold out for the iPhone X, but if you can’t be “be bothered with bells and whistles” like wireless charging and a camera upgrade, then “you can save a chunk of cheese by buying a nearly-as-good iPhone 7 (albeit with less storage) for $550.” The iPhone 8 starts at $699, the larger iPhone 8 Plus starts at $799, while the iPhone X, when it goes on sale, will start at $999. Read: Is Apple’s new iPhone really more secure? Nicole Nguyen at Buzzfeed made it clear she’s not “an iPhone H8r” but, that said, basically the iPhone 8 is what would have been called in the old days an iPhone 7s. David Pierce at Wired said he field-tested the iPhone 8 and 8 Plus and said “Everything works great,” calling them “virtually perfect phones.” He followed that, however, with “And yet it’s already obsolete.” “Want to know where smartphones are headed?” Pierce said. “Look at the iPhone X. The iPhones 8 are probably just the last, best version of what your phone looks like now. And they don’t cost $1,000. And for now, that’s great news.” Nilay Patel at The Verge wrote: The iPhone 8 is fundamentally the fourth generation of the iPhone 6 — Apple told us it thinks of the 8 as an “all-new design,” but that’s also what Apple said about the iPhone 6S and 7. It must take a lot of effort to keep reinventing the same basic design without actually changing it. The major difference you’ll notice is the glass back, but other than that nothing has changed — the 8 and 8 Plus will fit right into 7 and 7 Plus cases perfectly. Farhad Manjoo at the New York Times called the iPhone 8 “a worthy refinement before the next generation,” so basically a solid phone but in terms of an upgrade, minor. He writes: The 8s feel like a swan song — or, to put it another way, they represent Apple’s platonic ideal of that first iPhone, an ultimate refinement before eternal retirement. Unsurprisingly, both the iPhone 8 and 8 Plus are very good phones. Most of Apple’s improvements over the iPhone 7 and 7 Plus are minor, but if you have an older model, either of the 8s will feel like a solid upgrade. David Pogue, writing for Yahoo Finance, said the iPhone 8 was “nice, but nothing to buzz about.” “The gadget world is buzzing about Apple’s upcoming iPhone X, which it unveiled last week,” Pogue wrote. “Good thing, too — because if Apple hadn’t unveiled the iPhone X, there’d be no buzzing at all. The other phone Apple unveiled that day, the iPhone 8, is a very minor upgrade indeed.” Read: 5 Apple suppliers to watch as the new iPhone rolls out What analysts are saying There’s a concern that iPhone 8 pre-orders aren’t living up to expectations, given that it only took one weekend of Sprint Corp.’s S, -0.84% pre-orders for the company to start offering a free iPhone 8 when customers bought new service while trading-in an iPhone 7 or six-month-old Samsung phone, said BTIG analyst Walter Piecyk in a recent note. On Monday, Piecyk remarked: It has only been 3 days since iPhone 8 pre-orders began and Sprint already increased their promotion to a “Free iPhone” headline offer. This could be a sign that Sprint’s pre-orders of the iPhone 8 did not live up to expectations. Other operators might be experiencing the same result with iPhone pre-orders, but feel less pressure than Sprint to use costly promotions to drive subscriber growth. Separately, Sprint shares rallied to finish up 6.8% Tuesday on speculation of a merger with T-Mobile US Inc. TMUS, -0.05% Of note, Apple’s iPhone 8 sales are what are going to appear in the company’s next quarterly earnings report, not those of the iPhone X, which is released after the current quarter ends, so Apple’s iPhone sales for the fiscal fourth quarter are hanging firmly on sales of the 8. On Tuesday, Morgan Stanley analyst Katy Huberty raised her price target on Apple to $194 from $182 while keeping her “Overweight” rating on the stock, given that Apple had raised its prices on devices across the board and that has historically boosted, rather than curbed, demand.",
    "contentHTML": "<figure> <div> <img src=\"https://ei.marketwatch.com//Multimedia/2017/09/19/Photos/ZH/MW-FU608_iphone_20170919133725_ZH.jpg?uuid=335494d8-9d61-11e7-bf30-9c8e992d421e\"> <cite>MarketWatch photo illustration/Reuters</cite> </div> </figure> <div> <div> <div> <div> <a href=\"https://www.marketwatch.com/topics/journalists/wallace-witkowski\"> <img src=\"https://i.mktw.net/_newsimages/2014_dreds/wallaceWitkowski_100.png\"> </a> <p>By</p> <a title=\"Wallace Witkowski\" href=\"https://www.marketwatch.com/topics/journalists/wallace-witkowski\"> <h3> Wallace<b>Witkowski</b> </h3> </a> </div> </div> </div> <div> <p>Apple Inc. recently kicked off pre-orders for its iPhone 8 and iPhone 8 Plus with shipping to start on Friday, but reviews for the smartphone are tepid given that the slight upgrade is getting eclipsed by features touted on the more advanced, and more expensive, iPhone X.</p> <p>Last week, <a href=\"https://www.marketwatch.com/story/everything-apple-announced-at-its-iphone-event-2017-09-12\">Apple announced its iPhone 8 and iPhone 8 Plus</a>, along with the iPhone X, or 10, model, but while consumers can get the former in their hands at the end of the week, they&#x2019;ll have to wait until Nov. 3 to get the iPhone X. The recurring theme that appears in many prominent iPhone 8 reviews is that it is a solid phone, probably good if you have an iPhone older than a 7, but otherwise, it&#x2019;s a minor upgrade over the 7. </p> <p> <strong>Apple <span><a href=\"https://www.marketwatch.com/investing/stock/aapl\">AAPL, <span>+0.37%</span></a></span> &#xA0;</strong>&#xA0;shares closed up less than 0.1% at $158.73, and are up 37% for the year. For the month of September, however, shares are down 3.2% so far. </p> <p>In comparison, the Dow Jones Industrial Average <span><a href=\"https://www.marketwatch.com/investing/index/djia\">DJIA, <span>+0.18%</span></a></span> &#xA0;closed up 0.2%, and both the S&amp;P 500 Index <span><a href=\"https://www.marketwatch.com/investing/index/spx\">SPX, <span>+0.07%</span></a></span> &#xA0;and the Nasdaq Composite Index <span><a href=\"https://www.marketwatch.com/investing/index/comp\">COMP, <span>-0.01%</span></a></span> &#xA0;gained 0.1% Tuesday. For the year and September-to-date, respectively, the Dow is up 13% and 1.9%; the S&amp;P 500 is up 12% and 1.4%; and the Nasdaq has gained 20% and 0.5%. </p> <p> <strong>Read:</strong> <a href=\"https://www.marketwatch.com/story/apple-may-not-be-the-unstoppable-force-behind-stock-market-records-it-once-was-2017-09-19\">Apple may not be the unstoppable force behind stock-market records it once was</a> </p> <p>Here&#x2019;s a roundup of what reviewers are saying: </p> <p>Over at The Wall Street Journal, MarketWatch&#x2019;s sister publication, Geoffrey Fowler said the iPhone 8 reminded him of the fifth &#x201C;Transformers&#x201D; movie:<a href=\"https://www.wsj.com/articles/iphone-8-review-not-the-upgrade-youre-looking-for-1505818800\"> &#x201C;You know it&#x2019;s new, though you can&#x2019;t for the life of you figure out how it&#x2019;s different.&#x201D;</a></p> <p> <a href=\"https://www.wsj.com/articles/iphone-8-review-not-the-upgrade-youre-looking-for-1505818800\"></a>Fowler recommended that if you want the latest and greatest, hold out for the iPhone X, but if you can&#x2019;t be &#x201C;be bothered with bells and whistles&#x201D; like wireless charging and a camera upgrade, then &#x201C;you can save a chunk of cheese by buying a nearly-as-good iPhone 7 (albeit with less storage) for $550.&#x201D;</p> <p>The iPhone 8 starts at $699, the larger iPhone 8 Plus starts at $799, while the iPhone X, when it goes on sale, will start at $999. </p> <p> <strong>Read:</strong> <a href=\"https://www.marketwatch.com/story/is-apples-new-iphones-facial-recognition-really-more-secure-2017-09-13\">Is Apple&#x2019;s new iPhone really more secure?</a> </p> <p>Nicole Nguyen at Buzzfeed made it clear she&#x2019;s not &#x201C;an iPhone H8r&#x201D; but, that said, basically the iPhone 8 is what would have been called in the old days <a href=\"https://www.buzzfeed.com/nicolenguyen/iphone-8-review\">an iPhone 7s.</a></p> <p>David Pierce at Wired said he field-tested the iPhone 8 and 8 Plus and said &#x201C;Everything works great,&#x201D; calling them &#x201C;virtually perfect phones.&#x201D; He followed that, however, with <a href=\"https://www.wired.com/2017/09/review-apple-iphone-8-and-8-plus/\">&#x201C;And yet it&#x2019;s already obsolete.&#x201D;</a></p> <p>&#x201C;Want to know where smartphones are headed?&#x201D; Pierce said. &#x201C;Look at the iPhone X. The iPhones 8 are probably just the last, best version of what your phone looks like now. And they don&#x2019;t cost $1,000. And for now, that&#x2019;s great news.&#x201D; </p> <p> <a href=\"https://www.theverge.com/2017/9/19/16323570/apple-new-iphone-8-review-plus-2017\">Nilay Patel at The Verge</a> wrote:</p> <table> <tbody> <tr> <td> <p>The iPhone 8 is fundamentally the fourth generation of the iPhone 6 &#x2014; Apple told us it thinks of the 8 as an &#x201C;all-new design,&#x201D; but that&#x2019;s also what Apple said about the iPhone 6S and 7. It must take a lot of effort to keep reinventing the same basic design without actually changing it. The major difference you&#x2019;ll notice is the glass back, but other than that nothing has changed &#x2014; the 8 and 8 Plus will fit right into 7 and 7 Plus cases perfectly.</p> </td> </tr> </tbody> </table> <p> <a href=\"https://www.nytimes.com/2017/09/19/technology/personaltech/the-iphone-8-a-worthy-refinement-before-the-next-generation.html\">Farhad Manjoo at the New York Times </a>called the iPhone 8 &#x201C;a worthy refinement before the next generation,&#x201D; so basically a solid phone but in terms of an upgrade, minor.</p> <p>He writes: </p> <table> <tbody> <tr> <td> <p>The 8s feel like a swan song &#x2014; or, to put it another way, they represent Apple&#x2019;s platonic ideal of that first iPhone, an ultimate refinement before eternal retirement. Unsurprisingly, both the iPhone 8 and 8 Plus are very good phones. Most of Apple&#x2019;s improvements over the iPhone 7 and 7 Plus are minor, but if you have an older model, either of the 8s will feel like a solid upgrade.</p> </td> </tr> </tbody> </table> <p> <a href=\"https://finance.yahoo.com/news/iphone-8-reviewed-nice-nothing-buzz-110550246.html\">David Pogue, writing for Yahoo Finance,</a> said the iPhone 8 was &#x201C;nice, but nothing to buzz about.&#x201D;</p> <p>&#x201C;The gadget world is buzzing about Apple&#x2019;s upcoming iPhone X, which it unveiled last week,&#x201D; Pogue wrote. &#x201C;Good thing, too &#x2014; because if Apple hadn&#x2019;t unveiled the iPhone X, there&#x2019;d be no buzzing at all. The other phone Apple unveiled that day, the iPhone 8, is a very minor upgrade indeed.&#x201D;</p> <p> <strong>Read:</strong> <a href=\"https://www.marketwatch.com/story/5-apple-suppliers-to-watch-as-the-new-iphone-rolls-out-2017-09-15\">5 Apple suppliers to watch as the new iPhone rolls out</a> </p> <h6>What analysts are saying</h6> <p>There&#x2019;s a concern that iPhone 8 pre-orders aren&#x2019;t living up to expectations, given that it only took one weekend of <strong>Sprint Corp.</strong>&#x2019;s <span><a href=\"https://www.marketwatch.com/investing/stock/s\">S, <span>-0.84%</span></a></span> &#xA0;pre-orders for the company to start offering a free iPhone 8 when customers bought new service while trading-in an iPhone 7 or six-month-old Samsung phone, said BTIG analyst Walter Piecyk in a recent note. </p> <p>On Monday, Piecyk remarked:</p> <table> <tbody> <tr> <td> <p>It has only been 3 days since iPhone 8 pre-orders began and Sprint already increased their promotion to a &#x201C;Free iPhone&#x201D; headline offer. This could be a sign that Sprint&#x2019;s pre-orders of the iPhone 8 did not live up to expectations. Other operators might be experiencing the same result with iPhone pre-orders, but feel less pressure than Sprint to use costly promotions to drive subscriber growth.</p> </td> </tr> </tbody> </table> <p>Separately, Sprint shares rallied to finish up 6.8% Tuesday on <a href=\"https://www.marketwatch.com/story/sprint-shares-gain-8-on-renewed-speculation-of-merger-talk-with-t-mobile-2017-09-19\">speculation of a merger </a>with <strong>T-Mobile US Inc.</strong> <span><a href=\"https://www.marketwatch.com/investing/stock/tmus\">TMUS, <span>-0.05%</span></a></span> &#xA0;</p> <p>Of note, Apple&#x2019;s iPhone 8 sales are what are going to appear in the company&#x2019;s next quarterly earnings report, not those of the iPhone X, which is released after the current quarter ends, so Apple&#x2019;s iPhone sales for the fiscal fourth quarter are hanging firmly on sales of the 8.</p> <figure> <div> <img src=\"https://ei.marketwatch.com//Multimedia/2017/09/19/Photos/NS/MW-FU614_msaapl_20170919145701_NS.png?uuid=52231f96-9d6c-11e7-a9cc-9c8e992d421e\"> <!-- Image Credit --> <cite></cite> <!-- Caption inside of wrapper on slideshow media types --> </div> <!-- Caption outside of wrapper for normal article images --> </figure> <p>On Tuesday, Morgan Stanley analyst Katy Huberty <a href=\"https://www.marketwatch.com/story/apples-price-target-raised-at-morgan-stanley-as-higher-asps-should-boost-profits-2017-09-19\">raised her price target on Apple</a> to $194 from $182 while keeping her &#x201C;Overweight&#x201D; rating on the stock, given that Apple had raised its prices on devices across the board and that has historically boosted, rather than curbed, demand.</p> </div> </div>",
    "meta": {
        "apple-itunes-app": "app-id=336693422",
        "viewport": "width=device-width, initial-scale=1, maximum-scale=1",
        "page.site": "marketwatch",
        "fb:app_id": "283204329838",
        "og:site_name": "MarketWatch",
        "twitter:site:id": "624413",
        "twitter:domain": "marketwatch.com",
        "article.content_group": "marketwatch",
        "article.id": "A48600E2-9D57-11E7-A59E-94FA37FFE634",
        "article.section": "Industries",
        "article:publisher": "https://www.facebook.com/marketwatch",
        "author": "Wallace Witkowski",
        "description": "Apple Inc. recently kicked off pre-orders for its iPhone 8 and iPhone 8 Plus with shipping to start on Friday, but reviews for the smartphone are tepid given that the slight upgrade is getting eclipsed by features touted on the more advanced, and more expensive, iPhone X.",
        "og:description": "Apple Inc. recently kicked off pre-orders for its iPhone 8 and iPhone 8 Plus with shipping to start on Friday, but reviews for the smartphone are tepid given that the slight upgrade is getting eclipsed by features touted on the more advanced, and more expensive, iPhone X.",
        "twitter:description": "Apple Inc. recently kicked off pre-orders for its iPhone 8 and iPhone 8 Plus with shipping to start on Friday, but reviews for the smartphone are tepid given that the slight upgrade is getting eclipsed by features touted on the more advanced, and more expensive, iPhone X.",
        "og:type": "article",
        "og:url": "https://www.marketwatch.com/story/iphone-8-reviews-good-but-nothing-to-get-too-excited-about-2017-09-19",
        "og:title": "iPhone 8 reviews: Good, but nothing to get too excited about",
        "article.column": "The Ratings Game",
        "article.doctype": "103",
        "article.template": "Normal",
        "news_keywords": "Computer Hardware,Computer Software,Software,Telecommunications,Fiber Optics,US:AAPL,US:DJIA,US:SPX,US:COMP,US:S",
        "robots": "noarchive,noodp",
        "og:image": "https://s.marketwatch.com/public/resources/MWimages/MW-FU608_iphone_ZG_20170919133725.jpg",
        "twitter:image": "https://s.marketwatch.com/public/resources/MWimages/MW-FU608_iphone_ZG_20170919133725.jpg",
        "twitter:image:width": "1320",
        "twitter:image:height": "742",
        "twitter:card": "summary_large_image",
        "twitter:creator": "@wmwitkowski",
        "parsely-title": "iPhone 8 reviews: Good, but nothing to get too excited about",
        "parsely-link": "https://www.marketwatch.com/story/iphone-8-reviews-good-but-nothing-to-get-too-excited-about-2017-09-19",
        "parsely-type": "post",
        "parsely-section": "Industries",
        "parsely-author": "Wallace Witkowski",
        "parsely-pub-date": "2017-09-27T07:25:00-04:00",
        "parsely-tags": "The Ratings Game,103,Normal,Computers/Electronics,Computer Hardware,Computer Software,Software,Telecommunications,Fiber Optics,US:AAPL,US:DJIA,US:SPX,US:COMP,US:S,US:TMUS",
        "position": "1"
    },
    "images": [
        "https://ei.marketwatch.com//Multimedia/2017/09/19/Photos/ZH/MW-FU608_iphone_20170919133725_ZH.jpg?uuid=335494d8-9d61-11e7-bf30-9c8e992d421e",
        "https://i.mktw.net/_newsimages/2014_dreds/wallaceWitkowski_100.png",
        "https://ei.marketwatch.com//Multimedia/2017/09/19/Photos/NS/MW-FU614_msaapl_20170919145701_NS.png?uuid=52231f96-9d6c-11e7-a9cc-9c8e992d421e"
    ],
    "images_detail": [
        {
            "width": 652,
            "height": 428,
            "type": "png",
            "mime": "image/png",
            "wUnits": "px",
            "hUnits": "px",
            "length": 52108,
            "url": "https://ei.marketwatch.com//Multimedia/2017/09/19/Photos/NS/MW-FU614_msaapl_20170919145701_NS.png?uuid=52231f96-9d6c-11e7-a9cc-9c8e992d421e"
        },
        {
            "width": 890,
            "height": 501,
            "type": "jpg",
            "mime": "image/jpeg",
            "wUnits": "px",
            "hUnits": "px",
            "length": 80487,
            "url": "https://ei.marketwatch.com//Multimedia/2017/09/19/Photos/ZH/MW-FU608_iphone_20170919133725_ZH.jpg?uuid=335494d8-9d61-11e7-bf30-9c8e992d421e"
        },
        {
            "width": 100,
            "height": 100,
            "type": "png",
            "mime": "image/png",
            "wUnits": "px",
            "hUnits": "px",
            "length": 13645,
            "url": "https://i.mktw.net/_newsimages/2014_dreds/wallaceWitkowski_100.png"
        }
    ],
    "videos": []
}
Integration Example
package main
import (
	"fmt"
	"strings"
	"net/http"
	"io/ioutil"
)
func main() {
	url := "https://api.spinbot.net/api/article"
	payload := strings.NewReader("{\"key\":\"YOUR_API_KEY\",\"url\":\"URL\"}")
	req, _ := http.NewRequest("POST", url, payload)
	req.Header.Add("content-type", "application/json")
	res, _ := http.DefaultClient.Do(req)
	defer res.Body.Close()
	body, _ := ioutil.ReadAll(res.Body)
	fmt.Println(res)
	fmt.Println(string(body))
}
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"key\":\"YOUR_API_KEY\",\"url\":\"URL\"}");
Request request = new Request.Builder()
  .url("https://api.spinbot.net/api/article")
  .post(body)
  .addHeader("content-type", "application/json")
  .build();
Response response = client.newCall(request).execute();
var request = require("request");
var options = { method: 'POST',
  url: 'https://api.spinbot.net/api/article',
  headers: 
   { 'content-type': 'application/json' },
  body: 
    { key: 'YOUR_API_KEY',
      url: 'URL'
    },
  json: true };
request(options, function (error, response, body) {
  if (error) throw new Error(error);
  console.log(body);
});
$curl = curl_init();
curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.spinbot.net/api/article",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => "{\"key\":\"YOUR_API_KEY\",\"url\":\"URL\"}",
  CURLOPT_HTTPHEADER => array(
    "content-type: application/json"
  ),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
import requests
url = "https://api.spinbot.net/api/article"
payload = "{\"key\":\"YOUR_API_KEY\",\"url\":\"URL\"}"
headers = {
    'content-type': "application/json"
    }
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
require 'uri'
require 'net/http'
url = URI("https://api.spinbot.net/api/article")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request.body = "{\"key\":\"YOUR_API_KEY\",\"url\":\"URL\"}"
response = http.request(request)
puts response.read_body
curl --request POST \
  --url https://api.spinbot.net/api/article \
  --header 'content-type: application/json' \
  --data "{\"key\":\"YOUR_API_KEY\",\"url\":\"URL\"}"


Get API Key

Your API key is available in this page after you signed in Spinbot.net system.


Load More Credits

To load more credits to use our awesome APIs, click the button below:
Click Here!