Kling's API has moved to https://api-singapore.klingai.com (from api.klingai.com). Generation is asynchronous: submit a task, then query it. Kling 3.0 takes a prompt and a settings object.
Create an API key in the Kling developer console and send it as Authorization: Bearer <key>. In the examples it's written {{KLING_API_KEY}}. (Older integrations sign a short-lived JWT from an access key and secret instead.)
Full reference: https://kling.ai/document-api/guides/get-started/quick-start
external_task_id is your own id, used to look the task up.
curl -X POST https://api-singapore.klingai.com/text-to-video/kling-3.0 \
-H "Authorization: Bearer {{KLING_API_KEY}}" \
-H "Content-Type: application/json" \
-d '{"prompt": "A girl sat on the train, looking out the window with a melancholic expression.", "settings": {"aspect_ratio": "16:9", "duration": 5}, "options": {"external_task_id": "posttaco-1"}}'
curl "https://api-singapore.klingai.com/tasks?external_task_ids=posttaco-1" \
-H "Authorization: Bearer {{KLING_API_KEY}}"