SkySlope Auth API

The Auth API from SkySlope — 1 operation(s) for auth.

Operations 1

POST /ext/token Retrieve an access token

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/skyslope-auth-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

skyslope-auth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: SkySlope Offers API Reference Auth API
  x-logo:
    url: https://s3.amazonaws.com/cdn.skyslope.com/offer-management/om-logo-w-padding.png
    altText: Offers Logo
    href: https://skyslope.com/offer-management-login/
  description: '# Introduction

    The SkySlope Offers API is organized around [REST](https://en.wikipedia.org/wiki/Representational_state_transfer).

    Our API has predictable resource-oriented URLs, accepts JSON-encoded request bodies, returns JSON-encoded responses,

    and uses standard HTTP response codes, authentication, and verbs.

    # Authentication

    The SkySlope Offers API uses [OAuth 2.0 client credentials flow](https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/)

    to obtain an access token that can be used to authenticate subsequent API requests.


    To obtain an access token, see **[this endpoint](https://offers.skyslope.com/offers-api/reference#tag/Auth/paths/~1mls~1token/post)**.


    Authentication to the API is performed by including your access token in the **Authorization** header of your

    API requests with the Bearer authentication scheme.


    All API requests must be made over [HTTPS](https://en.wikipedia.org/wiki/HTTPS). Calls made over plain HTTP will fail.

    API requests without authentication will also fail.

    '
  termsOfService: https://skyslope.com/terms-conditions/
  contact:
    name: Support
    url: https://support.skyslope.com/hc/en-us
    email: support@skyslope.com
servers:
- url: https://offers.skyslope.com/offers-api
  description: Production server
- url: https://staging-offers.skyslope.com/offers-api
  description: Staging server
tags:
- name: Auth
paths:
  /ext/token:
    post:
      summary: Retrieve an access token
      description: Retrieve an access token to authenticate requests with.
      tags:
      - Auth
      parameters:
      - in: header
        name: Authorization
        schema:
          type: string
        required: true
        description: '<code>Basic BASE64_CREDENTIALS</code>


          "BASE64_CREDENTIALS" is the Base64-encoded value of your Client ID and Client Secret, separated by a colon

          '
      x-codeSamples:
      - lang: cURL
        source: 'curl --location --request POST ''https://offers.skyslope.com/offers-api/ext/token'' \ --header ''Authorization: Basic BASE64_CREDENTIALS''

          '
      - lang: Javascript
        source: "var myHeaders = new Headers(); myHeaders.append(\"Authorization\", \"Basic BASE64_CREDENTIALS);\nvar requestOptions = {\n  method: 'POST',\n  headers: myHeaders,\n  redirect: 'follow'\n};\nfetch(\"https://offers.skyslope.com/offers-api/ext/token\", requestOptions)\n  .then(response => response.text())\n  .then(result => console.info(result))\n  .catch(error => console.info('error', error));\n"
      - lang: Python
        source: "import requests\n\nurl = \"https://offers.skyslope.com/offers-api/ext/token\"\n\npayload = {}\nheaders = {\n  'Authorization': 'Basic BASE64_CREDENTIALS'\n}\n\nresponse = requests.request(\"POST\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
      - lang: C#
        source: 'var client = new HttpClient();


          var request = new HttpRequestMessage(HttpMethod.Post, "https://offers.skyslope.com/offers-api/ext/token");

          request.Headers.Add("Authorization", "Basic BASE64_CREDENTIALS");


          var response = await client.SendAsync(request);

          response.EnsureSuccessStatusCode();


          Console.WriteLine(await response.Content.ReadAsStringAsync());

          '
      - lang: PHP
        source: "<?php\n$curl = curl_init();\ncurl_setopt_array($curl, array(\n  CURLOPT_URL => 'https://offers.skyslope.com/offers-api/ext/token',\n  CURLOPT_RETURNTRANSFER => true,\n  CURLOPT_ENCODING => '',\n  CURLOPT_MAXREDIRS => 10,\n  CURLOPT_TIMEOUT => 0,\n  CURLOPT_FOLLOWLOCATION => true,\n  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,\n  CURLOPT_CUSTOMREQUEST => 'POST',\n  CURLOPT_HTTPHEADER => array(\n    'Authorization: Basic BASE64_CREDENTIALS'\n  ),\n));\n$response = curl_exec($curl);\ncurl_close($curl); echo $response;\n"
      - lang: Ruby
        source: 'require "uri" require "net/http"

          url = URI("https://offers.skyslope.com/offers-api/ext/token")

          http = Net::HTTP.new(url.host, url.port); request = Net::HTTP::Post.new(url) request["Authorization"] = "Basic Basic BASE64_CREDENTIALS"

          response = http.request(request) puts response.read_body

          '
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
                properties:
                  token_type:
                    type: string
                  expires_in:
                    type: number
                  access_token:
                    type: string
              example:
                token_type: Bearer
                expires_in: 3600
                access_token: ACCESS_TOKEN
        '204':
          description: No Content
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '500':
          description: Internal Server Error