CustomerOS website screenshot

CustomerOS

CustomerOS (formerly Openline) is an open-source go-to-market / revenue platform for B2B SaaS. Its core open-source application server, customer-os-api, exposes a single GraphQL endpoint (POST /query) covering organizations, contacts, opportunities, contracts, invoices, interactions, and timeline events. The commercial cloud (customeros.ai) adds a documented REST "Customerbase" API and a JavaScript website visitor tracker, with broader access granted on a per-request basis.

7 APIs 0 Features
CRMRevenueGo-To-MarketGraphQLOpen Source

APIs

CustomerOS GraphQL Core API

Single-endpoint GraphQL API (POST /query) served by the open-source customer-os-api server. Exposes Query and Mutation operations across organizations, contacts, opportunities, ...

CustomerOS Organizations API

GraphQL queries and mutations for company / organization records - organization, organizations, organization_Save, organization_Merge, subsidiaries, domains, social media, and o...

CustomerOS Contacts API

GraphQL queries and mutations for contacts (people) - contact, contacts, contact_ByEmail, contact_ByLinkedIn, contact_Create, contact_CreateForOrganization, job roles, emails, p...

CustomerOS Opportunities API

GraphQL queries and mutations for sales opportunities and renewals - opportunity, opportunities_LinkedToOrganizations, opportunity_Save, opportunity_Archive, and renewal likelih...

CustomerOS Interactions API

GraphQL queries and mutations for interaction events, interaction sessions, meetings, notes, log entries, issues, and the per-organization timeline of touchpoints - over the cus...

CustomerOS Customerbase REST API

Documented synchronous REST API on the customeros.ai cloud (api.customeros.ai/customerbase/v1), authenticated with the X-CUSTOMER-OS-API-KEY header. Includes organization endpoi...

CustomerOS Website Tracker

Client-side JavaScript tracker, installed via a script tag behind a customer-hosted reverse-proxy CNAME, that captures page views and custom events and matches visitor IPs to co...

Collections

GraphQL

CustomerOS GraphQL Schema

Representative GraphQL schema for the [CustomerOS](https://customeros.ai/) (formerly Openline)

GRAPHQL

Pricing Plans

Customeros Plans Pricing

2 plans

PLANS

Rate Limits

Customeros Rate Limits

2 limits

RATE LIMITS

FinOps

Resources

👥
GitHubOrganization
GitHubOrganization
👥
GitHubOrganization
GitHubOrganization
🔗
LinkedIn
LinkedIn
🔗
Website
Website
🔗
Documentation
Documentation
🔗
Plans
Plans
🔗
RateLimits
RateLimits
🔗
FinOps
FinOps

Sources

Raw ↑
opencollection: 1.0.0
info:
  name: CustomerOS GraphQL API
  version: '1.0'
request:
  auth:
    type: apikey
    key: X-Openline-API-KEY
    value: '{{apiKey}}'
    in: header
items:
- info:
    name: Organizations
    type: folder
  items:
  - info:
      name: Get organization by id
      type: http
    http:
      method: POST
      url: https://api.customeros.ai/query
      body:
        type: json
        data: '{"query":"query($id: ID!) { organization(id: $id) { metadata { id } name website domains } }","variables":{"id":"org-123"}}'
    docs: Fetch an organization by id via GraphQL.
  - info:
      name: Save organization
      type: http
    http:
      method: POST
      url: https://api.customeros.ai/query
      body:
        type: json
        data: '{"query":"mutation($input: OrganizationSaveInput!) { organization_Save(input: $input) { metadata { id } name
          website } }","variables":{"input":{"name":"Acme Inc","website":"https://acme.com"}}}'
    docs: Create or update an organization via GraphQL.
- info:
    name: Contacts
    type: folder
  items:
  - info:
      name: Get contact by email
      type: http
    http:
      method: POST
      url: https://api.customeros.ai/query
      body:
        type: json
        data: '{"query":"query($email: String!) { contact_ByEmail(email: $email) { metadata { id } name jobRoles { jobTitle
          } } }","variables":{"email":"buyer@example.com"}}'
    docs: Look up a contact by email via GraphQL.
  - info:
      name: Create contact for organization
      type: http
    http:
      method: POST
      url: https://api.customeros.ai/query
      body:
        type: json
        data: '{"query":"mutation($organizationId: ID!, $input: ContactInput!) { contact_CreateForOrganization(organizationId:
          $organizationId, input: $input) { metadata { id } name } }","variables":{"organizationId":"org-123","input":{"name":"Dana
          Buyer","prefix":"Ms"}}}'
    docs: Create a contact for an organization via GraphQL.
- info:
    name: Opportunities
    type: folder
  items:
  - info:
      name: Save opportunity
      type: http
    http:
      method: POST
      url: https://api.customeros.ai/query
      body:
        type: json
        data: '{"query":"mutation($input: OpportunitySaveInput!) { opportunity_Save(input: $input) { metadata { id } name
          amount internalStage } }","variables":{"input":{"organizationId":"org-123","name":"Acme Expansion","amount":50000,"internalType":"UPSELL"}}}'
    docs: Create or update an opportunity via GraphQL.
- info:
    name: Interactions
    type: folder
  items:
  - info:
      name: Get interaction event
      type: http
    http:
      method: POST
      url: https://api.customeros.ai/query
      body:
        type: json
        data: '{"query":"query($id: ID!) { interactionEvent(id: $id) { id channel content contentType eventType createdAt
          } }","variables":{"id":"event-123"}}'
    docs: Fetch an interaction event by id via GraphQL.