MyTPEMyTPE Pay
Pay Links

Check Pay Link Slug Availability

Check if a slug is available for a new payment link.

POST https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug

Checks if a given slug is available for use in a new payment link.

Authentication: API Key (X-API-KEY + X-API-SECRET headers)

This API requires authentication via X-API-KEY and X-API-SECRET headers.

Body Parameters

Prop

Type

Example Request

check-slug.js
const checkSlug = async () => {
  const response = await fetch("https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug", {
    method: "POST",
    headers: {
      "X-API-KEY": "your_api_key",
      "X-API-SECRET": "your_api_secret",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      slug: "demo-product",
    }),
  });

  const data = await response.json();
  console.log(data);
};

checkSlug();
check-slug.ts
interface CheckSlugResponse {
  success: boolean;
  message: string;
  data: {
    slug: string;
    available: boolean;
  };
}

const checkSlug = async (): Promise<void> => {
  const response = await fetch("https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug", {
    method: "POST",
    headers: {
      "X-API-KEY": "your_api_key",
      "X-API-SECRET": "your_api_secret",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      slug: "demo-product",
    }),
  });

  const data: CheckSlugResponse = await response.json();
  console.log(data);
};

checkSlug();
check_slug.py
import requests

url = "https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug"

headers = {
    "X-API-KEY": "your_api_key",
    "X-API-SECRET": "your_api_secret",
    "Content-Type": "application/json",
}

payload = {
    "slug": "demo-product",
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
CheckSlugController.php
use Illuminate\Support\Facades\Http;

$response = Http::withHeaders([
    'X-API-KEY' => 'your_api_key',
    'X-API-SECRET' => 'your_api_secret',
])->post('https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug', [
    'slug' => 'demo-product',
]);

$data = $response->json();
check-slug.php
<?php

$curl = curl_init();

curl_setopt_array($curl, [
    CURLOPT_URL => 'https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => json_encode([
        'slug' => 'demo-product',
    ]),
    CURLOPT_HTTPHEADER => [
        'X-API-KEY: your_api_key',
        'X-API-SECRET: your_api_secret',
        'Content-Type: application/json',
    ],
]);

$response = curl_exec($curl);

curl_close($curl);
echo $response;
check-slug.cjs
const axios = require("axios");

axios
  .post(
    "https://dev.mytpe.app/api/v2/mytpe-pay/links/check-slug",
    {
      slug: "demo-product",
    },
    {
      headers: {
        "X-API-KEY": "your_api_key",
        "X-API-SECRET": "your_api_secret",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    console.log(response.data);
  })
  .catch((error) => {
    console.error(error);
  });

Example Success Response (200 OK)

200 OK

{
    "success": true,
    "message": "Slug availability checked successfully",
    "data": {
        "slug": "demo-product",
        "available": true
    }
}

200 Slug Not Available

{
    "success": true,
    "message": "Slug availability checked successfully",
    "data": {
        "slug": "existing-product",
        "available": false
    }
}

Error Responses

401 Unauthorized

{
    "message": "Unauthenticated."
}

422 Unprocessable Entity

{
    "message": "The given data was invalid.",
    "errors": {
        "slug": [
            "The slug field is required."
        ]
    }
}

On this page