SMSPort Docs

Public API docs

Public GraphQL overview

SMSPort exposes GraphQL as the official client-facing API. Use it for authentication, sending SMS messages, and reading device and message status.

What is public?

The public documentation shows only the client path: OAuth, GraphQL, and integration examples. Device channels and private REST APIs remain internal.

Typical flow

  1. Create an OAuth integration in the console.
  2. Exchange client credentials for an access token.
  3. List workspaces and copy the id of the workspace you want to use.
  4. Query workspace(id: $workspaceId).devices and copy the phone’s id.
  5. Send the message_create mutation with input.deviceId, your own recipient number, and text.
  6. Check errors and read message status from workspace(id: $workspaceId).messages.

For this flow, an integration token needs smspipe/devices.read, smspipe/messages.write, and smspipe/messages.read. The mutation sends real SMS messages and consumes credits.

Request example

curl -X POST "https://api.smsport.app/graphql" \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{
  "query": "query Workspaces($after: String) {\n  workspaces(first: 20, after: $after) {\n    nodes { id displayName status }\n    pageInfo { hasNextPage endCursor }\n  }\n}",
  "variables": {}
}'

Next steps