AppSkyline Sandbox API

The Sandbox API from AppSkyline — 3 operation(s) for sandbox.

Operations 3

GET /api/sandbox/keywords Read sandbox keyword ranks without authentication #
POST /api/sandbox/rankchecks Start a demonstration asynchronous rank check #
GET /api/sandbox/rankchecks/{jobId} Poll a demonstration rank check #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/appskyline-com:appskyline-com-sandbox-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

appskyline-com-sandbox-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Appskyline Com Sandbox API
  version: 1.0.0
  x-api-versioning:
    currentVersion: '1'
    requestHeader: API-Version
    responseHeader: API-Version
    compatibilityPolicy: Omitting API-Version selects version 1. Unsupported versions return HTTP 400 with supportedVersions.
    deprecationPolicy: AppSkyline announces incompatible versions at least 180 days before removal. Deprecated responses include Deprecation, Sunset, and a Link relation named deprecation.
    deprecationHeaders:
    - Deprecation
    - Sunset
    - Link
    policyUrl: https://www.appskyline.com/api.md#compatibility-version
  description: 'Operations tagged Sandbox across 2 of this provider''s published API definitions: appskyline-api.swagger.json, appskyline-com-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.appskyline.com
tags:
- name: Sandbox
paths:
  /api/sandbox/keywords:
    get:
      tags:
      - Sandbox
      summary: Read sandbox keyword ranks without authentication
      description: Returns a fixed set of demonstration keyword-rank rows in the same `{searchTerms, store, country, rank}` shape as authenticated keyword reads. No account, credential, or key is required, so agents can evaluate the API before onboarding. Responses carry the standard `RateLimit` response headers and the anonymous pacing limit applies.
      security: []
      responses:
        '200':
          description: Demonstration keyword-rank rows.
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    _id:
                      type: string
                    searchTerms:
                      type: string
                    store:
                      type: string
                      enum:
                      - ios-app-store
                      - macos-app-store
                      - google-play
                      - microsoft-store
                    country:
                      type: string
                    rank:
                      type: integer
        '429':
          description: Anonymous rate limit exceeded; retry after `Retry-After` seconds.
      operationId: getApiSandboxKeywords
      x-codeSamples:
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {method: 'GET', url: 'https://api.appskyline.com/api/sandbox/keywords'};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://api.appskyline.com/api/sandbox/keywords"
      - lang: Shell + Httpie
        source: http GET https://api.appskyline.com/api/sandbox/keywords
      - lang: Python + Python3
        source: 'import http.client


          conn = http.client.HTTPSConnection("api.appskyline.com")


          conn.request("GET", "/api/sandbox/keywords")


          res = conn.getresponse()

          data = res.read()


          print(data.decode("utf-8"))'
      - lang: Php + Curl
        source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n  CURLOPT_URL => \"https://api.appskyline.com/api/sandbox/keywords\",\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_ENCODING => \"\",\n  CURLOPT_MAXREDIRS => 10,\n  CURLOPT_TIMEOUT => 30,\n  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST => \"GET\",\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n  echo \"cURL Error #:\" . $err;\n} else {\n  echo $response;\n}"
      - lang: Php + Http1
        source: "<?php\n\n$request = new HttpRequest();\n$request->setUrl('https://api.appskyline.com/api/sandbox/keywords');\n$request->setMethod(HTTP_METH_GET);\n\ntry {\n  $response = $request->send();\n\n  echo $response->getBody();\n} catch (HttpException $ex) {\n  echo $ex;\n}"
      - lang: Php + Http2
        source: '<?php


          $client = new http\Client;

          $request = new http\Client\Request;


          $request->setRequestUrl(''https://api.appskyline.com/api/sandbox/keywords'');

          $request->setRequestMethod(''GET'');

          $client->enqueue($request)->send();

          $response = $client->getResponse();


          echo $response->getBody();'
    servers:
    - url: https://api.appskyline.com
  /api/sandbox/rankchecks:
    post:
      tags:
      - Sandbox
      summary: Start a demonstration asynchronous rank check
      description: Demonstrates the API's asynchronous-job pattern without authentication. The response is `202 Accepted` with a `Location` header pointing at the job resource and a body carrying the job `_id` and `status`. Poll the `Location` URL until the status is `succeeded`, then read the ranks from the job body. The job is deterministic fixture work that completes about two seconds after creation.
      security: []
      responses:
        '202':
          description: Job accepted; poll the `Location` URL for the result.
          headers:
            Location:
              description: URL of the created job resource.
              schema:
                type: string
                example: /api/sandbox/rankchecks/c2FuZGJveGpvYnwxNzU2NTAwMDAwMDAw
          content:
            application/json:
              schema:
                type: object
                properties:
                  _id:
                    type: string
                  status:
                    type: string
                    enum:
                    - pending
                    - running
                    - succeeded
                  creationTime:
                    type: string
                    format: date-time
        '429':
          description: Anonymous rate limit exceeded; retry after `Retry-After` seconds.
      operationId: postApiSandboxRankchecks
      x-codeSamples:
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {method: 'POST', url: 'https://api.appskyline.com/api/sandbox/rankchecks'};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Shell + Curl
        source: "curl --request POST \\\n  --url https://api.appskyline.com/api/sandbox/rankchecks"
      - lang: Shell + Httpie
        source: http POST https://api.appskyline.com/api/sandbox/rankchecks
      - lang: Python + Python3
        source: 'import http.client


          conn = http.client.HTTPSConnection("api.appskyline.com")


          conn.request("POST", "/api/sandbox/rankchecks")


          res = conn.getresponse()

          data = res.read()


          print(data.decode("utf-8"))'
      - lang: Php + Curl
        source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n  CURLOPT_URL => \"https://api.appskyline.com/api/sandbox/rankchecks\",\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_ENCODING => \"\",\n  CURLOPT_MAXREDIRS => 10,\n  CURLOPT_TIMEOUT => 30,\n  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST => \"POST\",\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n  echo \"cURL Error #:\" . $err;\n} else {\n  echo $response;\n}"
      - lang: Php + Http1
        source: "<?php\n\n$request = new HttpRequest();\n$request->setUrl('https://api.appskyline.com/api/sandbox/rankchecks');\n$request->setMethod(HTTP_METH_POST);\n\ntry {\n  $response = $request->send();\n\n  echo $response->getBody();\n} catch (HttpException $ex) {\n  echo $ex;\n}"
      - lang: Php + Http2
        source: '<?php


          $client = new http\Client;

          $request = new http\Client\Request;


          $request->setRequestUrl(''https://api.appskyline.com/api/sandbox/rankchecks'');

          $request->setRequestMethod(''POST'');

          $client->enqueue($request)->send();

          $response = $client->getResponse();


          echo $response->getBody();'
    servers:
    - url: https://api.appskyline.com
  /api/sandbox/rankchecks/{jobId}:
    get:
      tags:
      - Sandbox
      summary: Poll a demonstration rank check
      description: Reads the status of a demonstration job started at `POST /api/sandbox/rankchecks`. While the job runs the status is `running`; afterwards it is `succeeded` and the body carries the checked term's rank in every store carrying it. No authentication is required.
      security: []
      parameters:
      - in: path
        name: jobId
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Current job state.
          content:
            application/json:
              schema:
                type: object
                properties:
                  _id:
                    type: string
                  status:
                    type: string
                    enum:
                    - pending
                    - running
                    - succeeded
                  creationTime:
                    type: string
                    format: date-time
                  completionTime:
                    type: string
                    format: date-time
                  ranks:
                    type: array
                    items:
                      type: object
                      properties:
                        searchTerms:
                          type: string
                        store:
                          type: string
                        country:
                          type: string
                        rank:
                          type: integer
        '404':
          description: Unknown job id.
      operationId: getApiSandboxRankchecksJobId
      x-codeSamples:
      - lang: Node + Request
        source: "const request = require('request');\n\nconst options = {\n  method: 'GET',\n  url: 'https://api.appskyline.com/api/sandbox/rankchecks/%7BjobId%7D'\n};\n\nrequest(options, function (error, response, body) {\n  if (error) throw new Error(error);\n\n  console.log(body);\n});\n"
      - lang: Shell + Curl
        source: "curl --request GET \\\n  --url https://api.appskyline.com/api/sandbox/rankchecks/%7BjobId%7D"
      - lang: Shell + Httpie
        source: http GET https://api.appskyline.com/api/sandbox/rankchecks/%7BjobId%7D
      - lang: Python + Python3
        source: 'import http.client


          conn = http.client.HTTPSConnection("api.appskyline.com")


          conn.request("GET", "/api/sandbox/rankchecks/%7BjobId%7D")


          res = conn.getresponse()

          data = res.read()


          print(data.decode("utf-8"))'
      - lang: Php + Curl
        source: "<?php\n\n$curl = curl_init();\n\ncurl_setopt_array($curl, [\n  CURLOPT_URL => \"https://api.appskyline.com/api/sandbox/rankchecks/%7BjobId%7D\",\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_ENCODING => \"\",\n  CURLOPT_MAXREDIRS => 10,\n  CURLOPT_TIMEOUT => 30,\n  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST => \"GET\",\n]);\n\n$response = curl_exec($curl);\n$err = curl_error($curl);\n\ncurl_close($curl);\n\nif ($err) {\n  echo \"cURL Error #:\" . $err;\n} else {\n  echo $response;\n}"
      - lang: Php + Http1
        source: "<?php\n\n$request = new HttpRequest();\n$request->setUrl('https://api.appskyline.com/api/sandbox/rankchecks/%7BjobId%7D');\n$request->setMethod(HTTP_METH_GET);\n\ntry {\n  $response = $request->send();\n\n  echo $response->getBody();\n} catch (HttpException $ex) {\n  echo $ex;\n}"
      - lang: Php + Http2
        source: '<?php


          $client = new http\Client;

          $request = new http\Client\Request;


          $request->setRequestUrl(''https://api.appskyline.com/api/sandbox/rankchecks/%7BjobId%7D'');

          $request->setRequestMethod(''GET'');

          $client->enqueue($request)->send();

          $response = $client->getResponse();


          echo $response->getBody();'
    servers:
    - url: https://api.appskyline.com
components:
  schemas:
    Error:
      type: object
      description: Structured JSON API error.
      required:
      - name
      - message
      - status
      properties:
        name:
          type: string
        message:
          type: string
        status:
          type: integer
        details:
          type: object
          additionalProperties: true
  headers:
    Deprecation:
      description: Present only when this API operation or version is deprecated. The value is an RFC 9745 Structured Field Date.
      schema:
        type: string
        example: '@1893456000'
    DeprecationLink:
      description: Present on deprecated responses and points to the applicable migration or deprecation policy with rel="deprecation".
      schema:
        type: string
        example: <https://www.appskyline.com/api.md#compatibility-version>; rel="deprecation"
    Sunset:
      description: Present on deprecated responses when a retirement date is scheduled. The value is an HTTP-date.
      schema:
        type: string
        example: Tue, 01 Jan 2030 00:00:00 GMT
  securitySchemes:
    apiKey:
      type: http
      scheme: basic
      description: 'HTTP Basic auth carrying only the API key secret: `Authorization: Basic base64(<key secret>)`.'
    accessToken:
      type: apiKey
      in: header
      name: Authorization
      description: 'Operator session token issued by the Appskyline dashboard: `Authorization: Token <access token>`.'
x-refined-from:
- appskyline-api.swagger.json
- appskyline-com-openapi.json