Later Authentication API

The Authentication API from Later — 15 operation(s) for authentication.

Operations 16

POST /api-key/facebook Pass Facebook access grant information in exchange for a JWT to include in the header of requests.
POST /auto-login Pass encrypted user key in exchange for a JWT to include in the header of requests.
POST /connected-account/instagram-business Pass Facebook access grant information in exchange for a JWT to include in the header of requests.
POST /email-auth/lookup Pass an email and check if it needs verification or existing login credentials submitted in order to proceed
POST /email-auth/signup Pass an email verification request key and new password in exchange for a JWT to include in the header of requests.
POST /email-auth/login Pass an email and password in exchange for a JWT to include in the header of requests.
POST /email-auth/forgot-password Initiate a forgot password password request
POST /email-auth/reset-password Pass an email reset password request key and new password in exchange for a JWT to include in the header of requests.
POST /email-verification-request/validate Validate an email verification request.
POST /email-verification-request/create Create an Email Verification Request
PUT /login-credentials/update Update existing influencer login credentials.
POST /v1/api-key/login #
POST /v1/auth/facebook/exchange-code-for-token #
POST /v1/api-key/swap-app #
GET /v1/reset-password #
POST /v1/reset-password #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/later-authentication-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

later-authentication-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 1.0.0
  description: Identify your most influential customers and activate them to drive more conversions on social.
  title: MAVRCK.IO Authentication API
servers:
- url: http://app.splashscore.com/v1
- url: https://app.splashscore.com/v1
security:
- apiKey: []
tags:
- name: Authentication
paths:
  /api-key/facebook:
    post:
      tags:
      - Authentication
      x-handler: auth/facebook_controller.js
      summary: Pass Facebook access grant information in exchange for a JWT to include in the header of requests.
      parameters:
      - name: ^mdp_.+$
        in: query
        required: false
        description: Pass in data points on sign-up, in the format mdp_{data_point_definition_key}
        schema:
          type: string
      responses:
        '200':
          description: User info
          content:
            application/json:
              schema:
                properties:
                  expiresAt:
                    type: string
                    format: date-time
                  rejection:
                    $ref: '#/components/schemas/MembershipRejection'
                  profile:
                    $ref: '#/components/schemas/Profile'
                  token:
                    type: string
        '400':
          description: Missing/invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - communityId
              properties:
                communityId:
                  type: string
                accessToken:
                  type: string
                code:
                  type: string
                  description: Authorization code from beginning of the OAuth flow.
                redirectUri:
                  type: string
                  description: Redirect URI that facebook should redirect to after authorization. Must match the redirect URI from the first part of the flow.
                referralSourceDomain:
                  type: string
                  description: The domain that the user came from when they logged in for the first time
                referringURL:
                  type: string
                utmSource:
                  type: string
                utmMedium:
                  type: string
                utmTerm:
                  type: string
                utmContent:
                  type: string
                utmCampaign:
                  type: string
                phone:
                  type: string
                abTestVariations:
                  type: array
                  items:
                    type: object
                    properties:
                      name:
                        type: string
                      variation:
                        type: string
                facebookPageIds:
                  type: array
                  items:
                    type: string
                shouldAddPages:
                  type: boolean
        required: true
  /auto-login:
    post:
      tags:
      - Authentication
      x-handler: auth/influencer_auto_login/influencer_auto_login_controller.js
      summary: Pass encrypted user key in exchange for a JWT to include in the header of requests.
      responses:
        '200':
          description: User info
          content:
            application/json:
              schema:
                properties:
                  expiresAt:
                    type: string
                    format: date-time
                  rejection:
                    $ref: '#/components/schemas/MembershipRejection'
                  profile:
                    $ref: '#/components/schemas/Profile'
                  token:
                    type: string
        '400':
          description: Missing/invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Member not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - key
              properties:
                key:
                  type: string
                  description: Encrypted user key
                actionGroupId:
                  type: integer
        required: true
  /connected-account/instagram-business:
    post:
      tags:
      - Authentication
      x-handler: auth/instagram_business_controller.js
      summary: Pass Facebook access grant information in exchange for a JWT to include in the header of requests.
      x-access:
      - influencer
      responses:
        '200':
          description: All Instagram Profiles and Facebook Profiles
          content:
            application/json:
              schema:
                properties:
                  token:
                    type: string
                  instagramProfiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/InstagramConnectionInfo'
                  facebookProfiles:
                    type: array
                    items:
                      $ref: '#/components/schemas/FacebookProfileDeprecated'
        '400':
          description: Missing/invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - communityId
              properties:
                communityId:
                  type: string
                accessToken:
                  type: string
                code:
                  type: string
                  description: Authorization code from beginning of the OAuth flow.
                redirectUri:
                  type: string
                  description: Redirect URI that facebook should redirect to after authorization. Must match the redirect URI from the first part of the flow.
                facebookPageIds:
                  type: array
                  items:
                    type: string
        required: true
  /email-auth/lookup:
    post:
      tags:
      - Authentication
      x-handler: email_auth/email_auth_lookup_controller.js
      summary: Pass an email and check if it needs verification or existing login credentials submitted in order to proceed
      parameters:
      - name: ^mdp_.+$
        in: query
        required: false
        description: Pass in data points on sign-up, in the format mdp_{data_point_definition_key}
        schema:
          type: string
      responses:
        '200':
          description: Email was found.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Status of the next step for the client to perform.
                    enum:
                    - userOwnsEmail
                    - loginCredentialsRequired
                    - emailVerificationRequestInitiated
                    - emailOwnedByAnotherUser
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - communityId
              - email
              properties:
                communityId:
                  type: string
                email:
                  type: string
                actionGroupId:
                  type: integer
                referralSourceDomain:
                  type: string
                  description: The domain that the user came from when they logged in for the first time
                redirectUrl:
                  type: string
                referringURL:
                  type: string
                utmSource:
                  type: string
                utmMedium:
                  type: string
                utmTerm:
                  type: string
                utmContent:
                  type: string
                utmCampaign:
                  type: string
        required: true
  /email-auth/signup:
    post:
      tags:
      - Authentication
      x-handler: email_auth/email_auth_signup_controller.js
      summary: Pass an email verification request key and new password in exchange for a JWT to include in the header of requests.
      responses:
        '200':
          description: User Info.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Status of the next step for the client to perform.
                    enum:
                    - loginCredentialsExist
                    - authenticationRequired
                    - createLoginCredentialsRequired
                    - usersDoNotMatch
                  authenticationOptions:
                    type: array
                    description: If authentication is required before proceeding present what types of login are acceptable (facebook or/and email)
                    items:
                      type: string
                      enum:
                      - facebook
                      - email
                  profile:
                    $ref: '#/components/schemas/Profile'
                  token:
                    type: string
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - key
              - password
              properties:
                key:
                  type: string
                password:
                  type: string
        required: true
  /email-auth/login:
    post:
      tags:
      - Authentication
      x-handler: email_auth/email_auth_login_controller.js
      summary: Pass an email and password in exchange for a JWT to include in the header of requests.
      parameters:
      - name: ^mdp_.+$
        in: query
        required: false
        description: Pass in data points on sign-up, in the format mdp_{data_point_definition_key}
        schema:
          type: string
      responses:
        '200':
          description: User Info.
          content:
            application/json:
              schema:
                type: object
                properties:
                  profile:
                    $ref: '#/components/schemas/Profile'
                  token:
                    type: string
                  rejection:
                    $ref: '#/components/schemas/MembershipRejection'
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: User not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - communityId
              - email
              - password
              properties:
                communityId:
                  type: string
                email:
                  type: string
                password:
                  type: string
        required: true
  /email-auth/forgot-password:
    post:
      tags:
      - Authentication
      x-handler: email_auth/email_auth_forgot_password_controller.js
      summary: Initiate a forgot password password request
      responses:
        '200':
          description: Forgot password email sent.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyObject'
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - communityId
              - email
              properties:
                communityId:
                  type: string
                email:
                  type: string
                actionGroupId:
                  type: integer
        required: true
  /email-auth/reset-password:
    post:
      tags:
      - Authentication
      x-handler: email_auth/email_auth_reset_password_controller.js
      summary: Pass an email reset password request key and new password in exchange for a JWT to include in the header of requests.
      responses:
        '200':
          description: User Info.
          content:
            application/json:
              schema:
                type: object
                properties:
                  profile:
                    $ref: '#/components/schemas/Profile'
                  token:
                    type: string
                  actionGroupId:
                    type: integer
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - key
              - password
              properties:
                key:
                  type: string
                password:
                  type: string
        required: true
  /email-verification-request/validate:
    post:
      tags:
      - Authentication
      x-handler: email_verification_request/email_verification_request_validate_controller.js
      summary: Validate an email verification request.
      responses:
        '200':
          description: Email verification request is valid.
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    description: Status of the next step for the client to perform.
                    enum:
                    - loginCredentialsExist
                    - authenticationRequired
                    - createLoginCredentialsRequired
                    - usersDoNotMatch
                  authenticationOptions:
                    type: array
                    description: If authentication is required before proceeding present what types of login are acceptable (facebook or/and email)
                    items:
                      type: string
                      enum:
                      - facebook
                      - email
                  user:
                    type: object
                    properties:
                      email:
                        type: string
                      fullName:
                        type: string
                  emailVerificationRequest:
                    type: object
                    properties:
                      actionGroupId:
                        type: integer
                      redirectUrl:
                        type: string
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - key
              properties:
                key:
                  type: string
        required: true
  /email-verification-request/create:
    post:
      tags:
      - Authentication
      x-handler: email_verification_request/email_verification_request_controller.js
      x-access:
      - influencer
      summary: Create an Email Verification Request
      responses:
        '200':
          description: request is valid
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmptyObject'
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - email
              properties:
                email:
                  type: string
                actionGroupId:
                  type: integer
        required: true
  /login-credentials/update:
    put:
      tags:
      - Authentication
      x-handler: login_credentials/login_credentials_controller.js
      x-access:
      - influencer
      summary: Update existing influencer login credentials.
      responses:
        '200':
          description: User Info.
          content:
            application/json:
              schema:
                type: object
                properties:
                  profile:
                    $ref: '#/components/schemas/Profile'
        '400':
          description: Missing or invalid parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Session expired.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Access forbidden.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Server error.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              required:
              - newPassword
              properties:
                oldPassword:
                  type: string
                newPassword:
                  type: string
        required: true
  /v1/api-key/login:
    post:
      operationId: loginAdmin
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BasicAuthPostResponse'
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      tags:
      - Authentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BasicAuthPostRequest'
        required: true
  /v1/auth/facebook/exchange-code-for-token:
    post:
      operationId: exchangeCodeForToken
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                properties:
                  accessToken:
                    type: string
                  token:
                    type: string
                required:
                - accessToken
                - token
                type: object
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      description: 'exchangeCodeForToken


        Exchange a Facebook access code for a token

        Used as part of the connecting a social profile on the Community App

        FE requires a Facebook access token prior to connecting a social profile in order to fetch the available pages from the FB API

        Because of how we are using satellizer on the FE to manage the OAuth flow,

        we are required to return our own token as part of this response

        This endpoint requires the user to be authenticated and returns the existing api key as the token'
      tags:
      - Authentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FacebookAccessCodeExchangeRequest'
        required: true
  /v1/api-key/swap-app:
    post:
      operationId: swapCommunity
      responses:
        '200':
          description: Authorization info
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapAppPostResponse'
        '400':
          description: Missing or Invalid Parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '500':
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      tags:
      - Authentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwapAppRequestBody'
        required: true
  /v1/reset-password:
    get:
      operationId: getResetKey
      responses:
        '200':
          description: Email Sent to Connected Account
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TSOAEmptyObject'
        '400':
          description: Missing/invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: The resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      tags:
      - Authentication
      parameters:
      - in: query
        name: email
        required: true
        schema:
          type: string
      - in: query
        name: hostname
        required: false
        schema:
          type: string
    post:
      operationId: resetPassword
      responses:
        '200':
          description: Password Changed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TSOAEmptyObject'
        '400':
          description: Missing/invalid parameter
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '403':
          description: Access forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: The resource does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServerError'
      tags:
      - Authentication
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PostRequestBody'
        required: true
components:
  schemas:
    MembershipRejection:
      type: object
      description: Passed when an influencer does not meet the entrance criteria for the community.
      properties:
        redirectLink:
          type: string
        rejectReason:
          type: string
        missingCriteria:
          type: array
          items:
            type: string
    ServerError:
      properties:
        message:
          type: string
          enum:
          - Server Error
        details:
          properties: {}
          additionalProperties:
            additionalProperties: true
          type: object
      required:
      - message
      - details
      type: object
      additionalProperties: false
    InstagramConnectionInfo:
      type: object
      properties:
        id:
          type: integer
          description: Instagram Profile Id
        primaryAccount:
          type: boolean
        expiresAt:
          type: string
          format: date-time
          description: The date by which the client should re-prompt the either reconnection flow.
        platformExpiresAt:
          type: string
          format: date-time
          description: The date by which the client should re-prompt the Instagram Platform connection flow.
        businessExpiresAt:
          type: string
          format: date-time
          description: The date by which the client should re-prompt the Instagram Business connection flow.
        handle:
          type: string
          description: Client's Instagram account handle
        profilePicture:
          type: string
          description: Client's Instagram profile picture
    PostRequestBody:
      properties:
        email:
          type: string
        password:
          type: string
        resetKey:
          type: string
      required:
      - email
      - password
      - resetKey
      type: object
      additionalProperties: false
    SwapAppRequestBody:
      properties:
        communityId:
          type: string
      required:
      - communityId
      type: object
      additionalProperties: false
    EmptyObject:
      type: object
      properties: {}
    TSOAEmptyObject:
      properties: {}
      type: object
      additionalProperties: false
    Blog:
      properties:
        globalUserId:
          type:
          - number
          - 'null'
          format: double
        language:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        platform:
          type:
          - string
          - 'null'
        url:
          type:
          - string
          - 'null'
      type: object
      additionalProperties: false
    Profile:
      type: object
      properties:
        firstName:
          type: string
        lastName:
          type: string
        email:
          type: string
        emailIsVerified:
          type: boolean
        facebookExternalId:
          type: string
        membershipId:
          type: integer
        globalUserId:
          type: integer
        isNewMember:
          type: boolean
        location:
          type: string
        becameMemberAt:
          type: string
          format: date-time
        connectedAccounts:
          type: object
          properties:
            facebook:
              $ref: '#/components/schemas/FacebookConnectionInfo'
            twitter:
              $ref: '#/components/schemas/TwitterConnectionInfoDeprecated'
            instagram:
              $ref: '#/components/schemas/I

# --- truncated at 32 KB (38 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/later/refs/heads/main/openapi/later-authentication-api-openapi.yml