openapi: 3.0.3 info: title: Gemnote Gifts Greeting Cards API version: v1 description: The Gemnote API lets partners send custom gifts and greeting cards programmatically and track their shipments. Responses follow a JSON:API-style envelope (data / type / attributes / relationships, with links + meta for pagination). Authentication is a token issued by your Gemnote account manager, passed in the AUTHORIZATION header. A sandbox environment (https://sandbox.gemnote.com/) mirrors production for safe testing; sandbox tokens begin with `t_` and production tokens begin with `p_`. contact: name: Gemnote url: https://www.gemnote.com/ x-provenance: generated: '2026-07-19' method: generated source: https://github.com/gemnote/api (README.md, gift.md, greeting_card.md, shipment.md) servers: - url: https://api.gemnote.com description: Production - url: https://sandbox.gemnote.com description: Sandbox security: - AuthorizationToken: [] tags: - name: Greeting Cards description: The catalog of greeting cards / postcards available to include. paths: /api/v1/greeting_cards/: get: operationId: listGreetingCards summary: List all greeting cards description: Retrieves a paginated collection of greeting cards. tags: - Greeting Cards parameters: - $ref: '#/components/parameters/PageNumber' - $ref: '#/components/parameters/PageSize' responses: '200': description: A paginated collection of greeting cards. content: application/json: schema: $ref: '#/components/schemas/GreetingCardListResponse' '401': $ref: '#/components/responses/Unauthorized' /api/v1/greeting_cards/{greeting_card_id}: get: operationId: getGreetingCard summary: Retrieve a single greeting card description: Retrieves a single greeting card by its identifier. tags: - Greeting Cards parameters: - name: greeting_card_id in: path required: true description: The identifier of the greeting card. schema: type: string responses: '200': description: The requested greeting card. content: application/json: schema: $ref: '#/components/schemas/GreetingCardResponse' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: parameters: PageSize: name: page[size] in: query required: false description: The number of items to return per page. schema: type: integer minimum: 1 PageNumber: name: page[number] in: query required: false description: The 1-based page number to retrieve. schema: type: integer minimum: 1 schemas: GreetingCardListResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/GreetingCard' links: $ref: '#/components/schemas/PaginationLinks' meta: $ref: '#/components/schemas/PaginationMeta' GreetingCard: type: object properties: id: type: string type: type: string example: greeting_cards attributes: type: object properties: name: type: string GreetingCardResponse: type: object properties: data: $ref: '#/components/schemas/GreetingCard' PaginationMeta: type: object properties: totalPages: type: integer totalItems: type: integer PaginationLinks: type: object properties: self: type: string nullable: true first: type: string nullable: true prev: type: string nullable: true next: type: string nullable: true last: type: string nullable: true responses: NotFound: description: The requested resource does not exist. Unauthorized: description: The AUTHORIZATION token is missing or invalid. securitySchemes: AuthorizationToken: type: apiKey in: header name: AUTHORIZATION description: A token issued by your Gemnote account manager. Sandbox tokens begin with `t_` and production tokens begin with `p_`.