CRED Enterprise API Documentation

Commercial Data Platform – Integration Guide

1. Overview

The CRED Commercial Platform exposes a secure, high-availability GraphQL API designed for enterprise-scale data enrichment, identity resolution, and commercial intelligence workflows.

This guide provides an end-to-end implementation blueprint covering:

  • Authentication
  • API key lifecycle management
  • Filtering and search capabilities
  • Schema reference

This documentation is optimized for:

  • Platform engineering teams
  • Solution architects
  • Enterprise IT stakeholders

2. Environments

EnvironmentBase URLPurpose
Productionhttps://api.external.credplatform.com/graphqlLive datasets, production workloads

All functionality is consistent across environments except dataset size and SLA guarantees.

3. Authentication & Access Control

The platform supports a two-step authentication model designed for enterprise governance.

3.1 JWT Token (User Session Token)

Used only to create and rotate API keys. Short-lived; not used for application workloads.

HTTP

Authorization: Bearer <CRED_JWT_TOKEN>

3.2 API Key Creation

Endpoint: POST /auth/graphql

GraphQL

mutation {
  createApiKey(input: { name: "My API Key" })
}

Optional expiration:

mutation {
  createApiKey(input: { name: "My API Key", expiresInDays: 30 })
}

Response:

{
  "data": {
    "createApiKey": "cred_xxxxx..."
  }
}

!!! warning "API Key Security" API keys are shown only once — store securely.

4. Authorization for API Requests

Endpoint: POST /graphql

HTTP

Authorization: Bearer cred_<YOUR_API_KEY>
Content-Type: application/json

5. Filter Fields

Use these fields in searchFilters:

Comparison Operators

  • IS_ANY_OF - Matches any of the provided values
  • IS_ALL_OF - Matches all of the provided values
  • BETWEEN - Matches values within a range (requires 2 values)
  • MORE_THAN - Greater than
  • MORE_OR_EQUALS_THAN - Greater than or equal to
  • LESS_THAN - Less than
  • LESS_OR_EQUALS_THAN - Less than or equal to

Person Filters (InputPersonsSearchFilters)

Identity:

  • identity - Search by name or role
  • name - Search by full name

Demographics:

  • age - Filter by age range
  • birthDate - Filter by birth date
  • gender - Filter by gender

Location:

  • location - Filter by location
  • country - Filter by country
  • regionId - Filter by region ID

Salary:

  • salary - Filter by salary (maps to grossSalary)
  • grossSalary - Filter by gross salary
  • netSalary - Filter by net salary

Skills & Education:

  • skills - Filter by skills
  • educationLevel - Filter by education level

Other:

  • languageIds - Filter by language IDs

Company Filters (InputCompanySearchFilters)

  • country - Filter by country (accepts country names or IDs: ["United States", "USA"] or [234])
  • headquarters - Filter by headquarters location (accepts location names or IDs: ["Silicon Valley"] or [234])
  • industry - Filter by industry (array of strings: ["IT", "Technology"])
  • location - Filter by location (accepts location names or IDs: ["New York"] or [234])
  • region - Filter by region (accepts region names or IDs: ["California"] or [1])
  • numberOfEmployees - Filter by number of employees (integer)
  • employeeCount - Filter by number of employees - friendly name (integer, can be used with BETWEEN)
  • revenue - Filter by revenue (integer, can be used with BETWEEN)

6. Examples

Person Search

query {
  personsConnection(
    first: 2
    searchFilters: {
      identity: [{ values: ["John"], comparison: "IS_ANY_OF" }]
      name: [{ values: ["John"], comparison: "IS_ANY_OF" }]
      gender: [{ values: ["MALE", "FEMALE"], comparison: "IS_ANY_OF" }]
      age: [{ values: ["1980-01-01", "2024-12-31"], comparison: "BETWEEN" }]
      birthDate: [{ values: ["1980-01-01", "2024-12-31"], comparison: "BETWEEN" }]
      location: [{ values: [234, 235], comparison: "IS_ANY_OF" }]
      regionId: [{ values: [234, 235], comparison: "IS_ANY_OF" }]
      country: [{ values: [234], comparison: "IS_ANY_OF" }]
      languageIds: [{ values: [1, 2], comparison: "IS_ANY_OF" }]
      salary: [{ values: [50000000, 500000000], comparison: "BETWEEN" }]
      grossSalary: [{ values: [50000000], comparison: "MORE_OR_EQUALS_THAN" }]
      netSalary: [{ values: [40000000], comparison: "MORE_OR_EQUALS_THAN" }]
      skills: [{ values: ["JavaScript", "TypeScript"], comparison: "IS_ANY_OF" }]
      educationLevel: [{ values: ["POSTGRADUATE_MASTERS", "PHD"], comparison: "IS_ANY_OF" }]
    }
  ) {
    edges {
      node {
        id
        name
        firstName
        lastName
        skills
        gender
        categoryIds
        age
        languages {
          id
          name
        }
        identifiers {
          name
          value
        }
        salary {
          grossSalary {
            value
            currency
            multiplier
            isVerified
            localCurrency
            localCurrencyValue
            localCurrencyValueMultiplier
          }
          grossSalaryLowerRange {
            value
            currency
            multiplier
            isVerified
            localCurrency
            localCurrencyValue
            localCurrencyValueMultiplier
          }
          grossSalaryUpperRange {
            value
            currency
            multiplier
            isVerified
            localCurrency
            localCurrencyValue
            localCurrencyValueMultiplier
          }
        }
      }
      cursor
    }
    totalCount
    pageInfo {
      endCursor
      hasNextPage
    }
  }
}

Company Search

query {
  companiesConnection2(
    first: 3
    searchFilters: {
      revenue: [{ values: [1000000000, 5000000000], comparison: "BETWEEN" }]
      numberOfEmployees: [{ values: [500], comparison: "MORE_THAN" }]
      employeeCount: [{ values: [100, 1000], comparison: "BETWEEN" }]
      industry: [{ values: ["IT", "Technology"], comparison: "IS_ANY_OF" }]
      country: [{ values: ["United States", "USA"], comparison: "IS_ANY_OF" }]
      region: [{ values: ["California"], comparison: "IS_ANY_OF" }]
      location: [{ values: ["New York"], comparison: "IS_ANY_OF" }]
      headquarters: [{ values: ["Silicon Valley"], comparison: "IS_ANY_OF" }]
    }
  ) {
    edges {
      node {
        id
        name
        websiteUrl
        parentCompanyId
        isPublic
        hasSubsidiary
        imageUrl
        marketCap {
          value
          currency
          multiplier
          isVerified
          localCurrency
          localCurrencyValue
          localCurrencyValueMultiplier
        }
        marketingBudget {
          value
          currency
          multiplier
          isVerified
          localCurrency
          localCurrencyValue
          localCurrencyValueMultiplier
        }
        fundingRaised {
          value
          currency
          multiplier
          isVerified
          localCurrency
          localCurrencyValue
          localCurrencyValueMultiplier
        }
        revenue {
          value
          currency
          multiplier
          isVerified
          localCurrency
          localCurrencyValue
          localCurrencyValueMultiplier
        }
        industry {
          id
          name
        }
        sector {
          id
          name
        }
        country {
          id
          name
          imageUrl
          alpha1Code
          alpha2Code
          alpha3Code
        }
        headquarters
        description
        ticker
        exchange
        foundedYear
        lastFundingDate
        numberOfEmployees
      }
    }
  }
}

7. GraphQL Playground

Creating API Keys

{
  "Authorization": "Bearer <CRED_JWT_TOKEN>"
}

Running Queries

{
  "Authorization": "Bearer cred_<YOUR_API_KEY>"
}

8. API Schema Reference

8.1 Company Object

FieldDescription
idUnique company ID
nameName of the company
imageUrlLogo or brand image
websiteUrlPublic website
descriptionCorporate description
headquartersHQ location
tickerStock ticker symbol
exchangeExchange code
foundedYearFounding year
lastFundingDateDate of last funding round
isPublicPublic/private flag
hasSubsidiarySubsidiary flag
parentCompanyIdParent entity ID
numberOfEmployeesNumber of employees
industry.idIndustry identifier
industry.nameIndustry name
sector.idSector identifier
sector.nameSector name
country.idCountry identifier
country.nameCountry name
country.imageUrlCountry flag image URL
country.alpha1CodeISO 3166-1 alpha-1 code (e.g., "US")
country.alpha2CodeISO 3166-1 alpha-2 code
country.alpha3CodeISO 3166-1 alpha-3 code (e.g., "USA")
revenue.valueRevenue value
revenue.currencyCurrency code
revenue.multiplierValue multiplier (e.g., "MILLIONS")
revenue.isVerifiedWhether the value is verified
revenue.localCurrencyLocal currency code
revenue.localCurrencyValueValue in local currency
revenue.localCurrencyValueMultiplierLocal currency multiplier
marketCapMarket capitalization (same structure as revenue)
marketingBudgetMarketing budget (same structure as revenue)
fundingRaisedTotal funding raised (same structure as revenue)

8.2 Person Object

FieldDescription
idPerson ID
firstNameFirst name
lastNameLast name
nameFull name
genderGender
ageAge
skillsList of skills
categoryIdsCategory identifiers
languages.idLanguage identifier
languages.nameLanguage name
identifiers.nameIdentifier name (e.g., "LinkedIn", "Twitter")
identifiers.valueIdentifier value (URL or handle)
salary.grossSalary.valueGross salary value
salary.grossSalary.currencyCurrency code
salary.grossSalary.multiplierValue multiplier (e.g., "THOUSANDS")
salary.grossSalary.isVerifiedWhether the value is verified
salary.grossSalary.localCurrencyLocal currency code
salary.grossSalary.localCurrencyValueValue in local currency
salary.grossSalary.localCurrencyValueMultiplierLocal currency multiplier
salary.grossSalaryLowerRangeLower range of gross salary (same structure as grossSalary)
salary.grossSalaryUpperRangeUpper range of gross salary (same structure as grossSalary)

9. Error Handling

ScenarioError TypeResolution
Missing/expired API keyUNAUTHENTICATEDSupply valid API key
Invalid JWTFORBIDDENRefresh user session
Invalid GraphQL queryGRAPHQL_VALIDATION_FAILEDFix syntax
Rate limit exceededRATE_LIMIT_EXCEEDEDLower frequency

10. Rate Limiting & Governance

Limit TypePolicy
API key rate limit100 req per 60 seconds
Default key validity14 days
Max custom validityDeployment-configured maximum

11. Security & Compliance

  • Keys have prefix cred_ and are user-scoped
  • JWTs use strict expiration
  • API keys must be stored in secret vaults
  • Production requires TLS
  • Full audit logs for key activity