From 9ea7230201f21d3a0e0a2503fde5b6a4195484d2 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 29 May 2025 13:37:36 -0400 Subject: [PATCH 1/3] first pass --- .../catalog/libraries/server/http-api/index.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/connections/sources/catalog/libraries/server/http-api/index.md b/src/connections/sources/catalog/libraries/server/http-api/index.md index adf8b02a0b..6c487d12ff 100644 --- a/src/connections/sources/catalog/libraries/server/http-api/index.md +++ b/src/connections/sources/catalog/libraries/server/http-api/index.md @@ -3,9 +3,9 @@ title: HTTP API Source redirect_from: '/connections/sources/catalog/libraries/server/http/' id: iUM16Md8P2 --- -The Segment HTTP Tracking API lets you record analytics data from any website or application. The requests hit Segment servers, Segment routes your data to any destination you want. +The Segment HTTP Tracking API lets you record analytics data from any website or application. The requests hit Segment servers then Segment routes your data to any destination you want. -Segment has native [sources](/docs/connections/sources/) for most use cases (like JavaScript and iOS) that are all built for high-performance and are open-source. But sometimes you may want to send to the HTTP API directly—that's what this reference is for. +Segment has native [sources](/docs/connections/sources/) for most use cases (like JavaScript and iOS) that are open-source and built for high-performance. But for unsupported use cases, [blocked event forwarding](/docs/protocols/enforce/forward-blocked-events/) or when you're using [Segment-Managed Custom Domain](/docs/connections/sources/custom-domain/), you may want to send data to Segment's HTTP API directly. > info "HTTP API sources in EU workspaces should use the `events.eu1.segmentapis.com` endpoint" > If you are located in the EU and use the `https://api.segment.io/v1/` endpoint, you might not see any errors, but your events will not appear in the Segment app. For more information about regional support, see the [Source Regional support](/docs/guides/regional-segment/#source-regional-support) documentation. @@ -16,6 +16,8 @@ Segment has native [sources](/docs/connections/sources/) for most use cases (lik Choose between [writeKey authentication](#writeKey-authentication), [basic authentication](#basic-authentication) and [OAuth](#oauth) to authenticate requests. +When authenticating with the HTTP API, don't hard code the IP addresses used to invoke the API. You should refresh this IP address at least once a day or when you experience [5xx errors](#experiencing-5xx-errors). + #### writeKey authentication Authenticate to the Tracking API by sending your project's **Write Key** along with a request. The authentication writeKey should be sent as part of the body of the request. This will be encrypted over https. @@ -284,7 +286,7 @@ Find more details about Group including the **Group payload** in the [Segment Sp ## Alias -`Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of Segment's destinations. +Alias is how you associate one identity with another. This is an advanced method, but it is required to manage user identities successfully in *some* of Segment's destinations. In [Mixpanel](/docs/connections/destinations/catalog/mixpanel/#alias) it's used to associate an anonymous user with an identified user once they sign up. For [Kissmetrics](/docs/connections/destinations/catalog/kissmetrics/#alias), if your user switches IDs, you can use 'alias' to rename the 'userId'. @@ -481,4 +483,8 @@ Segment welcomes feedback on API responses and error messages. [Reach out to sup 1. Double check that you've set up the library correctly. -2. Make sure that you're calling a Segment API method after the library is successfully installed—[Identify](#identify), [Track](#track), and so on. +2. Make sure that you're calling a Segment API method after the library is successfully installed: [Identify](#identify), [Track](#track), and so on. + +### Experiencing `5xx` errors + +If you're experiencing `5xx` errors, refresh the IP address you use to invoke Segment's HTTP API. From fa885015b6476fc794f104c04ee965c080aa3735 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Thu, 29 May 2025 13:39:22 -0400 Subject: [PATCH 2/3] [netlify-build] --- .../sources/catalog/libraries/server/http-api/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/connections/sources/catalog/libraries/server/http-api/index.md b/src/connections/sources/catalog/libraries/server/http-api/index.md index 6c487d12ff..47d417a464 100644 --- a/src/connections/sources/catalog/libraries/server/http-api/index.md +++ b/src/connections/sources/catalog/libraries/server/http-api/index.md @@ -487,4 +487,4 @@ Segment welcomes feedback on API responses and error messages. [Reach out to sup ### Experiencing `5xx` errors -If you're experiencing `5xx` errors, refresh the IP address you use to invoke Segment's HTTP API. +If you're experiencing `5xx` errors, refresh the IP address you use to invoke Segment's HTTP API. \ No newline at end of file From b6d1e0b0d1421a8e7dacc3005c3e71ee9d45c720 Mon Sep 17 00:00:00 2001 From: forstisabella <92472883+forstisabella@users.noreply.github.com> Date: Mon, 2 Jun 2025 12:27:16 -0400 Subject: [PATCH 3/3] [netlify-build] --- .../sources/catalog/libraries/server/http-api/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/connections/sources/catalog/libraries/server/http-api/index.md b/src/connections/sources/catalog/libraries/server/http-api/index.md index 47d417a464..39cacc153e 100644 --- a/src/connections/sources/catalog/libraries/server/http-api/index.md +++ b/src/connections/sources/catalog/libraries/server/http-api/index.md @@ -3,7 +3,7 @@ title: HTTP API Source redirect_from: '/connections/sources/catalog/libraries/server/http/' id: iUM16Md8P2 --- -The Segment HTTP Tracking API lets you record analytics data from any website or application. The requests hit Segment servers then Segment routes your data to any destination you want. +The Segment HTTP Tracking API lets you record analytics data from any website or application. The requests hit Segment servers then Segment routes your data to your destination. Segment has native [sources](/docs/connections/sources/) for most use cases (like JavaScript and iOS) that are open-source and built for high-performance. But for unsupported use cases, [blocked event forwarding](/docs/protocols/enforce/forward-blocked-events/) or when you're using [Segment-Managed Custom Domain](/docs/connections/sources/custom-domain/), you may want to send data to Segment's HTTP API directly. @@ -12,12 +12,13 @@ Segment has native [sources](/docs/connections/sources/) for most use cases (lik ## Headers +> warning "HTTP API public IP addresses are subject to change" +> The public IP addresses of the HTTP API service are not static and may change without notice. If you are caching the resolved IP address or directly using the IP for submission, you must implement a DNS refresh at least once every 24 hours. Failing to do so may result in submission failures if the underlying IPs change. To ensure long-term reliability, Segment **strongly recommends** using the DNS hostname rather than hardcoding IPs. + ### Authentication Choose between [writeKey authentication](#writeKey-authentication), [basic authentication](#basic-authentication) and [OAuth](#oauth) to authenticate requests. -When authenticating with the HTTP API, don't hard code the IP addresses used to invoke the API. You should refresh this IP address at least once a day or when you experience [5xx errors](#experiencing-5xx-errors). - #### writeKey authentication Authenticate to the Tracking API by sending your project's **Write Key** along with a request. The authentication writeKey should be sent as part of the body of the request. This will be encrypted over https.