dataz.md

Discord API reference

Get DM messages

Crawlable reference for GET /dms/{channel_id}/messages through a dataz.md tenant gateway.

Purpose

GET/dms/{channel_id}/messages

Fetch messages from a DM channel.

  • channel_id: DM channel ID
  • limit: Number of messages to retrieve (1-100)
  • after: Only return messages after this ISO 8601 timestamp
  • before: Only return messages before this ISO 8601 timestamp
Category: Messages Auth: Authorization bearer or X-API-Key Scope: read-only

Authentication

Send a tenant API key as Authorization: Bearer <key> or X-API-Key: <key>. Keep keys server-side and use the account slug for the connected Discord account.

Read the gateway authentication tutorial.

Parameters

NameInRequiredType / constraints
channel_id path required integer
limit query optional integer · default 50 · range 1–100
after query optional string · date-time · default null
before query optional string · date-time · default null

Request example

Replace the tenant, account, and resource placeholders before running this read-only request.

curl --fail-with-body \
  -H "Authorization: Bearer ${DATAZ_API_KEY}" \
  "https://dataz.md/gateway/v1/{tenant_slug}/accounts/{account_slug}/dms/{channel_id}/messages?limit=100"

Response schema

Documented responses
200Response model: List[DMMessage]List[DMMessage]

Response example

Representative JSON shape. The live response can include additional documented fields.

[
  {
    "id": "123456789012345678",
    "content": "Example direct message",
    "timestamp": "2026-01-01T00:00:00Z",
    "author_id": "123456789012345678",
    "author_name": "example_user",
    "author_display_name": "Example User"
  }
]

Errors

Common responses
401Missing or invalid tenant API key.authentication
403The tenant, account, or connected provider cannot access the requested resource.authorization
404The route or requested provider resource was not found.not found
422A path or query parameter is invalid.validation
429Rate limited; wait for the Retry-After interval before retrying.rate limit

Limits and pagination

  • Use limit to bound each response; it defaults to 50 and accepts 1–100.
  • Use before to continue toward older records or after for incremental reads; store source timestamps as cursors.
  • Provider or demo limits can return HTTP 429. Wait for the Retry-After interval before retrying.

Related tutorials

Read-only notes

This reference page documents a public GET endpoint. Setup/token, AI, dev, internal, and mutating routes are excluded from static reference generation.