This Quickstart will guide you through the basic steps of authenticating, creating a project, tracking time, and sending an invoice — all via the API.
By the end of this guide, you’ll be able to programmatically log time and invoice a client.
Prerequisites
Before you begin, make sure you have:
A Mojave account
An API token
A tool for making HTTP requests (Postman, Insomnia, or curl
)
Basic knowledge of REST APIs
Authenticate Your Request
All API calls must include your token in the Authorization
header.
curl -X GET https:
-H "Authorization: Bearer YOUR_API_TOKEN"
Response:
{
"id": "usr_f9n3hda8",
"name": "Grace Hopper",
"workspace_id": "ws_2348dkf9"
}
Save the workspace_id
— you'll need it later.
Create a New Client
curl -X POST https:
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Inc.",
"email": "finance@acme.com"
}'
Response:
{
"id": "cli_1a2b3c4d",
"name": "Acme Inc."
}
Create a Project
Now let’s create a project for that client:
curl -X POST https:
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"name": "Website Redesign",
"client_id": "cli_1a2b3c4d",
"rate": 80
}'
Track Time
curl -X POST https:
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"project_id": "prj_abcd1234",
"start_time": "2025-04-10T09:00:00Z",
"end_time": "2025-04-10T10:30:00Z",
"notes": "Kickoff meeting"
}'
Pro Tip: You can omit end_time
to start a live running timer.
Generate an Invoice
Once time is tracked, you can generate an invoice for all unbilled entries:
curl -X POST https:
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"client_id": "cli_1a2b3c4d",
"project_id": "prj_abcd1234",
"due_date": "2025-04-15"
}'
Send Invoice via Email
curl -X POST https:
-H "Authorization: Bearer YOUR_API_TOKEN"
✉️ Emails will be sent from invoices@mojaveapp.com
unless you configure a custom sender.
Summary
Action | Endpoint |
---|
Get your account | GET /me
|
Create a client | POST /clients
|
Create a project | POST /projects
|
Log time | POST /time-entries
|
Create an invoice | POST /invoices
|
Send invoice (email) | POST /invoices/:id/send
|