API reference - Momentic
Base URL
| Environment | URL |
|---|---|
| Production | https://api.momentic.ai |
Authentication
Send the API key in an Authorization header on every request.
curl --fail-with-body \
-H "Authorization: Bearer $MOMENTIC_API_KEY" \
"https://api.momentic.ai/v1/runs?pageSize=20"
Create or manage keys in API keys and team.
Error handling
| Status | Meaning | Handling |
|---|---|---|
400 |
Invalid query or cursor. | Correct the request before retrying. |
401 |
Missing authentication or authenticated user/organization context. | Check the Authorization header and API key configuration. The response can be JSON or a text body. |
403 |
Invalid API key. | Replace the key with a valid key for your organization. |
429 |
Request rate limit exceeded. | Reduce polling and wait for the Retry-After interval. The response is a text body. |
500 |
Internal server error or request timeout. | Preserve the response and contact support if the failure persists. The response is a text body. |
503 |
Temporary failure validating the API key. | Retry later. |
529 |
Database overload. | Stop automatic retries and try again later. |
Shared request rules
- All endpoints in this reference use
GET. - Multi-value query params are comma-separated. Whitespace around commas is trimmed.
startDateandendDateare optional ISO-8601 datetimes. The window may not exceed 92 days; wider windows return400 {"error": "Date window must not exceed 92 days."}.- Invalid query params return
400 {"error": "Invalid query: <detail>"}. - If
startDate >= endDate, the API returns400 {"error": "Start date must be before end date."}.
Pagination
List endpoints use cursor (keyset) pagination.
- Pass
pageSize(max 100, default 20) to size each page. - Each response includes a
paginationobject:
{
"pageSize": 20,
"hasMore": true,
"nextCursor": "eyJmIjoxNzgyOTA3MzM0MDAwLCJpZCI6InJ1bl8wMUo5RDkwWFBYTUE0VDBUU043NlZGUTJLOCJ9",
"total": null
}
- To fetch the next page, pass the returned
nextCursorback as thecursorquery param. WhenhasMoreisfalse,nextCursorisnull. totalisnullunless you passincludeTotal=true, which adds an exact match count at the cost of an extra aggregation. UsehasMorefor βis there more?β checks instead.- Cursors are opaque; do not construct or parse them. An invalid cursor returns
400 {"error": "Invalid cursor."}.
Enum values
| Field | Values |
|---|---|
status |
PASSED, FAILED, CANCELLED |
trigger |
WEBHOOK, CRON, MANUAL, CLI |
executionType |
WEB, IOS, ANDROID |
Platform filtering
executionType matches the run platform stored on each completed run. For run groups, a group matches when at least one run in the group matches the requested platform. For example, executionType=IOS,ANDROID returns mobile run groups.
Endpoints
Use the Analytics API section in the sidebar for the endpoint reference.