Salla OAuth API

The OAuth API from Salla — 3 operation(s) for oauth.

Operations 3

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

GET /oauth2/auth Ask a merchant to authorize an app · Authorize App #
Ask an LLM
“How does my app request permission to access a merchant's store data?”
“What scopes can I ask a merchant to grant during authorization?”
Tell an agent
Start authorization for client {client_id} with response type {response_type}, redirecting to {redirect_uri}.
Send the merchant to the consent screen for client {client_id} asking for scope {scope}, response type {response_type}, redirect {redirect_uri}.
POST /oauth2/token Exchange a code or refresh a token · Exchange Or Refresh Token #
Ask an LLM
“How do I turn an authorization code into an access token?”
“Can I refresh an expired Salla access token without asking the merchant again?”
Tell an agent
Exchange code {code} for an access token using client {client_id}, secret {client_secret}, grant type {grant_type}.
Refresh the token with refresh token {refresh_token} for client {client_id}, secret {client_secret}, grant type {grant_type}.
GET /oauth2/user/info Get the authenticated merchant's info · Get Authenticated Merchant Info #
Ask an LLM
“Which merchant and store does my current access token belong to?”
“Can I check who authorized my app?”
Tell an agent
Show the merchant info for my current token.
Get the authenticated merchant's details.

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/salla:salla-oauth-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

salla-oauth-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Salla Apps OAuth API
  description: 'OAuth 2.0 authorization server for Salla apps. Handles the merchant

    consent flow, access and refresh token exchange, and merchant user info

    lookup. Apps obtain a 14-day access token plus a refresh token valid

    within a one-month window.


    OAuth endpoints are hosted at `https://accounts.salla.sa`. Authenticated

    REST calls then go to the Merchant API base URL

    `https://api.salla.dev/admin/v2`.'
  version: '2'
  contact:
    name: Salla Developers
    url: https://docs.salla.dev/
    email: support@salla.dev
servers:
- url: https://accounts.salla.sa
  description: Salla OAuth and account endpoints
tags:
- name: OAuth
paths:
  /oauth2/auth:
    get:
      summary: Authorize App
      operationId: authorize
      tags:
      - OAuth
      description: Initiates the merchant permission request for store data access.
      parameters:
      - name: client_id
        in: query
        required: true
        schema:
          type: string
      - name: response_type
        in: query
        required: true
        schema:
          type: string
          enum:
          - code
      - name: redirect_uri
        in: query
        required: true
        schema:
          type: string
          format: uri
      - name: scope
        in: query
        schema:
          type: string
          example: offline_access
      - name: state
        in: query
        schema:
          type: string
      responses:
        '302':
          description: Redirect to the redirect_uri with an authorization code.
  /oauth2/token:
    post:
      summary: Exchange Or Refresh Token
      operationId: token
      tags:
      - OAuth
      description: Exchanges an authorization code for an access token, or refreshes an expired token.
      requestBody:
        required: true
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              required:
              - client_id
              - client_secret
              - grant_type
              properties:
                client_id:
                  type: string
                client_secret:
                  type: string
                grant_type:
                  type: string
                  enum:
                  - authorization_code
                  - refresh_token
                code:
                  type: string
                refresh_token:
                  type: string
                redirect_uri:
                  type: string
                  format: uri
                scope:
                  type: string
      responses:
        '200':
          description: Token response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenResponse'
  /oauth2/user/info:
    get:
      summary: Get Authenticated Merchant Info
      operationId: getUserInfo
      tags:
      - OAuth
      security:
      - BearerAuth: []
      responses:
        '200':
          description: Merchant and store information for the authenticated token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserInfo'
components:
  schemas:
    UserInfo:
      type: object
      properties:
        status:
          type: integer
        success:
          type: boolean
        data:
          type: object
          properties:
            id:
              type: integer
            name:
              type: string
            email:
              type: string
              format: email
            mobile:
              type: string
            role:
              type: string
            merchant:
              type: object
              properties:
                id:
                  type: integer
                username:
                  type: string
                name:
                  type: string
                avatar:
                  type: string
                  format: uri
                store:
                  type: object
                  properties:
                    id:
                      type: integer
                    owner_name:
                      type: string
                    owner_email:
                      type: string
                      format: email
                    plan:
                      type: string
                    status:
                      type: string
                    domain:
                      type: string
                    url:
                      type: string
                      format: uri
                    avatar:
                      type: string
                      format: uri
                    currency:
                      type: string
                    location:
                      type: string
    TokenResponse:
      type: object
      properties:
        access_token:
          type: string
        refresh_token:
          type: string
        token_type:
          type: string
          example: Bearer
        expires_in:
          type: integer
          description: Token lifetime in seconds (typically 1
          209: null
          600 = 14 days).: null
        scope:
          type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT