Skip to content

feat(partners)add-enablement-docs #14095

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 3 commits into
base: master
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 215 additions & 0 deletions docs/product/partnership-platform/account-provisioning-api.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
Sentry platform---
title: "Account Provisioning API"
description: "Learn how to automatically provision Sentry organizations for your customers using our provisioning API."
sidebar_order: 1
---

# Account Provisioning API

The Sentry Provisioning API allows partner platforms to automatically create Sentry organizations for their customers. This enables seamless onboarding of your users to Sentry's error monitoring and performance insights.

## Overview

When you call the Sentry provisioning API on behalf of your customer for the first time, the customer receives:
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The customer would need all but integration token is basically only useful for the partner.


- **A Sentry Organization** with the same name as their organization on your platform
- **A Default Team** for collaboration within the organization
- **Organization Ownership** assigned to the provided email address
- **Subscription Plan** based on your partnership agreement
- **Pre-configured Projects** (optional) that you specify
- **Integration Token** (optional) for managing the organization programmatically

## API Endpoint

```
POST https://sentry.io/remote/channel-provision/account/
```

## Authentication

The API requires a custom `X-Request-Signature` header with a SHA256 HMAC signature. The signature is built using your `API_SECRET_KEY` and the request body.

### Signature Generation

```python
import hmac
import hashlib
import json

def generate_signature(data, secret_key):
secret_key_bytes = secret_key.encode("utf-8")
json_data = json.dumps(data)
data_bytes = json_data.encode("utf-8")
signature = hmac.new(
key=secret_key_bytes,
msg=data_bytes,
digestmod=hashlib.sha256
).hexdigest()
return signature
```

## Request Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `channel` | string | Yes | Your partner name (case insensitive) |
| `email` | string | Yes | Customer's email address (becomes org owner) |
| `organizationName` | string | Yes | Customer's organization name (max 50 chars) |
| `organizationID` | string | Yes | Unique ID for customer's organization on your platform |
| `hasAgreedTerms` | boolean | Yes | Customer's agreement to Sentry terms |
| `timestamp` | integer | Yes | Current timestamp for request expiration |
| `url` | string | Yes | Must be `https://sentry.io/remote/channel-provision/account/` |
| `projects` | array | No | List of projects to create |
| `region` | string | No | Data residency (`us` or `de`, default: `us`) |
| `isTest` | boolean | No | Set to `true` for testing (default: `false`) |

### Project Object Structure

```json
{
"name": "project-name",
"platform": "java"
}
```

### Supported Platforms

The `platform` field supports all [Sentry platform identifiers](/platforms/), including:
- `javascript`, `python`, `java`, `csharp`, `php`, `ruby`, `go`, `rust`, `swift`, `kotlin`, `dart`, and more

## Example Request

```python
import requests
import json
import time

URL = "https://sentry.io/remote/channel-provision/account/"
API_SECRET_KEY = "your-partner-specific-secret-key"

DATA = {
"channel": "Your Platform Name",
"organizationName": "Customer Corp",
"organizationID": "unique-customer-id",
"email": "[email protected]",
"projects": [
{"name": "web-app", "platform": "javascript"},
{"name": "api-service", "platform": "python"}
],
"hasAgreedTerms": True,
"timestamp": int(time.time()),
"url": URL,
"isTest": False
}

# Generate signature
signature = generate_signature(DATA, API_SECRET_KEY)

# Make request
response = requests.post(
URL,
data=json.dumps(DATA),
headers={"X-Request-Signature": signature}
)

print(response.json())
```

## Response

### Success (200)

```json
{
"email": "[email protected]",
"organization": {
"id": "123",
"slug": "customer-corp",
"name": "Customer Corp"
},
"projects": [
{
"dsn": "https://[email protected]/123",
"project": {
"id": "456",
"slug": "web-app",
"name": "web-app",
"platform": "javascript"
}
}
],
"integration_api_token": "your-integration-token"
}
```

### Error Responses

- **400 Bad Request**: Invalid parameters (check response body for details)
- **401 Unauthorized**: Invalid signature (check your API_SECRET_KEY)
- **500 Server Error**: Internal server error (check response body for details)

## Additional Operations

### Adding Projects

Call the API again with new projects to add them to an existing organization:

```python
DATA = {
# ... existing parameters ...
"projects": [
{"name": "new-service", "platform": "go"}
]
}
```

### Adding Managers

Add additional users as managers to the organization:

```python
DATA = {
# ... existing parameters ...
"email": "[email protected]" # New manager email
}
```

## Customer Experience

### Welcome Email

When you provision an organization, the customer receives:
- A welcome email with organization details
- Instructions for managing their Sentry organization
- Information about your partnership integration
- Support contact information

### Partner-Specific Features

Based on your partnership agreement, you can enable:

- **Partner Presence**: Show your platform as an organization member
- **Persistent Plan**: Allow customers to upgrade plans independently
- **Quota Visibility**: Control visibility of usage quotas
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Billing is always the biggest question, I think high level at this point we can add we have the option for them to sponsor their customers.


## Integration Token

The response includes an `integration_api_token` that allows you to:
- Create and manage projects
- Manage organization members
- Access Sentry APIs on behalf of the customer

Token permissions are defined in your partnership agreement.

## Best Practices

1. **Store organization mappings**: Keep track of the relationship between your customer IDs and Sentry organization IDs
2. **Handle errors gracefully**: Implement proper error handling for failed provisioning
3. **Use test mode**: Set `isTest: true` during development and testing
4. **Respect rate limits**: Implement appropriate delays between requests
5. **Secure your secret key**: Store your API_SECRET_KEY securely and never expose it in client-side code

## Support
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we should take a more marketing approach here. Like get people excited to reach out or just leave it as a reference.


For questions about the provisioning API or partnership integration, contact:
**Email:** [email protected]
58 changes: 58 additions & 0 deletions docs/product/partnership-platform/index.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: "Partnership Platform"
description: "Learn how to integrate Sentry into your platform and provide error monitoring and performance insights to your customers."
sidebar_order: 35
---

# Partnership Platform

Sentry offers powerful partnership capabilities that allow you to integrate error monitoring and performance insights directly into your platform. Whether you're a developer platform, hosting provider, or SaaS application, you can leverage Sentry's monitoring capabilities to enhance your customer experience.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we add some who are doing this already?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

specific partner examples? That get's into a topic of we just have to check with legal which logos we are allowed to mention in such a doc

we could address a lot of content topics, and merge, then figure that out later, for a smaller addition to the doc then


## What's Available

Sentry provides two main integration paths for partners:

### 1. [Account Provisioning API](/product/partnership-platform/account-provisioning-api/)

Automatically create Sentry organizations for your customers with our provisioning API. This allows you to:

- **Seamlessly onboard customers** to Sentry monitoring
- **Create pre-configured organizations** with projects and teams
- **Manage customer access** through integration tokens
- **Support multiple regions** (US and EU data residency)

### 2. [OAuth Integration](/product/partnership-platform/oauth-integration/)

Enable existing Sentry customers to connect their accounts to your platform through OAuth:

- **Account linking** between your platform and Sentry organizations
- **Permission-based access** with configurable scopes
- **User-controlled permissions** with easy revocation
- **Seamless authentication flow** for your users

## Benefits for Your Platform

Integrating with Sentry's partnership platform provides several advantages:

- **Enhanced developer experience** with built-in error monitoring
- **Reduced support burden** by helping customers debug issues faster
- **Competitive differentiation** with enterprise-grade monitoring
- **Revenue opportunities** through monitoring capabilities
- **Improved customer retention** with better application reliability

## Getting Started

If you're interested in integrating Sentry into your platform, our partnership team can help you get started. We'll work with you to:

- Determine the best integration approach for your use case
- Set up the necessary API credentials and configurations
- Provide technical guidance and implementation support
- Establish the partnership agreement and terms

## Contact Us

Ready to explore partnership opportunities with Sentry? Reach out to our partnership platform team:

**Email:** [email protected]

Our team will guide you through the integration process and help you leverage Sentry's monitoring capabilities to enhance your platform.
Loading