Fetch a sent message by id
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.kirimdev.com/v1/106540352242922/messages/msg_01HXYZABCDEFGHJKMNPQRSTVWX"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.kirimdev.com/v1/106540352242922/messages/msg_01HXYZABCDEFGHJKMNPQRSTVWX';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}use reqwest;
#[tokio::main]pub async fn main() { let url = "https://api.kirimdev.com/v1/106540352242922/messages/msg_01HXYZABCDEFGHJKMNPQRSTVWX";
let mut headers = reqwest::header::HeaderMap::new(); headers.insert("Authorization", "Bearer <token>".parse().unwrap());
let client = reqwest::Client::new(); let response = client.get(url) .headers(headers) .send() .await;
let results = response.unwrap() .json::<serde_json::Value>() .await .unwrap();
dbg!(results);}curl --request GET \ --url https://api.kirimdev.com/v1/106540352242922/messages/msg_01HXYZABCDEFGHJKMNPQRSTVWX \ --header 'Authorization: Bearer <token>'Retrieve a single message by msg_* id. Supports short-lived server-side caching for high-frequency status polling, and ETag/If-None-Match for unchanged responses.
Authorizations
Section titled βAuthorizations βParameters
Section titled β Parameters βPath Parameters
Section titled βPath Parameters βMeta WhatsApp Business phone_number_id of the connected account that should send / own this resource. Discoverable via GET /v1/accounts (returned as phone_number_id on each row).
Example
106540352242922Meta WhatsApp Business phone_number_id of the connected account that should send / own this resource. Discoverable via GET /v1/accounts (returned as phone_number_id on each row).
Public Kirimdev message ID returned by send, list, and webhook operations.
Example
msg_01HXYZABCDEFGHJKMNPQRSTVWXPublic Kirimdev message ID returned by send, list, and webhook operations.
Responses
Section titled β Responses βMessage resource
object
object
Recipientβs phone number in E.164 (with leading +). NULL when the message targeted a Business-Scoped User ID (BSUID) recipient and the contact has no known phone number. See docs/meta-docs/bsuid.md.
Recipient contactβs Business-Scoped User ID. Present when the contact has been enriched with a BSUID from a Meta webhook (or from a BSUID-first send). NULL for phone-only contacts.
Parent BSUID for managed businesses with linked business portfolios. NULL for regular accounts.
Recipient contactβs WhatsApp username (case-insensitive comparison; case-preserving in storage). NULL when the contact has not adopted the WhatsApp username feature.
ISO-8601 timestamp when the recipient first played an outbound voice note. Populated from Metaβs played status webhook; omitted on non-voice messages and until playback occurs.
object
Target Meta WhatsApp message id (wamid).
Reaction emoji. An empty string removes the existing business reaction.
object
Stable Kirim error code. Known values include outside_24h_window, marketing_opted_out, marketing_blocked_by_user, recipient_unavailable, unsupported_message_type, account_restricted, account_locked, consent_required, customer_suspended, permission_revoked, auth_expired, app_rate_limited, account_rate_limited, template_not_found, template_paused, template_policy_violation, flow_blocked, media_upload_failed, media_download_failed, undeliverable, policy_violation, subscription_inactive, upstream_error.
Unique request identifier to include when contacting support.
Example
{ "data": { "id": "msg_01HXYZABCDEFGHJKMNPQRSTVWX", "object": "message", "to": "+628123456789", "bsuid": "US.13491208655302741918", "parent_bsuid": "US.ENT.11815799212886844830", "username": "pablomorales", "status": "queued", "reaction": { "message_id": "wamid.HBgN...", "emoji": "π" } }, "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX"}Headers
Section titled βHeaders βWeak entity tag derived from status and error fields. Send as If-None-Match on the next poll β unchanged messages return 304.
Not modified β request carried a matching If-None-Match ETag.
Headers
Section titled βHeaders βSame weak entity tag as the cached representation.
Validation failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
A field value is invalid.
{ "error": { "type": "invalid_request_error", "code": "invalid_field_value", "message": "A field value is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Authentication failure
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
The provided API key is invalid.
{ "error": { "type": "authentication_error", "code": "invalid_api_key", "message": "The provided API key is invalid.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Resource not found
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Resource not found.
{ "error": { "type": "not_found", "code": "resource_not_found", "message": "Resource not found.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Semantic failure (e.g. idempotency key reuse, pre-send compliance guard, media not found)
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
The WhatsApp number is not verified for this organization.
{ "error": { "type": "invalid_request_error", "code": "whatsapp_number_not_verified", "message": "The WhatsApp number is not verified for this organization.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Rate limit exceeded
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
Rate limit exceeded.
{ "error": { "type": "rate_limit_error", "code": "rate_limit_exceeded", "message": "Rate limit exceeded.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}Internal server error
object
object
Human-readable explanation of the error.
Request field associated with the error, when applicable.
Unique request identifier to include when contacting support.
Examples
An unexpected error occurred.
{ "error": { "type": "api_error", "code": "internal_error", "message": "An unexpected error occurred.", "request_id": "req_01HXYZABCDEFGHJKMNPQRSTVWX" }}