Skip to content

List Sender IDs

This endpoint allows you to retrieve a list of sender IDs associated with your account. You can filter, sort, and paginate the results using various query parameters.

Endpoint

GET /sender-ids

Authentication

All requests must include your API token in the header:

X-Huduma: Bearer {your_api_token}

Query Parameters

ParameterTypeRequiredDescription
recordsintegerNoNumber of records to return per page. Default is 10.
pageintegerNoPage number for pagination. Default is 1.
sortarray[string]NoFields to sort by (e.g., ["name:asc", "createdAt:desc"]).
userIdintegerNoFilter sender IDs by specific user ID.
querystringNoSearch term to filter sender IDs by name or other attributes.

Response

Success Response (200 OK)

A successful request returns a JSON response with the following structure:

json
{
  "status": "200 OK",
  "code": 0,
  "message": "Sender IDs retrieved successfully",
  "timestamp": "2025-04-10T07:17:56.907Z",
  "reqId": "req-123456789",
  "path": "/sender-ids",
  "data": {
    "content": [
      {
        "id": 123,
        "name": "MYCOMPANY",
        "purpose": "TRANSACTIONAL",
        "access": "PRIVATE",
        "sample": "Your verification code is 123456. Valid for 10 minutes.",
        "status": "APPROVED",
        "createdAt": "2025-03-15T14:30:22Z",
        "updatedAt": "2025-03-15T14:32:10Z"
      },
      {
        "id": 124,
        "name": "ALERTS",
        "purpose": "NOTIFICATION",
        "access": "PRIVATE",
        "sample": "Payment of $50.00 received. Thank you for your business.",
        "status": "PENDING",
        "createdAt": "2025-04-05T09:22:15Z",
        "updatedAt": "2025-04-05T09:22:15Z"
      }
    ],
    "totalElements": 45,
    "totalPages": 5,
    "size": 10,
    "number": 1,
    "sort": {
      "sorted": true,
      "unsorted": false,
      "empty": false
    },
    "first": true,
    "last": false,
    "numberOfElements": 10,
    "empty": false
  }
}

Error Responses

Status CodeDescription
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API token
402Payment Required - Account has payment issues
403Forbidden - Insufficient permissions
404Not Found - Resource not found
405Method Not Allowed - Invalid HTTP method
422Unprocessable Entity - Invalid input parameters
500Internal Server Error - Server-side error

Error Response Format

json
{
  "status": "400 BAD REQUEST",
  "code": 4000,
  "message": "Invalid request parameters",
  "timestamp": "2025-04-10T07:17:56.909Z",
  "reqId": "req-123456789",
  "path": "/sender-ids",
  "errors": [
    {
      "field": "records",
      "message": "Must be a positive integer",
      "rejectedValue": -5,
      "rejectingValues": {}
    }
  ]
}

Code Examples

TypeScript Example

typescript
import axios from 'axios';

interface SenderIdListParams {
  records?: number;
  page?: number;
  sort?: string[];
  userId?: number;
  query?: string;
}

interface SenderIdResponse {
  status: string;
  code: number;
  message: string;
  timestamp: string;
  reqId: string;
  path: string;
  data: {
    content: Array<{
      id: number;
      name: string;
      purpose: 'TRANSACTIONAL' | 'PROMOTIONAL' | 'NOTIFICATION';
      access: 'PRIVATE' | 'PUBLIC';
      sample: string;
      status: 'PENDING' | 'APPROVED' | 'REJECTED';
      createdAt: string;
      updatedAt: string;
    }>;
    totalElements: number;
    totalPages: number;
    size: number;
    number: number;
    sort: {
      sorted: boolean;
      unsorted: boolean;
      empty: boolean;
    };
    first: boolean;
    last: boolean;
    numberOfElements: number;
    empty: boolean;
  }
}

async function listSenderIds(
  apiToken: string,
  params: SenderIdListParams = {}
): Promise<SenderIdResponse> {
  try {
    const response = await axios.get(
      'https://sms-api.huduma.cloud/api/v3/sender-ids',
      {
        params,
        headers: {
          'X-Huduma': `Bearer ${apiToken}`,
          'Accept': 'application/json'
        }
      }
    );
    
    return response.data;
  } catch (error) {
    console.error('Error listing sender IDs:', error);
    throw error;
  }
}

// Example usage
const apiToken = 'your_api_token_here';

// List sender IDs with pagination and sorting
listSenderIds(apiToken, {
  records: 20,
  page: 1,
  sort: ['name:asc'],
  query: 'company'
})
  .then(response => {
    console.log(`Found ${response.data.totalElements} sender IDs`);
    console.log('First page of results:', response.data.content);
  })
  .catch(error => {
    console.error('Failed to list sender IDs:', error.response?.data || error.message);
  });

JavaScript Example

javascript
const axios = require('axios');

async function listSenderIds(apiToken, params = {}) {
  try {
    const response = await axios.get(
      'https://sms-api.huduma.cloud/api/v3/sender-ids',
      {
        params,
        headers: {
          'X-Huduma': `Bearer ${apiToken}`,
          'Accept': 'application/json'
        }
      }
    );
    
    return response.data;
  } catch (error) {
    console.error('Error listing sender IDs:', error);
    throw error;
  }
}

// Example usage
const apiToken = 'your_api_token_here';

// List all sender IDs
listSenderIds(apiToken)
  .then(response => {
    console.log('Sender IDs retrieved successfully:', response);
  })
  .catch(error => {
    console.error('Failed to list sender IDs:', error.response?.data || error.message);
  });

Additional Notes

  • The maximum number of records per page is 100.
  • Sorting is available on the following fields: name, purpose, access, status, createdAt, updatedAt.
  • The query parameter searches across sender ID names and descriptions.
  • You must have the appropriate permissions to view sender IDs.