# Moesif API Analytics Source

## Source Info

* The Moesif API Analytics Source is an **Event Cloud** source. This means that it sends data as events, which are behaviors or occurrences tied to a user and a point in time. Data from these sources can be loaded into your Segment warehouses, and **also** sent to Segment streaming destinations. [Learn more about cloud sources.](/docs/segment/connections/sources#cloud-app-sources)
* This integration is **partner owned** . Please reach out to the partner's support for any issues.

> \[!WARNING]
>
> This Source is only supported in workspaces configured to process data in the US region. Workspaces configured with data processing regions outside of the US cannot connect to this source. For more information, see [Regional Segment](/docs/segment/guides/regional-segment/).

[Moesif API Analytics](https://www.moesif.com/?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) helps you drive API adoption, usage, and retention. With Moesif, track your customer journey from initial ad click to first API call while identifying at-risk customers struggling to integrate with your APIs.

The [Moesif SDKs and API gateway plugins](https://www.moesif.com/implementation?utm_source=segmentio\&utm_medium=docs\&utm_campaign=partners) are open-source and support REST, GraphQL, and other APIs.

This source is maintained by Moesif. For any issues with the source, [contact the Moesif team](mailto:support@moesif.com).

## Getting started

1. From your Segment UI's Sources page click on "Add Source".
2. Select Moesif API Analytics within the Source Catalog and confirm adding the source.
3. Give the Source a nickname and follow the set up flow to "Add Source".
4. Copy the Write Key from the added source. You'll need this later in Moesif.
5. Log into your [Moesif account](https://www.moesif.com/wrap/), go to the *Settings* menu and click *Extensions*.
6. Select the Segment Extension within the extensions gallery and add your write key under *Add Partner Key*.

## Identify message

Moesif sends an `identify()` message to Segment which consists of the `userId` and the user traits.

| Field(s)  | Type   | Description                                                                                      |
| --------- | ------ | ------------------------------------------------------------------------------------------------ |
| `userId`  | String | Unique identifier for the user in Moesif                                                         |
| `context` | Object | User [context](/docs/segment/connections/spec/common/#context) like IP address and location.     |
| `traits`  | Object | Custom [traits](/docs/segment/connections/spec/identify/#traits) of the user (See Traits Object) |

## Traits object

The integration maps user metadata in Moesif to the Segment trait called `metadata`.
If the user is linked to a company in Moesif, the integration maps the associated company to a Segment object called `company`.

| Field                  | Type   | Description                                        |
| ---------------------- | ------ | -------------------------------------------------- |
| `id`                   | String | User Id (Same as `userId` in parent object)        |
| `createdAt`            | Date   | Time when user was created in Moesif               |
| `modifiedTime`         | Date   | Time when user was last modified                   |
| `firstSeenTime`        | Date   | Time user was first seen on the API                |
| `lastSeenTime`         | Date   | Time user was last seen on the API                 |
| `name`                 | String | User's Full Name                                   |
| `email`                | String | User's email                                       |
| `username`             | String | Username such as a Twitter handle                  |
| `company`              | Object | Company in Moesif (See Company Object)             |
| `campaign`             | Object | Marketing campaign attribution like UTM parameters |
| `clearbit`             | Object | Clearbit lookup results for the user               |
| `company`              | Object | Associated company in Moesif (See Company Object)  |
| `last24HourAggResults` | Object | Rollup of user's API activity from last 24 hours   |
| `metadata`             | Object | Your user metadata                                 |
| `userAgent`            | Object | Last user agent details                            |

## Company object

Contains info for the associated company. Any company metadata set in Moesif is mapped to the Segment trait `company.metadata`

| Field           | Type    | Description                                 |
| --------------- | ------- | ------------------------------------------- |
| `id`            | String  | Unique identifier for the company in Moesif |
| `created`       | Date    | Time when company was created in Moesif     |
| `modifiedTime`  | Date    | Time when company was last modified         |
| `firstSeenTime` | Date    | Time user was first seen on the API         |
| `lastSeenTime`  | Date    | Time user was last seen on the API          |
| `ipAddress`     | String  | Company's last IP address                   |
| `companyDomain` | String  | Company's website domain                    |
| `ttfhw_s`       | Integer | Time to First Hello World in seconds        |
| `metadata`      | Object  | Your company metadata                       |

## Adding destinations

Now that your Source is set up, you can connect it with destinations.

Log into your downstream tools and check to see that your events are populating and they contains all the properties you expect. If all your events and properties are not showing up, refer to the Destination docs for troubleshooting.

If you experience any issues with how the events arrive in Segment, [contact the Moesif team](mailto:support@moesif.com).
