Cards

This object represents a card in Recall. All cards belong to a deck and are structured in its deck fields.

Endpoints

POST /v1/cards # Create a new card
POST /v1/cards/:id # Update a card
GET /v1/cards # List all cards
GET /v1/cards/:id # Get a card
DELETE /v1/cards/:id # Delete a card

The card object

{
"id": "card_lBsPlNZe4356",
"object": "card",
"content": {
"french-word": "Bonjour",
"translation": "Hello",
"sentence": "<p><strong>Bonjour</strong>, comment ça va?</p>",
"sentence-translation": "<p><strong>Hello</strong>, how are you?</p>",
},
"created_at": "2025-11-30T12:34:56Z",
"deck_id": "deck_5gvuzRdHW2ac",
"next_review_at": "2025-12-01T12:34:56Z",
}
id string

The ID of the card.

object string, value is "card"

The type of the object.

content object

Object containing the values of the content of the card for each deck field. The keys of the object are the deck_field.key values.

created_at string

The date and time the card was created. RFC 3339–formatted UTC datetime.

deck_id string

The ID of the deck the card belongs to.

next_review_at string

The date and time the card is scheduled for review. RFC 3339–formatted UTC datetime.


Create a card

curl https://api.recall.cards/v1/cards \
-u YOUR_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"deck_id": "deck_5gvuzRdHW2ac",
"content": {
"french-word": "Bonjour",
"translation": "Hello",
"sentence": "<p><strong>Bonjour</strong>, comment ça va?</p>",
"sentence-translation": "<p><strong>Hello</strong>, how are you?</p>"
}
}'
deck_id string required

The ID of the deck the card belongs to.

content object

Object containing the values of the content of the card for each deck field. The keys of the object are the deck_field.key values. The validation of the content values depends on the deck field types. Refer to the deck fields types for more details. It will also validate that the content of the card showed in the front side of the card in the primary layout has at least a value, or will be AI generated on creation.

trigger_autofill boolean, default is true

Whether to trigger the AI Autofill for the fields that have it enabled, if their source fields have values. Fields that themselves depend on AI-generated fields will also be successively enriched. If you manually set the value of a field that has AI Autofill enabled, the value you entered prevails and will not be overwritten.

The edition of image and audio fields in the cards content is not supported in the API at the moment.


Update a card

curl https://api.recall.cards/v1/cards/card_5gvuzRdHW2ac \
-u YOUR_API_KEY: \
-H "Content-Type: application/json" \
-d '{
"content": {
"sentence": "<p><strong>Bonjour</strong>, je voudrais un croissant.</p>"
}
}'
content object

Object containing the values of the content of the card for each deck field. The keys of the object are the deck_field.key values. The validation of the content values depends on the deck field types. Refer to the deck fields types for more details. It will also validate that the content of the card showed in the front side of the card in the primary layout has at least a value, or will be AI generated on update.

trigger_autofill boolean, default is true

Whether to trigger the AI Autofill for the fields that have it enabled, if their source fields are being updated. Fields that themselves depend on AI-generated fields will also be successively enriched.

List all cards

curl https://api.recall.cards/v1/cards \
-u YOUR_API_KEY:
deck_id string

Filter the cards by the ID of the deck the card belongs to.

limit optional, default is 10

The maximum number of cards to return, ranging between 1 and 100.

starting_after optional

A cursor to use in pagination. starting_after is an object ID that defines your place in the list. For example, if you make a card list request and receive 100 cards, ending with card_2sdInOpM83eo, your subsequent call can include starting_after=card_2sdInOpM83eo to fetch the next page of the list.

ending_before optional

A cursor to use in pagination. Similarly to starting_after, ending_before is an object ID that allows you to fetch object in the previous page of the list.

Returns

{
"object": "list",
"has_more": true,
"data": [
// Card objects...
],
}
object string, value is "list"

The type of object returned.

data array

An array containing the card objects.

has_more boolean

Whether or not there are more elements available after this set. If false, this set comprises the end of the list.


Get a card

curl https://api.recall.cards/v1/cards/card_5gvuzRdHW2ac \
-u YOUR_API_KEY:

There are no parameters for this endpoint.

Returns

Returns the card object.


Delete a card

curl https://api.recall.cards/v1/cards/card_5gvuzRdHW2ac \
-u YOUR_API_KEY: \
-X DELETE

There are no parameters for this endpoint.

Returns

{
"id": "card_5gvuzRdHW2ac",
"object": "card",
"deleted": true
}
Cards | Recall API reference