# Abstractapi — Orthogonal API

> Pay-per-use API on Orthogonal. Each call is billed to your Orthogonal balance.
> Base API: `https://api.orthogonal.com/v1/run` · [llms.txt](https://orthogonal.com/llms.txt) · [browse all APIs](https://orthogonal.com/discover)

**Verified:** no

## Access

**Run API:** `POST https://api.orthogonal.com/v1/run`
**Auth:** `Authorization: Bearer $ORTHOGONAL_API_KEY`
Get an API key at https://orthogonal.com/dashboard/settings/api-keys

Every call goes through the unified Run API: send the API `slug`, the endpoint `path`, and the `query`/`body` parameters. The response is `{ "success": true, "price": "<usd>", "data": { ... } }`.

## Endpoints

### Process Image via URL

Process and optimize an image from a given URL.

`POST /v1/url/`

**Estimated cost:** $0.003

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `url` | string | Yes | URL of the image to process (max 32MB) |
| `lossy` | boolean | No | Enable lossy compression (true/false) |
| `quality` | integer | No | Quality level (0-100) for lossy compression |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/url/","body":{"url":"<string>","lossy":"<boolean>","quality":"<integer>"}}'
```

### Process Image via Upload

Upload and process an image directly.

`POST /v1/upload/`

**Estimated cost:** $0.003

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `image` | string | Yes | The image file to process |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/upload/","body":{"api_key":"<string>","image":"<string>"}}'
```

### Capture Screenshot

Take a screenshot of a given URL with optional customizations like delay and viewport.

`GET /v1/`

**Estimated cost:** $0.003

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `url` | string | Yes | The URL to screenshot |
| `capture_full_page` | string | No | Set to true to capture the full page |
| `delay` | string | No | Delay in ms before capture |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/","method":"GET","query":{"api_key":"<string>","url":"<string>","capture_full_page":"<string>","delay":"<string>"}}'
```

### Scrape URL

Scrape and return the HTML content and data from a given URL.

`GET /v1/`

**Estimated cost:** $0.003

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `url` | string | Yes | The URL to scrape |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/","method":"GET","query":{"api_key":"<string>","url":"<string>"}}'
```

### Generate Avatar

Generate an avatar image from a name or initials with customizable styling.

`GET /v1`

**Estimated cost:** $0.001

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `name` | string | Yes | The name to generate an avatar for |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1","method":"GET","query":{"api_key":"<string>","name":"<string>"}}'
```

### Convert Time

Convert time between two locations or timezones.

`GET /v1/convert_time`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `base_location` | string | Yes | The source location |
| `base_datetime` | string | No | Datetime to convert (defaults to now) |
| `target_location` | string | Yes | The target location |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/convert_time","method":"GET","query":{"api_key":"<string>","base_location":"<string>","base_datetime":"<string>","target_location":"<string>"}}'
```

### Current Time

Get the current time, date, and timezone for a location.

`GET /v1/current_time`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `location` | string | Yes | Location name, lat/long, or IP address |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/current_time","method":"GET","query":{"api_key":"<string>","location":"<string>"}}'
```

### Public Holidays Lookup

Get holidays for a specific country, year, month, and day.

`GET /v1`

**Estimated cost:** $0.001

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `country` | string | Yes | 2-letter country code (e.g. US) |
| `year` | string | Yes | Year (e.g. 2024) |
| `month` | string | No | Month (1-12) |
| `day` | string | No | Day (1-31) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1","method":"GET","query":{"api_key":"<string>","country":"<string>","year":"<string>","month":"<string>","day":"<string>"}}'
```

### Convert Currency

Convert an amount from one currency to another.

`GET /v1/convert`

**Estimated cost:** $0.001

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `base` | string | Yes | Base currency code |
| `target` | string | Yes | Target currency code |
| `amount` | string | No | Amount to convert (defaults to 1) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/convert","method":"GET","query":{"api_key":"<string>","base":"<string>","target":"<string>","amount":"<string>"}}'
```

### Historical Exchange Rates

Get exchange rates for a specific historical date.

`GET /v1/historical`

**Estimated cost:** $0.001

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `base` | string | Yes | Base currency code |
| `target` | string | No | Target currency code(s) |
| `date` | string | Yes | Historical date in YYYY-MM-DD format |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/historical","method":"GET","query":{"api_key":"<string>","base":"<string>","target":"<string>","date":"<string>"}}'
```

### Live Exchange Rates

Get the latest exchange rates for a given base currency.

`GET /v1/live`

**Estimated cost:** $0.001

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `base` | string | Yes | Base currency code (e.g. USD) |
| `target` | string | No | Target currency code(s), comma-separated |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/live","method":"GET","query":{"api_key":"<string>","base":"<string>","target":"<string>"}}'
```

### Validate VAT Number

Validate a VAT number and get company details associated with it.

`GET /v1/validate`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `vat_number` | string | Yes | The VAT number to validate |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/validate","method":"GET","query":{"api_key":"<string>","vat_number":"<string>"}}'
```

### Calculate VAT

Calculate VAT amount for a given price and country.

`GET /v1/calculate`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `amount` | string | Yes | The amount to calculate VAT for |
| `country_code` | string | Yes | The 2-letter ISO country code |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/calculate","method":"GET","query":{"api_key":"<string>","amount":"<string>","country_code":"<string>"}}'
```

### VAT Categories

Get VAT rate categories for a specific country.

`GET /v1/categories`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `country_code` | string | Yes | The 2-letter ISO country code |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1/categories","method":"GET","query":{"api_key":"<string>","country_code":"<string>"}}'
```

### IBAN Validation

Validate an IBAN and retrieve associated bank details, country, and check digits.

`GET /v1`

**Estimated cost:** $0.002

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `iban` | string | Yes | The IBAN to validate |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1","method":"GET","query":{"api_key":"<string>","iban":"<string>"}}'
```

### Company Enrichment Lookup

Get detailed company information from a domain including name, logo, headcount, location, industry, and more.

`GET /v2`

**Estimated cost:** $0.003

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `domain` | string | Yes | The domain to enrich (e.g. google.com) |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v2","method":"GET","query":{"api_key":"<string>","domain":"<string>"}}'
```

### IP Intelligence Lookup

Get geolocation and security intelligence for an IP address including VPN, proxy, Tor, and abuse detection.

`GET /v1`

**Estimated cost:** $0.003

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `ip_address` | string | Yes | The IP address to look up |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1","method":"GET","query":{"api_key":"<string>","ip_address":"<string>"}}'
```

### Phone Intelligence Lookup

Get detailed intelligence about a phone number including carrier, line type, location, risk score, and breach data.

`GET /v1`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key |
| `phone` | string | Yes | The phone number to look up |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1","method":"GET","query":{"api_key":"<string>","phone":"<string>"}}'
```

### Email Reputation Lookup

Get detailed reputation data for an email address including deliverability, quality score, and risk indicators.

`GET /v1`

**Estimated cost:** $0.005

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `api_key` | string | Yes | Your AbstractAPI key for Email Reputation |
| `email` | string | Yes | The email address to validate |

```bash
curl -X POST 'https://api.orthogonal.com/v1/run' \
  -H 'Authorization: Bearer $ORTHOGONAL_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{"api":"abstractapi","path":"/v1","method":"GET","query":{"api_key":"<string>","email":"<string>"}}'
```

---

Full details and an interactive quickstart: https://orthogonal.com/discover/abstractapi
