CoSell docs Open CoSell

API reference

Everything the console does goes through the CoSell HTTP API, and your own tools can call it too.

Base URL and authentication

  • Base URL: https://api.cosell.habilelabs.io/api/v1
  • Authentication: Authorization: Bearer <ID token> from a CoSell user (Amazon Cognito). Calls run with that user's role in the workspace.
  • Bodies are JSON. Errors come back as { "error": "…", "details": [...] } with a meaningful status code:
    • 400: the request was malformed
    • 403: not allowed, or AWS refused the action
    • 404: not found
    • 409: a business rule was broken
    • 422: validation failed
  • Lists are paged with limit and cursor. The response carries the next cursor when there is more.

All workspace paths below start with /tenants/{tenantId}.

Workspace

Method and path Purpose
GET /me The caller and their workspaces
GET /tenants/{tenantId} Workspace settings and plan
PATCH /tenants/{tenantId}/settings Update preferences ({ "name", "settings": { … } })
GET /tenants/{tenantId}/dashboard Counts by status, invitations, errors, Zoho budget
GET, POST /tenants/{tenantId}/members List or invite members ({ "email", "roles" })
DELETE /tenants/{tenantId}/members/{userId} Remove a member

Connections

Method and path Purpose
GET /tenants/{tenantId}/connections/zoho Zoho connection state, redirect and webhook URLs
POST /tenants/{tenantId}/connections/zoho/authorize Start the Zoho consent flow
POST /tenants/{tenantId}/connections/zoho/activate Re-run activation (fields, channel, currency)
GET /tenants/{tenantId}/connections/zoho/fields Deal fields usable in filters and routing rules
GET /tenants/{tenantId}/onboarding-template The CloudFormation template for your AWS account
GET, POST /tenants/{tenantId}/aws-links List or link AWS accounts
POST /tenants/{tenantId}/aws-links/{linkId}/verify Check the link again
POST /tenants/{tenantId}/aws-links/{linkId}/default Make the link the default

Mapping

Method and path Purpose
GET, PUT /tenants/{tenantId}/mapping Read or save the mapping (a new version per save)
GET /tenants/{tenantId}/mapping/check Is a deal at the gate ready to submit, and why not
POST /tenants/{tenantId}/mapping/deal-filter/preview Try a deal filter on recent deals

Opportunities and referrals

Method and path Purpose
GET /tenants/{tenantId}/opportunities Tracked deals and their ACE opportunities
GET /tenants/{tenantId}/opportunities/{crmRecordId} One deal with its sync history
POST /tenants/{tenantId}/opportunities/{crmRecordId}/actions { "action": "sync" | "submit" | "refresh" | "retry" }
GET, POST /tenants/{tenantId}/opportunities/{crmRecordId}/assistant Ask Partner Central ({ "question" }) and read the answers
GET /tenants/{tenantId}/aws-import/preview?scope=live Opportunities that can be imported into Zoho
POST /tenants/{tenantId}/aws-import Import them ({ "opportunityIds", "awsLinkId" })
GET /tenants/{tenantId}/invitations?status=pending AWS referrals
POST /tenants/{tenantId}/invitations/{invitationId}/decision { "decision": "accept" | "reject", "reason", "awsLinkId" }
POST /tenants/{tenantId}/invitations/{invitationId}/import Finish the import of an accepted referral now
POST /tenants/{tenantId}/invitations/refresh Check AWS for invitations CoSell missed

Errors, notifications and audit

Method and path Purpose
GET /tenants/{tenantId}/errors?resolution=open Sync errors
POST /tenants/{tenantId}/errors/actions { "errorId", "action": "retry" | "resolve" }
GET /tenants/{tenantId}/notifications Notifications
GET /tenants/{tenantId}/audit The audit log

Endpoints without a user

Method and path Purpose
POST https://api.cosell.habilelabs.io/webhooks/zoho/{tenantId} Zoho workflow webhook; send the webhook token in x-cosell-token
POST https://api.cosell.habilelabs.io/marketplace/register AWS Marketplace fulfillment URL
GET https://api.cosell.habilelabs.io/health Service health