تخطَّ إلى المحتوى

مرجع الـ API

واجهة Authevo REST الكاملة — 74 نقطة نهاية، مُولّدة من مواصفة OpenAPI الخاصة بنا. يتطلب كل طلب مفتاحًا سريًا Bearer ‏(‎sk_…) ما لم يُذكر خلاف ذلك.

عنوان الأساس: https://api.authevo.dev

رموز التحقق (OTP)

POST/v1/otp/send

المعاملات

  • idempotency-key (header) — string

جسم الطلب

{
  "type": "object",
  "required": [
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

# 1. Send a one-time code over WhatsApp
curl -X POST https://api.authevo.dev/v1/otp/send \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{ "phone": "+201234567890" }'

# 2. Verify the code your user entered
curl -X POST https://api.authevo.dev/v1/otp/verify \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{ "phone": "+201234567890", "code": "123456" }'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "message_id": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "expires_in": {
          "type": "number"
        },
        "cooldown_seconds": {
          "type": "number"
        }
      }
    }
  }
}
{
  "data": {
    "message_id": "msg_9k2m4n8x",
    "status": "sent",
    "expires_in": 600
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/otp/telegram-link

جسم الطلب

{
  "type": "object",
  "required": [
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/otp/telegram-link \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+201234567890"}'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "telegram_bot_url": {
          "type": "string"
        },
        "expires_in": {
          "type": "number"
        }
      }
    }
  }
}
{
  "data": {
    "telegram_bot_url": "string",
    "expires_in": 0
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/otp/deliver

المعاملات

  • idempotency-key (header) — string

جسم الطلب

{
  "type": "object",
  "required": [
    "phone",
    "code"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "code": {
      "type": "string",
      "pattern": "^\\d{6}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/otp/deliver \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+201234567890","code":"123456"}'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "message_id": {
          "type": "string"
        },
        "status": {
          "type": "string"
        },
        "cooldown_seconds": {
          "type": "number"
        }
      }
    }
  }
}
{
  "data": {
    "message_id": "9f2a1c4b-7d3e-4a51-8b60-2c1d4e5f6a7b",
    "status": "string",
    "cooldown_seconds": 0
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/otp/verify

جسم الطلب

{
  "type": "object",
  "required": [
    "phone",
    "code"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "code": {
      "type": "string",
      "pattern": "^\\d{6}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

# 1. Send a one-time code over WhatsApp
curl -X POST https://api.authevo.dev/v1/otp/send \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{ "phone": "+201234567890" }'

# 2. Verify the code your user entered
curl -X POST https://api.authevo.dev/v1/otp/verify \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{ "phone": "+201234567890", "code": "123456" }'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/otp/status/{message_id}

المعاملات

  • message_id (path, مطلوب) — string

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/otp/status/{message_id} \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}

TOTP (تطبيقات المصادقة)

POST/v1/totp/enroll

جسم الطلب

{
  "type": "object",
  "required": [
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "replace": {
      "type": "boolean"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/totp/enroll \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+201234567890","replace":true}'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "secret": {
          "type": "string"
        },
        "otpauth_url": {
          "type": "string"
        },
        "qr_code": {
          "type": "string"
        },
        "already_enrolled": {
          "type": "boolean"
        }
      }
    }
  }
}
{
  "data": {
    "secret": "JBSWY3DPEHPK3PXP",
    "otpauth_url": "otpauth://totp/Authevo:+201234567890?secret=JBSWY3DPEHPK3PXP&issuer=Authevo&algorithm=SHA1&digits=6&period=30",
    "qr_code": "data:image/png;base64,iVBORw0KGgo..."
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/totp/disable

جسم الطلب

{
  "type": "object",
  "required": [
    "phone"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/totp/disable \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+201234567890"}'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "disabled": {
          "type": "boolean"
        }
      }
    }
  }
}
{
  "data": {
    "disabled": true
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/totp/verify

جسم الطلب

{
  "type": "object",
  "required": [
    "phone",
    "code"
  ],
  "properties": {
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "code": {
      "type": "string",
      "pattern": "^\\d{6}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/totp/verify \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"phone":"+201234567890","code":"123456"}'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "verified": {
          "type": "boolean"
        },
        "attempts_remaining": {
          "type": "integer"
        },
        "first_confirm": {
          "type": "boolean"
        }
      }
    }
  }
}
{
  "data": {
    "verified": true,
    "attempts_remaining": 0,
    "first_confirm": true
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}

الحساب وWhatsApp

POST/v1/clients/register

جسم الطلب

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
      "maxLength": 254
    },
    "password": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    },
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "company": {
      "type": "string",
      "maxLength": 120
    },
    "turnstile_token": {
      "type": "string",
      "maxLength": 4096
    },
    "locale": {
      "type": "string",
      "maxLength": 8
    }
  },
  "required": [
    "email",
    "password",
    "name",
    "phone"
  ],
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/register \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"a-strong-password-here","name":"Jane Doe","phone":"+201234567890"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/login

جسم الطلب

{
  "type": "object",
  "required": [
    "email",
    "password"
  ],
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
      "maxLength": 254
    },
    "password": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/login \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","password":"a-strong-password-here"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/logout

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/logout \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
PATCH/v1/clients/profile

جسم الطلب

{
  "type": "object",
  "minProperties": 1,
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 100
    },
    "phone": {
      "type": "string",
      "pattern": "^\\+[1-9]\\d{6,14}$"
    },
    "company": {
      "type": "string",
      "maxLength": 120
    },
    "locale": {
      "type": "string",
      "enum": [
        "en",
        "ar"
      ]
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X PATCH https://api.authevo.dev/v1/clients/profile \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Jane Doe","phone":"+201234567890","company":"Acme Inc"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/signup-secret

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/signup-secret \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/session/refresh

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/session/refresh \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/keys/rotate

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/keys/rotate \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/keys

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/keys \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/keys

جسم الطلب

{
  "type": "object",
  "required": [
    "name"
  ],
  "properties": {
    "name": {
      "type": "string",
      "minLength": 1,
      "maxLength": 40
    },
    "mode": {
      "type": "string",
      "enum": [
        "live",
        "test"
      ],
      "default": "live"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/keys \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"name":"Jane Doe","mode":"live"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
DELETE/v1/clients/keys/{id}

المعاملات

  • id (path, مطلوب) — string

مثال على الطلب

curl -X DELETE https://api.authevo.dev/v1/clients/keys/{id} \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/webhook-secret/rotate

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/webhook-secret/rotate \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/webhook-secret/activate

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/webhook-secret/activate \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/connect-whatsapp

جسم الطلب

{
  "type": "object",
  "required": [
    "phone_number_id",
    "access_token"
  ],
  "properties": {
    "phone_number_id": {
      "type": "string",
      "pattern": "^[0-9]{1,20}$"
    },
    "access_token": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4096
    },
    "waba_id": {
      "type": "string",
      "pattern": "^[0-9]{1,20}$"
    },
    "display_name": {
      "type": "string",
      "maxLength": 120
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/connect-whatsapp \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"phone_number_id":"string","access_token":"string","waba_id":"string"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/waba/embedded-signup

جسم الطلب

{
  "type": "object",
  "required": [
    "code",
    "waba_id",
    "phone_number_id"
  ],
  "properties": {
    "code": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2048
    },
    "waba_id": {
      "type": "string",
      "pattern": "^[0-9]{1,20}$"
    },
    "phone_number_id": {
      "type": "string",
      "pattern": "^[0-9]{1,20}$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/waba/embedded-signup \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"code":"123456","waba_id":"string","phone_number_id":"string"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/waba/details

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/waba/details \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/waba/template/check

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/waba/template/check \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/waba/template/create

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/waba/template/create \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/waba/disconnect

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/waba/disconnect \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/me

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/me \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
PATCH/v1/clients/settings

جسم الطلب

{
  "type": "object",
  "minProperties": 1,
  "properties": {
    "webhook_url": {
      "type": "string",
      "pattern": "^https://[^\\s]+$",
      "maxLength": 2048
    },
    "spend_cap_hourly": {
      "type": [
        "number",
        "null"
      ],
      "minimum": 0,
      "maximum": 1000000
    },
    "waba_template_language": {
      "type": [
        "string",
        "null"
      ],
      "pattern": "^[a-z]{2}(_[A-Z]{2})?$"
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X PATCH https://api.authevo.dev/v1/clients/settings \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"webhook_url":"https://example.com/webhooks/authevo","spend_cap_hourly":0,"waba_template_language":"string"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/analytics

المعاملات

  • period (query) — integer, min 1, max 365

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/analytics \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/analytics/timeseries

المعاملات

  • period (query) — integer, min 1, max 365

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/analytics/timeseries \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/analytics/funnel

المعاملات

  • period (query) — integer, min 1, max 365

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/analytics/funnel \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/analytics/channels

المعاملات

  • period (query) — integer, min 1, max 365

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/analytics/channels \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/otps/recent

المعاملات

  • limit (query) — integer, min 1, max 50

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/otps/recent \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/otps

المعاملات

  • limit (query) — integer, min 1, max 100
  • before (query) — string
  • status (query) — sent | verified | failed | expired
  • channel (query) — whatsapp | telegram
  • mode (query) — live | test
  • from (query) — string
  • to (query) — string

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/otps \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/totp/log

المعاملات

  • limit (query) — integer, min 1, max 100
  • before (query) — string
  • status (query) — verified | failed
  • mode (query) — live | test

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/totp/log \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/transactions

المعاملات

  • limit (query) — integer, min 1, max 100
  • before (query) — string

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/transactions \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/limits

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/limits \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schema_version",
        "generated_at",
        "account",
        "effective_policy",
        "usage",
        "allowances",
        "eligibility",
        "recent_throttles",
        "capacity_request",
        "safety_controls"
      ],
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "2026-09-01"
          ]
        },
        "generated_at": {
          "type": "string"
        },
        "account": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "billing_plan",
            "status"
          ],
          "properties": {
            "billing_plan": {
              "type": "string"
            },
            "status": {
              "type": "string",
              "enum": [
                "standard",
                "approved",
                "expiring",
                "expired",
                "restricted"
              ]
            }
          }
        },
        "effective_policy": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "tier",
            "approved",
            "sustained_per_minute",
            "burst_per_10_seconds",
            "account_hour",
            "expires_at",
            "requires_customer_owned_waba"
          ],
          "properties": {
            "tier": {
              "type": "string"
            },
            "approved": {
              "type": "boolean"
            },
            "sustained_per_minute": {
              "type": "integer"
            },
            "burst_per_10_seconds": {
              "type": "integer"
            },
            "account_hour": {
              "type": "integer"
            },
            "expires_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "requires_customer_owned_waba": {
              "type": "boolean"
            }
          }
        },
        "usage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "availability",
            "windows"
          ],
          "properties": {
            "availability": {
              "type": "string",
              "enum": [
                "available",
                "unavailable"
              ]
            },
            "windows": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "name",
                  "unit",
                  "window_seconds",
                  "limit",
                  "used",
                  "remaining",
                  "reset_at",
                  "warning_state",
                  "measurement",
                  "applicability",
                  "is_total_send_count"
                ],
                "properties": {
                  "name": {
                    "type": "string"
                  },
                  "unit": {
                    "type": "string",
                    "enum": [
                      "requests"
                    ]
                  },
                  "window_seconds": {
                    "type": "integer"
                  },
                  "limit": {
                    "type": "integer"
                  },
                  "used": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "remaining": {
                    "anyOf": [
                      {
                        "type": "integer"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "reset_at": {
                    "anyOf": [
                      {
                        "type": "string"
                      },
                      {
                        "type": "null"
                      }
                    ]
                  },
                  "warning_state": {
                    "type": "string",
                    "enum": [
                      "normal",
                      "approaching",
                      "high",
                      "critical",
                      "limit_reached",
                      "unavailable"
                    ]
                  },
                  "measurement": {
                    "type": "string",
                    "enum": [
                      "request_admission",
                      "conditional_backstop"
                    ]
                  },
                  "applicability": {
                    "type": "string",
                    "enum": [
                      "active",
                      "not_applicable",
                      "unknown"
                    ]
                  },
                  "is_total_send_count": {
                    "type": "boolean"
                  }
                }
              }
            }
          }
        },
        "allowances": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "free_trial",
            "playground"
          ],
          "properties": {
            "free_trial": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "enabled",
                "verifications",
                "sends"
              ],
              "properties": {
                "enabled": {
                  "type": "boolean"
                },
                "verifications": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name",
                    "unit",
                    "window_seconds",
                    "window_kind",
                    "limit",
                    "used",
                    "remaining",
                    "reset_at",
                    "warning_state"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "requests"
                      ]
                    },
                    "window_seconds": {
                      "type": "null"
                    },
                    "window_kind": {
                      "type": "string",
                      "enum": [
                        "account_lifetime"
                      ]
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "used": {
                      "type": "integer"
                    },
                    "remaining": {
                      "type": "integer"
                    },
                    "reset_at": {
                      "type": "null"
                    },
                    "warning_state": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "approaching",
                        "high",
                        "critical",
                        "limit_reached",
                        "unavailable"
                      ]
                    }
                  }
                },
                "sends": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "name",
                    "unit",
                    "window_seconds",
                    "window_kind",
                    "limit",
                    "used",
                    "remaining",
                    "reset_at",
                    "warning_state"
                  ],
                  "properties": {
                    "name": {
                      "type": "string"
                    },
                    "unit": {
                      "type": "string",
                      "enum": [
                        "requests"
                      ]
                    },
                    "window_seconds": {
                      "type": "null"
                    },
                    "window_kind": {
                      "type": "string",
                      "enum": [
                        "account_lifetime"
                      ]
                    },
                    "limit": {
                      "type": "integer"
                    },
                    "used": {
                      "type": "integer"
                    },
                    "remaining": {
                      "type": "integer"
                    },
                    "reset_at": {
                      "type": "null"
                    },
                    "warning_state": {
                      "type": "string",
                      "enum": [
                        "normal",
                        "approaching",
                        "high",
                        "critical",
                        "limit_reached",
                        "unavailable"
                      ]
                    }
                  }
                }
              }
            },
            "playground": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "enabled",
                "account_scoped",
                "usage_available",
                "guidance"
              ],
              "properties": {
                "enabled": {
                  "type": "boolean"
                },
                "account_scoped": {
                  "type": "boolean"
                },
                "usage_available": {
                  "type": "boolean"
                },
                "guidance": {
                  "type": "string"
                }
              }
            }
          }
        },
        "eligibility": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "tier",
              "sustained_per_minute",
              "default_burst_per_10_seconds",
              "checklist"
            ],
            "properties": {
              "tier": {
                "type": "string"
              },
              "sustained_per_minute": {
                "type": "integer"
              },
              "default_burst_per_10_seconds": {
                "type": "integer"
              },
              "checklist": {
                "type": "array",
                "items": {
                  "type": "object",
                  "additionalProperties": false,
                  "required": [
                    "code",
                    "state",
                    "action"
                  ],
                  "properties": {
                    "code": {
                      "type": "string"
                    },
                    "state": {
                      "type": "string",
                      "enum": [
                        "met",
                        "action_required"
                      ]
                    },
                    "action": {
                      "anyOf": [
                        {
                          "type": "string"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "recent_throttles": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "occurred_at",
              "capability",
              "reason_category",
              "retry_after_seconds",
              "reset_at",
              "window_seconds",
              "remediation_path"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "occurred_at": {
                "type": "string"
              },
              "capability": {
                "type": "string"
              },
              "reason_category": {
                "type": "string"
              },
              "retry_after_seconds": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "reset_at": {
                "anyOf": [
                  {
                    "type": "string"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "window_seconds": {
                "type": "integer"
              },
              "remediation_path": {
                "type": "string"
              }
            }
          }
        },
        "capacity_request": {
          "anyOf": [
            {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "id",
                "requested_sustained_per_minute",
                "requested_burst_per_10_seconds",
                "expected_sustained_per_minute",
                "expected_peak_per_minute",
                "business_justification",
                "supporting_facts",
                "status",
                "created_at",
                "updated_at",
                "cancelled_at",
                "reviewed_at"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "requested_sustained_per_minute": {
                  "type": "integer"
                },
                "requested_burst_per_10_seconds": {
                  "type": "integer"
                },
                "expected_sustained_per_minute": {
                  "type": "integer"
                },
                "expected_peak_per_minute": {
                  "type": "integer"
                },
                "business_justification": {
                  "type": "string"
                },
                "supporting_facts": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "approved",
                    "rejected",
                    "cancelled"
                  ]
                },
                "created_at": {
                  "type": "string"
                },
                "updated_at": {
                  "type": "string"
                },
                "cancelled_at": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "reviewed_at": {
                  "anyOf": [
                    {
                      "type": "string"
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            },
            {
              "type": "null"
            }
          ]
        },
        "safety_controls": {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    }
  }
}
{
  "data": {
    "schema_version": "2026-09-01",
    "generated_at": "string",
    "account": {
      "billing_plan": "string",
      "status": "standard"
    },
    "effective_policy": {
      "tier": "string",
      "approved": true,
      "sustained_per_minute": 0,
      "burst_per_10_seconds": 0,
      "account_hour": 0,
      "expires_at": "string",
      "requires_customer_owned_waba": true
    },
    "usage": {
      "availability": "available",
      "windows": [
        {
          "name": "Jane Doe",
          "unit": "requests",
          "window_seconds": null,
          "limit": null,
          "used": null,
          "remaining": null,
          "reset_at": null,
          "warning_state": "normal",
          "measurement": "request_admission",
          "applicability": "active",
          "is_total_send_count": null
        }
      ]
    },
    "allowances": {
      "free_trial": {
        "enabled": true,
        "verifications": {
          "name": "Jane Doe",
          "unit": "requests",
          "window_seconds": null,
          "window_kind": "account_lifetime",
          "limit": null,
          "used": null,
          "remaining": null,
          "reset_at": null,
          "warning_state": "normal"
        },
        "sends": {
          "name": "Jane Doe",
          "unit": "requests",
          "window_seconds": null,
          "window_kind": "account_lifetime",
          "limit": null,
          "used": null,
          "remaining": null,
          "reset_at": null,
          "warning_state": "normal"
        }
      },
      "playground": {
        "enabled": true,
        "account_scoped": true,
        "usage_available": true,
        "guidance": "string"
      }
    },
    "eligibility": [
      {
        "tier": "string",
        "sustained_per_minute": 0,
        "default_burst_per_10_seconds": 0,
        "checklist": [
          null
        ]
      }
    ],
    "recent_throttles": [
      {
        "id": "string",
        "occurred_at": "string",
        "capability": "string",
        "reason_category": "string",
        "retry_after_seconds": "string",
        "reset_at": "string",
        "window_seconds": 0,
        "remediation_path": "string"
      }
    ],
    "capacity_request": "string",
    "safety_controls": [
      "string"
    ]
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/capacity-requests

المعاملات

  • idempotency-key (header, مطلوب) — string

جسم الطلب

{
  "type": "object",
  "required": [
    "requested_sustained_per_minute",
    "requested_burst_per_10_seconds",
    "expected_sustained_per_minute",
    "expected_peak_per_minute",
    "business_justification"
  ],
  "additionalProperties": false,
  "properties": {
    "requested_sustained_per_minute": {
      "type": "integer",
      "minimum": 1000,
      "maximum": 100000
    },
    "requested_burst_per_10_seconds": {
      "type": "integer",
      "minimum": 167,
      "maximum": 50000
    },
    "expected_sustained_per_minute": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100000
    },
    "expected_peak_per_minute": {
      "type": "integer",
      "minimum": 1,
      "maximum": 300000
    },
    "business_justification": {
      "type": "string",
      "minLength": 40,
      "maxLength": 2000
    },
    "supporting_facts": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/capacity-requests \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"requested_sustained_per_minute":1000,"requested_burst_per_10_seconds":167,"expected_sustained_per_minute":1,"expected_peak_per_minute":1,"business_justification":"string"}'

الاستجابات

200

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schema_version",
        "capacity_request"
      ],
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "2026-09-01"
          ]
        },
        "capacity_request": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "requested_sustained_per_minute",
            "requested_burst_per_10_seconds",
            "expected_sustained_per_minute",
            "expected_peak_per_minute",
            "business_justification",
            "supporting_facts",
            "status",
            "created_at",
            "updated_at",
            "cancelled_at",
            "reviewed_at"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "requested_sustained_per_minute": {
              "type": "integer"
            },
            "requested_burst_per_10_seconds": {
              "type": "integer"
            },
            "expected_sustained_per_minute": {
              "type": "integer"
            },
            "expected_peak_per_minute": {
              "type": "integer"
            },
            "business_justification": {
              "type": "string"
            },
            "supporting_facts": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "status": {
              "type": "string",
              "enum": [
                "pending",
                "approved",
                "rejected",
                "cancelled"
              ]
            },
            "created_at": {
              "type": "string"
            },
            "updated_at": {
              "type": "string"
            },
            "cancelled_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "reviewed_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      }
    }
  }
}
{
  "data": {
    "schema_version": "2026-09-01",
    "capacity_request": {
      "id": "string",
      "requested_sustained_per_minute": 0,
      "requested_burst_per_10_seconds": 0,
      "expected_sustained_per_minute": 0,
      "expected_peak_per_minute": 0,
      "business_justification": "string",
      "supporting_facts": "string",
      "status": "pending",
      "created_at": "string",
      "updated_at": "string",
      "cancelled_at": "string",
      "reviewed_at": "string"
    }
  }
}

201

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schema_version",
        "capacity_request"
      ],
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "2026-09-01"
          ]
        },
        "capacity_request": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "requested_sustained_per_minute",
            "requested_burst_per_10_seconds",
            "expected_sustained_per_minute",
            "expected_peak_per_minute",
            "business_justification",
            "supporting_facts",
            "status",
            "created_at",
            "updated_at",
            "cancelled_at",
            "reviewed_at"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "requested_sustained_per_minute": {
              "type": "integer"
            },
            "requested_burst_per_10_seconds": {
              "type": "integer"
            },
            "expected_sustained_per_minute": {
              "type": "integer"
            },
            "expected_peak_per_minute": {
              "type": "integer"
            },
            "business_justification": {
              "type": "string"
            },
            "supporting_facts": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "status": {
              "type": "string",
              "enum": [
                "pending",
                "approved",
                "rejected",
                "cancelled"
              ]
            },
            "created_at": {
              "type": "string"
            },
            "updated_at": {
              "type": "string"
            },
            "cancelled_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "reviewed_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      }
    }
  }
}
{
  "data": {
    "schema_version": "2026-09-01",
    "capacity_request": {
      "id": "string",
      "requested_sustained_per_minute": 0,
      "requested_burst_per_10_seconds": 0,
      "expected_sustained_per_minute": 0,
      "expected_peak_per_minute": 0,
      "business_justification": "string",
      "supporting_facts": "string",
      "status": "pending",
      "created_at": "string",
      "updated_at": "string",
      "cancelled_at": "string",
      "reviewed_at": "string"
    }
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
DELETE/v1/clients/capacity-requests/{id}

المعاملات

  • id (path, مطلوب) — string

مثال على الطلب

curl -X DELETE https://api.authevo.dev/v1/clients/capacity-requests/{id} \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "schema_version",
        "capacity_request"
      ],
      "properties": {
        "schema_version": {
          "type": "string",
          "enum": [
            "2026-09-01"
          ]
        },
        "capacity_request": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "id",
            "requested_sustained_per_minute",
            "requested_burst_per_10_seconds",
            "expected_sustained_per_minute",
            "expected_peak_per_minute",
            "business_justification",
            "supporting_facts",
            "status",
            "created_at",
            "updated_at",
            "cancelled_at",
            "reviewed_at"
          ],
          "properties": {
            "id": {
              "type": "string"
            },
            "requested_sustained_per_minute": {
              "type": "integer"
            },
            "requested_burst_per_10_seconds": {
              "type": "integer"
            },
            "expected_sustained_per_minute": {
              "type": "integer"
            },
            "expected_peak_per_minute": {
              "type": "integer"
            },
            "business_justification": {
              "type": "string"
            },
            "supporting_facts": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "status": {
              "type": "string",
              "enum": [
                "pending",
                "approved",
                "rejected",
                "cancelled"
              ]
            },
            "created_at": {
              "type": "string"
            },
            "updated_at": {
              "type": "string"
            },
            "cancelled_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            },
            "reviewed_at": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "null"
                }
              ]
            }
          }
        }
      }
    }
  }
}
{
  "data": {
    "schema_version": "2026-09-01",
    "capacity_request": {
      "id": "string",
      "requested_sustained_per_minute": 0,
      "requested_burst_per_10_seconds": 0,
      "expected_sustained_per_minute": 0,
      "expected_peak_per_minute": 0,
      "business_justification": "string",
      "supporting_facts": "string",
      "status": "pending",
      "created_at": "string",
      "updated_at": "string",
      "cancelled_at": "string",
      "reviewed_at": "string"
    }
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/login/mfa

جسم الطلب

{
  "type": "object",
  "required": [
    "code"
  ],
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 32
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/login/mfa \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"code":"123456"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/security/mfa

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/security/mfa \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/mfa/enroll

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/mfa/enroll \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/mfa/confirm

جسم الطلب

{
  "type": "object",
  "required": [
    "code"
  ],
  "additionalProperties": false,
  "properties": {
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 32
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/mfa/confirm \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"code":"123456"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/reauth

جسم الطلب

{
  "type": "object",
  "minProperties": 1,
  "maxProperties": 1,
  "additionalProperties": false,
  "properties": {
    "password": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 32
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/reauth \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"password":"a-strong-password-here","code":"123456"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/mfa/disable

جسم الطلب

{
  "type": "object",
  "minProperties": 1,
  "maxProperties": 1,
  "additionalProperties": false,
  "properties": {
    "password": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 32
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/mfa/disable \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"password":"a-strong-password-here","code":"123456"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/mfa/recovery

جسم الطلب

{
  "type": "object",
  "minProperties": 1,
  "maxProperties": 1,
  "additionalProperties": false,
  "properties": {
    "password": {
      "type": "string",
      "minLength": 1,
      "maxLength": 128
    },
    "code": {
      "type": "string",
      "minLength": 6,
      "maxLength": 32
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/mfa/recovery \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"password":"a-strong-password-here","code":"123456"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/security/sessions

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/security/sessions \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
DELETE/v1/clients/security/sessions/{id}

المعاملات

  • id (path, مطلوب) — string

مثال على الطلب

curl -X DELETE https://api.authevo.dev/v1/clients/security/sessions/{id} \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/clients/security/sessions/revoke-others

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/clients/security/sessions/revoke-others \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/clients/security/events

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/clients/security/events \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}

تسجيل الدخول (اجتماعي وبريد)

GET/v1/auth/{provider}/start

المعاملات

  • provider (path, مطلوب) — string

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/auth/{provider}/start \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/auth/{provider}/callback

المعاملات

  • provider (path, مطلوب) — string

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/auth/{provider}/callback \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/auth/magic-link

جسم الطلب

{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
      "maxLength": 254
    },
    "locale": {
      "type": "string",
      "maxLength": 8
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/auth/magic-link \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","locale":"string"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/auth/password/forgot

جسم الطلب

{
  "type": "object",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "pattern": "^[a-zA-Z0-9._%+\\-]+@[a-zA-Z0-9.\\-]+\\.[a-zA-Z]{2,}$",
      "maxLength": 254
    },
    "locale": {
      "type": "string",
      "maxLength": 8
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/auth/password/forgot \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"[email protected]","locale":"string"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/auth/password/reset

جسم الطلب

{
  "type": "object",
  "required": [
    "token",
    "password"
  ],
  "properties": {
    "token": {
      "type": "string",
      "minLength": 1,
      "maxLength": 256
    },
    "password": {
      "type": "string",
      "minLength": 8,
      "maxLength": 128
    }
  },
  "additionalProperties": false
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/auth/password/reset \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"token":"string","password":"a-strong-password-here"}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/auth/verify-email

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/auth/verify-email \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/auth/verify-email/resend

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/auth/verify-email/resend \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}

الفوترة والشحن

GET/v1/billing/topup-rails

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/billing/topup-rails \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "rails": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "eligible": {
                "type": "boolean"
              },
              "min_usd": {
                "type": "number"
              },
              "currency": {
                "type": "string"
              },
              "reason": {
                "type": "string"
              },
              "destination": {
                "type": "object",
                "properties": {
                  "handle": {
                    "type": "string"
                  },
                  "pay_link": {
                    "type": "string"
                  },
                  "payee_name": {
                    "type": "string"
                  },
                  "qr_url": {
                    "type": [
                      "null",
                      "string"
                    ]
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
{
  "data": {
    "rails": [
      {
        "id": "string",
        "eligible": true,
        "min_usd": 0
      }
    ]
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/billing/topup/polar

جسم الطلب

{
  "type": "object",
  "required": [
    "amount_usd"
  ],
  "additionalProperties": false,
  "properties": {
    "amount_usd": {
      "type": "number",
      "exclusiveMinimum": 0
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/billing/topup/polar \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"amount_usd":0}'

الاستجابات

200

{
  "type": "object",
  "properties": {
    "data": {
      "type": "object",
      "properties": {
        "url": {
          "type": "string"
        },
        "provider_ref": {
          "type": "string"
        },
        "amount_usd": {
          "type": "number"
        },
        "surcharge_usd": {
          "type": "number"
        },
        "charge_usd": {
          "type": "number"
        },
        "amount_egp": {
          "type": "number"
        },
        "rate_used": {
          "type": "number"
        }
      }
    }
  }
}
{
  "data": {
    "url": "string",
    "provider_ref": "string",
    "amount_usd": 0
  }
}

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/billing/manual-topup

جسم الطلب

{
  "type": "object",
  "required": [
    "amount_usd"
  ],
  "additionalProperties": false,
  "properties": {
    "amount_usd": {
      "type": "number",
      "exclusiveMinimum": 0
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/billing/manual-topup \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"amount_usd":0}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/billing/manual-topup/quote

المعاملات

  • amount_usd (query, مطلوب) — number

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/billing/manual-topup/quote \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/billing/manual-topup/{id}/cancel

المعاملات

  • id (path, مطلوب) — string

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/billing/manual-topup/{id}/cancel \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/billing/manual-topup/{id}/proof-url

المعاملات

  • id (path, مطلوب) — string

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/billing/manual-topup/{id}/proof-url \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/billing/manual-topup/{id}/submit

المعاملات

  • id (path, مطلوب) — string

جسم الطلب

{
  "type": "object",
  "additionalProperties": false,
  "properties": {
    "txn_id": {
      "type": "string",
      "maxLength": 120
    },
    "proof_uploaded": {
      "type": "boolean"
    }
  }
}

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/billing/manual-topup/{id}/submit \
  -H "Authorization: Bearer sk_…" \
  -H "Content-Type: application/json" \
  -d '{"txn_id":"string","proof_uploaded":true}'

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/v1/billing/manual-topups

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/billing/manual-topups \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}

Webhooks

GET/v1/webhooks/meta

مثال على الطلب

curl -X GET https://api.authevo.dev/v1/webhooks/meta \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/webhooks/meta

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/webhooks/meta \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/webhooks/telegram

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/webhooks/telegram \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
POST/v1/webhooks/payment/polar

مثال على الطلب

curl -X POST https://api.authevo.dev/v1/webhooks/payment/polar \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}

الحالة

GET/health/live

مثال على الطلب

curl -X GET https://api.authevo.dev/health/live \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/health

مثال على الطلب

curl -X GET https://api.authevo.dev/health \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}
GET/health/channels

مثال على الطلب

curl -X GET https://api.authevo.dev/health/channels \
  -H "Authorization: Bearer sk_…"

الاستجابات

200

default — Error response (standard envelope). `code` is a stable machine-readable string — e.g. VALIDATION_ERROR (400), UNAUTHORIZED / INVALID_API_KEY (401), RATE_LIMIT_EXCEEDED (429), INTERNAL_ERROR (500); `message` is human-readable.

{
  "type": "object",
  "required": [
    "error"
  ],
  "properties": {
    "error": {
      "type": "object",
      "required": [
        "code",
        "message"
      ],
      "properties": {
        "code": {
          "type": "string",
          "description": "Stable, machine-readable error code."
        },
        "message": {
          "type": "string",
          "description": "Human-readable description."
        },
        "reason": {
          "type": "string",
          "description": "Optional customer-safe category for a rate-limit rejection."
        },
        "layer": {
          "type": "string",
          "enum": [
            "edge",
            "origin"
          ],
          "description": "Optional layer that rejected the request."
        },
        "dimension": {
          "type": "string",
          "description": "Optional allowlisted, customer-safe limiting dimension."
        },
        "retry_after_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional authoritative delay before retrying."
        },
        "reset_at": {
          "type": "string",
          "format": "date-time",
          "description": "Optional UTC time when the active window clears."
        },
        "window_seconds": {
          "type": "integer",
          "minimum": 1,
          "maximum": 86400,
          "description": "Optional duration of the active limiting window."
        },
        "limit": {
          "type": "integer",
          "minimum": 1,
          "description": "Optional ceiling for the active limiting window."
        }
      }
    }
  }
}
{
  "error": {
    "code": "123456",
    "message": "string",
    "reason": "string"
  }
}