Relationship Compatibility API - Angular Integration

Calculate relationship compatibility percentage and analysis

Overview

Calculate relationship compatibility percentage and analysis

POST /v2/astrology/compatibility-score
Pricing: $0.008 per request | Framework: Angular | Auth: API Key required

Quick Start

1. Installation

# HttpClient is built into Angular

2. Environment Setup

# .env or .env.local
VEDIKA_API_KEY=your_api_key_here
Security: Never commit API keys to version control. Always use environment variables.

Complete Implementation

// compatibility.service.ts
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from '../environments/environment';

interface RelationshipCompatibilityResponse {
  success: boolean;
  data: any;
  timestamp: string;
  cost: number;
}

@Injectable({
  providedIn: 'root'
})
export class RelationshipCompatibilityService {
  private baseUrl = 'https://vedika-api-854222120654.us-central1.run.app';

  constructor(private http: HttpClient) {}

  getRelationshipCompatibility(params: any): Observable {
    const headers = new HttpHeaders({
      'Content-Type': 'application/json',
      'x-api-key': environment.vedikaApiKey
    });

    return this.http.post(
      `${this.baseUrl}/v2/astrology/compatibility-score`,
      params,
      { headers }
    );
  }
}

// compatibility.component.ts
import { Component } from '@angular/core';
import { RelationshipCompatibilityService } from './compatibility.service';

@Component({
  selector: 'app-compatibility',
  templateUrl: './compatibility.component.html',
  styleUrls: ['./compatibility.component.css']
})
export class RelationshipCompatibilityComponent {
  data: any = null;
  loading = false;
  error: string | null = null;

  constructor(private compatibilityService: RelationshipCompatibilityService) {}

  fetchRelationshipCompatibility(params: any): void {
    this.loading = true;
    this.error = null;

    this.compatibilityService.getRelationshipCompatibility(params).subscribe({
      next: (response) => {
        this.data = response.data;
        this.loading = false;
      },
      error: (err) => {
        this.error = err.error?.error || 'An error occurred';
        this.loading = false;
      }
    });
  }
}

Request Parameters

Parameter Type Required Description
person1Details varies Yes See API documentation
person2Details varies Yes See API documentation

Error Handling

Status Code Error Solution
400 Bad Request Check request parameters and format
401 Unauthorized Verify API key is correct
402 Payment Required Insufficient balance - recharge at console.vedika.io
429 Rate Limit Exceeded Implement exponential backoff or upgrade plan
500 Server Error Retry after a few seconds

Best Practices

Response Format

{
  "success": true,
  "data": {
    // Endpoint-specific response data
  },
  "timestamp": "2026-01-07T10:30:00Z",
  "cost": 0.008
}

Related Endpoints

Birth Chart Kundli Match Panchang Dasha Periods Dosha Analysis

Other Frameworks

React Next.js Vue.js Node.js Python/Flask Django Ruby on Rails

Support

Need help integrating this endpoint?