Expensicat

Projects

Project management

List projects

GET
/v1/projects
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Query Parameters

cursor?string

Pagination cursor

limit?integer

Number of items per page (1-100)

Default20
Range1 <= value <= 100
q?string

Search by name

Response Body

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/projects"
{
  "data": [
    {
      "id": "string",
      "organization_id": "string",
      "name": "string",
      "customer_id": "string",
      "hourly_rate": "string",
      "currency": "string",
      "active": true,
      "created_at": "string",
      "updated_at": "string",
      "customer": {
        "id": "string",
        "name": "string",
        "email": "string"
      }
    }
  ],
  "meta": {
    "count": 0,
    "next_cursor": "string"
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Create project

POST
/v1/projects
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Request Body

application/json

name*string
customer_id?|
hourly_rate?|
currency?|

Response Body

application/json

application/json

curl -X POST "https://api.expensicat.com/api/v1/projects" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "name": "string",
    "customer_id": "string",
    "hourly_rate": "string",
    "currency": "string",
    "active": true,
    "created_at": "string",
    "updated_at": "string",
    "customer": {
      "id": "string",
      "name": "string",
      "email": "string"
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Get project

GET
/v1/projects/{id}
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Response Body

application/json

application/json

application/json

curl -X GET "https://api.expensicat.com/api/v1/projects/string"
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "name": "string",
    "customer_id": "string",
    "hourly_rate": "string",
    "currency": "string",
    "active": true,
    "created_at": "string",
    "updated_at": "string",
    "customer": {
      "id": "string",
      "name": "string",
      "email": "string"
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Update project

PATCH
/v1/projects/{id}
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Request Body

application/json

name?string
customer_id?|
hourly_rate?|
currency?|
active?boolean

Response Body

application/json

application/json

application/json

curl -X PATCH "https://api.expensicat.com/api/v1/projects/string" \  -H "Content-Type: application/json" \  -d '{}'
{
  "data": {
    "id": "string",
    "organization_id": "string",
    "name": "string",
    "customer_id": "string",
    "hourly_rate": "string",
    "currency": "string",
    "active": true,
    "created_at": "string",
    "updated_at": "string",
    "customer": {
      "id": "string",
      "name": "string",
      "email": "string"
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}

Delete project

DELETE
/v1/projects/{id}
AuthorizationBearer <token>

Session JWT or OAuth2 access token

In: header

Path Parameters

id*string

Response Body

application/json

application/json

curl -X DELETE "https://api.expensicat.com/api/v1/projects/string"
Empty
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}
{
  "error": {
    "code": "string",
    "message": "string",
    "details": {
      "property1": null,
      "property2": null
    }
  }
}