I-CIL API Documentation
The I-CIL (Influencer Integrity & Credibility Ledger) API allows licensed platforms to create identities, submit activity signals, raise disputes, and verify immutable influencer credibility scores.
Core Principles
Neutrality
No platform, brand, or operator can unilaterally influence individual scores. Scoring is rule-based and deterministic.
Determinism
Scores are computed via transparent code logic, not AI judgment or subjective human review.
Immutability
All finalized scores are anchored on the blockchain. History is append-only and tamper-evident.
Architecture
I-CIL acts as a neutral middleware between influencer platforms and the public blockchain.
Authentication
I-CIL uses OAuth 2.0 Client Credentials flow for machine-to-machine authentication. All requests must be made over HTTPS.
1. Get Access Token
curl -X POST https://auth.icil.org/oauth/token \
-u client_id:client_secret \
-d grant_type=client_credentials \
-d scope=icil.signal.submit
2. Authenticate Requests
Include the access token in the Authorization header.
Authorization: Bearer
Scopes
| Scope | Description |
|---|---|
icil.identity.create |
Create new I-CIL identities for influencers |
icil.signal.submit |
Submit activity signals and evidence |
icil.dispute.submit |
Raise formal disputes |
icil.score.read |
Read scores and verification data |
Integration Flow
Follow these steps to integrate your platform with I-CIL.
- Onboarding: Sign the Participation Agreement and receive your Client ID.
- Identify: Use the Identity API to map your internal users to I-CIL IDs.
- Report: Submit real-time signals via the Signals API when events occur.
- Verify: Query the Scores API to display the verification badge.
API Reference
Base URL (Production): https://api.icil.org/v1
Base URL (Sandbox): https://sandbox.api.icil.org/v1
Identity
Create I-CIL Identity
Creates a new I-CIL identity for an influencer. Requires proof of consent.
Request
{
"platformInfluencerId": "inf_12345",
"consentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
Response (201 Created)
{
"icilId": "0xA91cF2D9E0E4bB3F6F9C1E9F2A2DD0E4C8F6A123",
"initialScore": 600
}
Signals
Submit Activity Signal
Submit a standardized activity event (e.g., Late Delivery, No Show). Must include evidence hash.
Request
{
"icilId": "0xA91cF2D9E0E4bB3F6F9C1E9F2A2DD0E4C8F6A123",
"signalCode": "DELIVERED_LATE",
"severity": "MEDIUM",
"evidenceHash": "a1b2c3d4e5f6...",
"occurredAt": "2026-02-01T14:30:00Z"
}
Response (202 Accepted)
{
"signalId": "sig_987654321",
"status": "ACCEPTED"
}
Disputes
Raise Dispute
Formal challenge to a submitted signal.
Request
{
"icilId": "0xA91cF2D9E0E4bB3F6F9C1E9F2A2DD0E4C8F6A123",
"signalId": "sig_987654321",
"reasonCode": "EVIDENCE_INCORRECT",
"counterEvidenceHash": "f5e4d3c2b1a0..."
}
Verification
Get Public Score
Retrieve the latest anchored score and proof.
Response (200 OK)
{
"icilId": "0xA91cF2D9E0E4bB3F6F9C1E9F2A2DD0E4C8F6A123",
"score": 725,
"methodologyVersion": "1.0",
"anchoredTx": "0x123abc...",
"lastUpdated": "2026-02-15T10:00:00Z"
}
Evidence Model
All signals must be backed by an Evidence Envelope. This is a JSON structure containing metadata and hashes of raw artifacts.
The evidenceHash submitted to the API is:
SHA-256( Canonicalized_Evidence_Envelope_JSON )
Canonicalization Rules
- UTF-8 encoding
- Lexicographically sorted keys
- No insignificant whitespace
- ISO-8601 UTC timestamps
Governance & Accountability
The I-CIL infrastructure is governed by clear separation of powers.
- Platforms submit facts (signals), not scores.
- I-CIL System computes scores deterministically.
- Blockchain anchors the final state immutably.
AI Advisory: AI models are used strictly for fraud detection and pattern analysis. They do not have write access to the ledger.
Error Codes
| Code | Description |
|---|---|
INVALID_TOKEN |
OAuth token is missing, expired, or invalid. |
RATE_LIMIT_EXCEEDED |
Too many requests. Back off and retry. |
CONSENT_REQUIRED |
Influencer consent proof is missing or invalid. |
DUPLICATE_SIGNAL |
This event has already been recorded. |
Versioning
The API is versioned in the URL (e.g., /v1/). Breaking changes will result in a new
major version. We maintain backward compatibility for all minor versions.